vSAN上の仮想マシンのディスク消費量の確認

VMware

今回はvSAN上で仮想マシンを展開する際に、一体どれくらいのディスク スペースが必要なのか、について再調査してみました。ここで再調査としているのは、実は既に私の知り合いのkwman氏がこの事については必要十分調査をしてくれているためです。

vSAN各バージョン毎の設定によるストレージ消費量について比べてみました

https://kwmtlog.blogspot.com/2018/12/vsan-capacity-consumption.html

基本的には、vSAN上の仮想マシンの容量を定義する主な要素は次の通りです。

  1. vswp(仮想マシン スワップファイル)
  2. vmdk(仮想マシン ハードディスク)
  3. ストレージ ポリシー

上記で挙げた項目は、全て仮想マシンレベルでの設定値です。
これ以外の要素で言えば、vSAN 6.2以降で登場したvswpファイルのシックプロビジョニングの無効化の有無です。
Virtual SAN 6.2 & PowerCLI – Sparse Virtual Swap files
VSAN Cormac Blog VSAN 6.2 VM スワップ オブジェクトに関する新機能〜

本記事は、上記の知識を知っている前提で進行致しますので、本機能をまだ知らない方は上記2つのリンクどちらかを事前に参照ください。

話を元に戻すと、仮想マシンのストレージ使用量は仮想マシンの電源状態(パワーオンかオフ)に依存して変化します。この事はvSANに限らず、一般的なvSphere環境でも同じ事が言えます。上記で設定したメモリ、ハードディスク、ストレージポリシーに基づき、電源状態がオンとオフの仮想マシン、2つの画面上の表記を比較確認してみました。

<パワーオフ状態の仮想マシン>


パワーオフのため、仮想マシン スワップファイルは存在しないため、仮想ハードディスク10GBをミラーリングした結果の20GBに加えて、0.43GBは仮想マシンの構成ファイルやログファイル類だと言えます。

<パワーオン状態の仮想マシン>

パワーオンのため、仮想マシン スワップファイルが登場します。通常仮想マシンのメモリサイズと同じサイズでスワップファイルは生成されます。今回は4GBのメモリを設定されています。
しかしながら、vSAN環境においては、このスワップファイルも、vSAN内のストレージポリシーによって本来であれば4GB*28GBのはずです。

そこで視点を変えて、vSANのデータ使用内容詳細ビューを確認してみました。

詳細ビューでは、はっきりとスワップ オブジェクトが実際には8GB消費している模様が確認出来ました。
Ruby vSphere Console
も併用してvswpオブジェクトの実体も確認した所より状況が明らかになりました。

図内で青線より上は”vSANのスワップ オブジェクトはシックプロビジョニング状態です。
図内で青線より下は”vSANのスワップ オブジェクトはシンプロビジョニング状態です。

いずれもvSAN Default Storage Policyが適用されてる状態からも上記機能差により生じた状況である事が確認出来ています。

4GBのコンポーネントが2つ生成されていますね。ちなみに上記コマンドを実施する上で、vswpのオブジェクトIDは、vSANを構成するESXiノードにSSH接続し、catコマンドでvswpの情報を参照して確認しました。
ちなみにオブジェクトIDESXiや仮想マシンの再起動の度に変更されるので、これらのイベント実施時は都度確認が必要です。

<結論>
下図赤枠内にはvswpのポリシー適用に伴うオーバーヘッドは加味されていない。
また、シンプロビジョニングベースでのvswpファイルの場合であっても、実際の消費量ではなく、メモリサイズと同容量(下図では4GB)が単純に合算される形で表記されます。一言で言えば、下図赤枠内の数値だけでは、vswpの正しい数値を把握することは難しいため、vSAN データストア詳細画面からvswpの実利用量も確認することが望ましい。

実際にはこの仮想マシンを動作させる上では、vmdk 10GB*2(ミラーリングのため)+ vswp 4GB*2(同じ理由)=28GBと表示されるべきである。

なお、今回検証した環境は次の通りです。

  • ESXi 6.7.0, 816922
  • vCenter Server 6.7.0.10000
  • vSAN FS バージョン6.0

今後の製品の動作変更によっては本ブログ記事とは異なる動作になる可能性もありますことをご留意ください。

コメント