株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

thinプロビジョニング形式で仮想ディスクを作成した場合、ファイルが追加されるたびにその分のディスクサイズを確保して、消されても縮むことはない。
なので、例えばテンポラリ領域として、50GBのディスクを一旦置いたら、50GB広がったままで、ファイルサイズ的にみるととってももったいない。
という場合、ダイエットできる手順があります。

まず、ゲストOSで空き領域すべてゼロ埋めをする

# ひっ迫していて、空けられそうなパーテーションを確認。この場合、/と/homeの二つ
# df
Filesystem             1K-blocks      Used Available Use% Mounted on
/dev/mapper/rhel-root   52403200  44291832   8111368  85% /
devtmpfs                  930904         0    930904   0% /dev
tmpfs                     941940         0    941940   0% /dev/shm
tmpfs                     941940      8792    933148   1% /run
tmpfs                     941940         0    941940   0% /sys/fs/cgroup
/dev/sda1                1038336    145688    892648  15% /boot
/dev/mapper/rhel-home 1017661956 165312780 852349176  17% /home
tmpfs                     188388         0    188388   0% /run/user/0


# ゼロ埋めコマンド実行(&付きなどで実行し、watchとかでdfするといいかも)
# dd if=/dev/zero of=/zerofile bs=4k ; rm -fr /zerofile
# dd if=/dev/zero of=/home/zerofile bs=4k ; rm -fr /home/zerofile

# シャットダウン
# shutdown -h now

ホストOSへCLIでログインし、vmdkを圧縮する

# 上記ゲストOSのファイル群が格納されているディレクトリへ移動
# pwd
/vmfs/volumes/datastore1/TEST

# 対象ファイルを確認。この場合、「TEST_0.vmdk」になる
# ls -l
total 937891848
-rw-------    1 root     root          8684 Jan 30 07:26 TEST.nvram
-rw-r--r--    1 root     root             0 Feb 16  2018 TEST.vmsd
-rwxr-xr-x    1 root     root          3268 Jan 30 07:26 TEST.vmx
-rw-------    1 root     root           150 Jan 30 06:11 TEST.vmxf
-rw-------    1 root     root     1099511627776 Jan 30 07:26 TEST_0-flat.vmdk
-rw-------    1 root     root           558 Jan 30 07:24 TEST_0.vmdk
-rw-r--r--    1 root     root        242849 Jan 30 06:33 vmware-10.log
-rw-r--r--    1 root     root        241572 Jan 30 06:34 vmware-11.log
-rw-r--r--    1 root     root        289832 Jan 30 07:22 vmware-12.log
-rw-r--r--    1 root     root        249178 Jan 30 06:17 vmware-7.log
-rw-r--r--    1 root     root        230360 Jan 30 06:19 vmware-8.log
-rw-r--r--    1 root     root        243051 Jan 30 06:32 vmware-9.log
-rw-r--r--    1 root     root        240185 Jan 30 07:26 vmware.log

# 確認したファイルに対し、圧縮コマンドを実行
# vmkfstools -K TEST_0.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 22% done.

# 見た目減っているのかと思うけど、totalが減ってる20GBくらいに
# ls -l
total 210046984
-rw-------    1 root     root          8684 Jan 30 07:26 TEST.nvram
-rw-r--r--    1 root     root             0 Feb 16  2018 TEST.vmsd
-rwxr-xr-x    1 root     root          3268 Jan 30 07:26 TEST.vmx
-rw-------    1 root     root           150 Jan 30 06:11 TEST.vmxf
-rw-------    1 root     root     1099511627776 Jan 30 07:26 TEST_0-flat.vmdk
-rw-------    1 root     root           558 Jan 30 08:44 TEST_0.vmdk
-rw-r--r--    1 root     root        242849 Jan 30 06:33 vmware-10.log
-rw-r--r--    1 root     root        241572 Jan 30 06:34 vmware-11.log
-rw-r--r--    1 root     root        289832 Jan 30 07:22 vmware-12.log
-rw-r--r--    1 root     root        249178 Jan 30 06:17 vmware-7.log
-rw-r--r--    1 root     root        230360 Jan 30 06:19 vmware-8.log
-rw-r--r--    1 root     root        243051 Jan 30 06:32 vmware-9.log
-rw-r--r--    1 root     root        240185 Jan 30 07:26 vmware.log

ファイルの実態を見ると変化がないように見えるが、対象仮想マシンの「プロビジョニングされたサイズ」を見てみると減っていることが分かると思う。
それか、ovaまたはovfへのエクスポート時に。

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)