雑木林

頭の中の整理と忘れないための確認メモ

シックプロビジョニングで作成したvmdkを変換する

検証等で用いた仮想マシンを後日別の環境で動作させて解析するために、
仮想マシンのイメージファイルをそのまま持ち帰ることが多々あります。
しかし、シックプロビジョニングで作成したイメージファイルをやり取りするのは、
本来OSが使っていない領域までコピーするため非常に時間がかかります。
そんなときは、ファイルをシンプロビジョニング形式にに変換すると
ファイルサイズを大幅に削減できるため、容量の節約と時間短縮につながります。

というわけで、備忘録メモです。

ESXiでSSHを有効にする

vSphere ClientでESXiないしvCenterにログイン
[構成] -> [セキュリティ プロファイル] -> [サービス] -> [プロパティ]
f:id:zokibayashi:20151012005110p:plain

SSHサービスを起動
f:id:zokibayashi:20151012005216p:plain
f:id:zokibayashi:20151012005435p:plain

ESXiにSSHでログインする

ログインする際に、チャレンジレスポンスで認証する点に注意
以下はTeraTermでの例
f:id:zokibayashi:20151012005802p:plain

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の結果やデータストアブラウザからは、
シンプロビジョニングに変換されたファイルを確認することができます。
f:id:zokibayashi:20151012013210p:plain


仮想マシンが利用するディスクイメージを変更する

あとは仮想マシンの設定を編集し、vmdkを付け替えることで作業は完了です。
f:id:zokibayashi:20151012013950p:plain
f:id:zokibayashi:20151012014358p:plainf:id:zokibayashi:20151012014402p:plainf:id:zokibayashi:20151012014832p:plainf:id:zokibayashi:20151012014843p:plainf:id:zokibayashi:20151012014846p:plainf:id:zokibayashi:20151012014848p:plainf:id:zokibayashi:20151012014850p:plain