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

Standalone VMRC 7.0 を単体ESXi に利用する。

Standalone VMRC 7.0 を単体ESXi に利用する。
vmrc.exe vmrc://someone@esxi/?moid=XXX この形式ではパスワード埋め込めない
vmrc.exe –host esxi1 –user someone –password somepass –moid=XXX

上記XXX部 moid の調べ方。
https://esxi1/mob/?moid=ha-folder-vm
childEntry ManagedObjectReference:ManagedEntity[] の右の数字

 

VMRC Standaloneはここからダウンロードできます。
ダウンロード

WIndows2012のUAC環境でのコマンドのリモート実行

WIndows2012のUAC環境でリモートでコマンドをキックする方法を考えてみた。

UAC環境でなければ、PSTOOLsの一部であるpsexecを使えばリモート実行は簡単なのだけど、UACがONの状態だと、うまく動きません。

 

ですので、OS標準のタスクスケジュールを使った方法を考えてみました。

用意するスクリプトは3つ

・キックされるスクリプト(実行側PCに配置)

restartvnc.bat

 

 

・キックされるスクリプトをタスクとして登録するスクリプト(実行側PCに配置して事前に実行)

register.bat

 

 

・別サーバからスクリプトをキックするスクリプト(実行を依頼するPCに配置)

00run.bat

 

 

この方法であれば、あらかじめ実行スクリプトをタスクとして作成しておくことで、
別サーバから、処理をリモートで実行依頼をすることができます。