ESXiでThinディスクをシュリンクする場合のメモ

ESXiでThinディスクをシュリンクする

ESXiで、Thinディスクを作成して仮想マシンにマウントした場合、
ファイルを作成するに従ってVMDKのサイズが増えていきますが、
ファイルを削除しても、VMDKのサイズは減りません。

VMDKファイルのサイズを小さくすることをシュリンク(shrink)と呼ぶこともあります.

 

ESXの場合、基本的には、以下の2つの処理をおこなうことでシュリンクすることができます。

・SDeleteで仮想ディスク内の過去使用したことがあるが、現在未使用領域のNullクリア

SDelete -z ドライブ文字

・仮想マシンを停止して、vmkfstoolでNullブロックを削除する

vmkfstools -K /path/to/disk-name.vmdk

 

注意点としては
・Nullクリアする段階でThinディスクは事実上Thickディスクになります。
つまり、Nullクリア完了時点でVMDKサイズに割り当てした最大容量にまでおおきくなるので、その分の空き容量がデータストア上に必要です。

・スナップショットやリンククローンを使用している場合は、シュリンクできません。

ESX3.5の頃は、Nullクリアした上でThinでStorage vMotionすればシュリンクされたような気がするけど、
ESX4.0以降では、同じブロック間のデータストア間のStorage vMotionだとNullは回収されない模様。別のブロックサイズであれば、回収されるようです。

SDelete & vmkfstoolsの場合は、仮想マシンを停止しなければいけないで、どうしても仮想マシンON状態でやりたい場合は、SDelete & Storage vMotion(別ブロック長間 or FC,iSCSI,DAS<->NFS で移動)もひとつの手かと。

 

(今回の参考)

ESXi/ESX によってホストされた仮想マシン上の VMware Tools 圧縮オプション (2094653)

http://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=2094653

Storage vMotion でシン ディスクを移行したとき null ブロックが回収されない (2092768)

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2092768