VMwareでシンプロビジョニングで仮想ディスクを作成すると、ゲストOS上での使用容量サイズしかストレージ(データストア)上でサイズを使用しないので、「節約になる」というメリットがあります。
しかし、シンプロビジョニングの仮想マシンを長い間使用していると、次第に、ゲストOS上の使用領域サイズよりストレージ上の仮想ディスクのサイズと食い違いが発生し、仮想ディスクのサイズが肥大化します。
このごみデータで肥大化したシンプロビジョニング仮想ディスクを整理しスリムかすることは出来ないのでしょうか?
レジュメ
シンプロビジョニングの仮想ディスクをスリム化する方法は簡単ではない。VMware
調べてみると、ESX上での「vmkfstools」コマンドで出来るかも?という情報があり、検証しました。
vmkfstools punchzeroオプションでシンプロビジョニングの縮小が出来るのか?
vmkfstools punchzeroオプションで、シンプロビジョニングの仮想ディスクのごみデータを削除し縮小できるかと思ったのですが・・・
答えは「No」出来ませんでした。
ゼロクリアされたブロックの削除
任意の zeroedthick または eagerzeroedthick のシン仮想ディスクを、シン ディスクに変換してゼロクリアされたブロッ
クを削除するには、vmkfstools コマンドを使用します。
-K --punchzero
このオプションは、ゼロクリアされたすべてのブロックの割り当てを解除し、割り当て済みで有効なデータを含むブロッ
クだけを残します。処理後の仮想ディスクはシン フォーマットになります。
これはゼロ埋めされたシック仮想ディスクを、シンディスクに変換してゼロクリアをしてくれるオプションです
もしかしたらゼロ埋めすれば実行出来るかもと思い・・・
Windows ゲストOS上でcipherで0埋めしvmkfstools punchzeroを実行してみた
結果から言うと、シンプロビジョニングの仮想ディスクを整理縮小できなかった・・・。
行った方法は
WindowsのゲストOS上で、整理したい仮想ディスクドライブをcipherコマンドで0埋めし
Windows ゲストOSをシャットダウンした上で、ESXからvmkfstools punchzeroコマンドを実行した
結果、やはりシンプロビジョニングの仮想ディスクは元には戻らなかった。
環境:
- VMware vSphere 5.1 (ESX 5.1)
- ゲストOS、Windows Server 2012
まとめ
使用し続けてごみデータが増えたシンプロビジョニングの仮想ディスクを、整理しサイズ縮小のスリム化する方法は、VMware上のコマンドでは存在しない。
ESX上からのコマンドではゲストOS上のファイルシステムを理解できませんからね。
もしも行う方法があるのならば、ゲストOS上のファイルシステムを読み込み、必要なファイルと不要なファイルを識別する何かが必要ですね。