シックプロビジョニングで作成したvmdkを変換する
検証等で用いた仮想マシンを後日別の環境で動作させて解析するために、
仮想マシンのイメージファイルをそのまま持ち帰ることが多々あります。
しかし、シックプロビジョニングで作成したイメージファイルをやり取りするのは、
本来OSが使っていない領域までコピーするため非常に時間がかかります。
そんなときは、ファイルをシンプロビジョニング形式にに変換すると
ファイルサイズを大幅に削減できるため、容量の節約と時間短縮につながります。
というわけで、備忘録メモです。
ESXiでSSHを有効にする
vSphere ClientでESXiないしvCenterにログイン
[構成] -> [セキュリティ プロファイル] -> [サービス] -> [プロパティ]
SSHサービスを起動
vmkfstoolsを利用してvmdkを変換する
仮想ディスク管理用のコマンド、vmkfstoolsを用いて、イメージファイルを変換します。
コマンドの解説は、公式のこのあたりを参照。
今回は、vmdkのコピー時にシンプロ形式で作り直すため、以下のコマンド形式になります。
vmkfstools -i 変換元VMDKファイル -d thin 変換先VMDKファイル
今回の対象とする仮想マシンの環境
[root@localhost:~] ls -alh /vmfs/volumes/datastore1/CentOS7 total 104860688 drwxr-xr-x 1 root root 1.2K Oct 11 23:17 . drwxr-xr-t 1 root root 1.5K Oct 11 22:56 .. -rw------- 1 root root 100.0G Oct 11 23:17 CentOS7-flat.vmdk -rw------- 1 root root 8.5K Oct 11 23:17 CentOS7.nvram -rw------- 1 root root 503 Oct 11 23:15 CentOS7.vmdk -rw-r--r-- 1 root root 0 Oct 11 22:56 CentOS7.vmsd -rwxr-xr-x 1 root root 2.7K Oct 11 23:17 CentOS7.vmx -rw------- 1 root root 150 Oct 11 23:17 CentOS7.vmxf -rw-r--r-- 1 root root 260.1K Oct 11 23:17 vmware.log
変換元のvmdkは-flat.vmdkファイルではなく、.vmdkファイルを指定する点に注意。
[root@localhost:~] vmkfstools -i /vmfs/volumes/datastore1/CentOS7/CentOS7.vmdk -d thin /vmfs/volumes/datastore1/CentOS7/CentOS7-thin.vmdk Destination disk format: VMFS thin-provisioned Cloning disk 'CentOS7.vmdk'... Clone: 100% done. [root@localhost:~] ls -alh /vmfs/volumes/datastore1/CentOS7 total 106179592 drwxr-xr-x 1 root root 1.2K Oct 11 23:17 . drwxr-xr-t 1 root root 1.5K Oct 11 22:56 .. -rw------- 1 root root 100.0G Oct 11 23:17 CentOS7-flat.vmdk -rw------- 1 root root 100.0G Oct 11 23:34 CentOS7-thin-flat.vmdk -rw------- 1 root root 557 Oct 11 23:35 CentOS7-thin.vmdk -rw------- 1 root root 8.5K Oct 11 23:17 CentOS7.nvram -rw------- 1 root root 503 Oct 11 23:15 CentOS7.vmdk -rw-r--r-- 1 root root 0 Oct 11 22:56 CentOS7.vmsd -rwxr-xr-x 1 root root 2.7K Oct 11 23:17 CentOS7.vmx -rw------- 1 root root 150 Oct 11 23:17 CentOS7.vmxf -rw-r--r-- 1 root root 260.1K Oct 11 23:17 vmware.log [root@localhost:~] du -h /vmfs/volumes/datastore1/CentOS7/CentOS7-thin-flat.vmdk 1.3G /vmfs/volumes/datastore1/CentOS7/CentOS7-thin-flat.vmdk
上記の場合、100GBのファイルが2つできていますが、duの結果やデータストアブラウザからは、
シンプロビジョニングに変換されたファイルを確認することができます。