前回に引き続きESXのお話。
仮想マシンを作成しPowerOnすると、LUN上に仮想ディスクのvmdkファイル以外に
vswapという巨大な物理ファイルが作成される。これは仮想マシンに割り当てたメモリと
同じだけ領域が取られので、仮に仮想ディスクを10GB、仮想マシンのメモリを4GB割当て
たと仮定すると合計14GBの領域がLUN上に必要になる。
なのでLUNを作成する時には予めvswap領域も計算して空き領域を確保しておかないと、
仮想マシンのPowerOnが出来ない。vswapは仮想マシン起動時に作成されるが、こいつが
作れないと起動にこけるからである。
(ちなみにPowerOffのステータスだとこのvswapのファイルは作成されない)
ではこいつはそもそも何の為に必用なのか?
ここでまた前回お話したメモリバルーニングという言葉が出てくる。
バルーニングとは、ある仮想マシンからメモリを強制的に解放する機能なのだが、
実際は仮想マシンに上にインストールされているvmmemctlというドライバが行っている。
但し、以下の理由でvmmemctlが使用できない場合このvswap領域にスワッピングされる。
・vmmemctlドライバが未インストール
・vmmemctlドライバが無効にされている
・vmmemctlドライバがOSのブート中などで実行されていない
・vmmemctlドライバが仮想OS自体の負荷などですばやくメモリを解放してくれない
スワップは性能的によろしくないので、普段はバルーニングが優先して行われる。
しかし上記の理由などでバルーニングが出来ない場合には、確実にメモリの解放を行う為
スワップが使用されるのである。その為、割当てメモリと同サイズの領域が必要らしい。
ちなみにデフォルトではvswapは仮想ディスクと同LUN領域に作成されるが、
sched.swap.dirパラメータで変更は可能である。
今回のお話は以上。
仮想マシンを作成しPowerOnすると、LUN上に仮想ディスクのvmdkファイル以外に
vswapという巨大な物理ファイルが作成される。これは仮想マシンに割り当てたメモリと
同じだけ領域が取られので、仮に仮想ディスクを10GB、仮想マシンのメモリを4GB割当て
たと仮定すると合計14GBの領域がLUN上に必要になる。
なのでLUNを作成する時には予めvswap領域も計算して空き領域を確保しておかないと、
仮想マシンのPowerOnが出来ない。vswapは仮想マシン起動時に作成されるが、こいつが
作れないと起動にこけるからである。
(ちなみにPowerOffのステータスだとこのvswapのファイルは作成されない)
ではこいつはそもそも何の為に必用なのか?
ここでまた前回お話したメモリバルーニングという言葉が出てくる。
バルーニングとは、ある仮想マシンからメモリを強制的に解放する機能なのだが、
実際は仮想マシンに上にインストールされているvmmemctlというドライバが行っている。
但し、以下の理由でvmmemctlが使用できない場合このvswap領域にスワッピングされる。
・vmmemctlドライバが未インストール
・vmmemctlドライバが無効にされている
・vmmemctlドライバがOSのブート中などで実行されていない
・vmmemctlドライバが仮想OS自体の負荷などですばやくメモリを解放してくれない
スワップは性能的によろしくないので、普段はバルーニングが優先して行われる。
しかし上記の理由などでバルーニングが出来ない場合には、確実にメモリの解放を行う為
スワップが使用されるのである。その為、割当てメモリと同サイズの領域が必要らしい。
ちなみにデフォルトではvswapは仮想ディスクと同LUN領域に作成されるが、
sched.swap.dirパラメータで変更は可能である。
今回のお話は以上。
スポンサーサイト
| ホーム |