そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

ESXi仮想ディスクvmdk(シンプロビジョニング)を縮小する手順【macOS】

・ESXiの仮想マシンの仮想ディスクを「シンプロビジョニング」にしています。
仮想マシン上で不要ファイルを削除して空き容量を確保したのに、仮想ディスク(vmdk)のサイズが大きくなったまま変わらない。
・仮想ディスク(vmdk)のサイズを圧縮・縮小する方法を知りたい。
・具体的な手順を教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. ESXi6.7の仮想ディスク(vmdk)(シンプロビジョニング)サイズを圧縮・縮小する手順

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

ESXi6.7の仮想ディスク(vmdk)(シンプロビジョニング)のサイズを圧縮・縮小する手順

ESXi6.7の仮想マシンの仮想ディスクを「シンプロビジョニング」にしていると、仮想ディスク(vmdk)のサイズを節約することができます。
しかし、一旦、サイズが大きくなったあとは、仮想マシン上で不要ファイルを削除しても、仮想ディスク(vmdk)自体のサイズは大きくなったままです。

縮小するには、手動で作業をする必要があります。

手順①:作業前の仮想マシンのストレージ容量の確認

縮小作業前は「49.73GB」でした

仮想ディスクのタイプは「シンプロビジョニング」を選択しています

手順②:仮想マシン(今回はmacOS)上で、空き容量を確認

仮想マシンmacOS)上でストレージ容量を確認します。

全体で68.51GBで、利用可能が40.59GBなので使用済みサイズは27.92GBのはずです。

手順③:ディスクの空き容量の部分をZEROで埋める

ターミナルで以下コマンドを実行します。

sudo dd if=/dev/zero of=./zero bs=4k
$ sudo dd if=/dev/zero of=./zero bs=4k
password: ←★★パスワードを入力
dd: ./zero: No space left on device
9905615+0 records in
9905614+0 records out
40573394944 bytes transferred in 1352.022262 secs (30009413 bytes/sec)

空き容量がほとんど無い状態になり、警告が表示されます。

次に、ZERO埋めした部分を削除します。

sudo rm zero
$ sudo rm zero
password: ←★★パスワードを入力

再び空き容量が40GBぐらい確保されました。

手順④:一度、仮想マシンをシャットダウン

一度、仮想マシンをシャットダウンします。

この段階では、仮想ディスク(vmdk)のサイズは、設定した範囲の最大値の約64GBになっていました。

手順⑤:ESXi6.7のホストにSSH接続してコマンドを実行

データストアの仮想マシンのファイルがあるディレクトリに移動

cd /vmfs/volumes/datastore2/★★仮想マシン名★★
[root@SV-URANUS] cd /vmfs/volumes/datastore2/PC-NEREID

縮小前の仮想マシンのファイルを確認

totalのサイズが「66875392 byte」(約64GB)でした。

[root@SV-URANUS] ls -l
total 66875392
-rw-------    1 root     root     68719476736 Nov 25 12:55 PC-NEREID-flat.vmdk
-rw-------    1 root     root        270840 Nov 25 12:55 PC-NEREID.nvram
-rw-------    1 root     root           525 Nov 25 12:20 PC-NEREID.vmdk
-rw-r--r--    1 root     root             0 Oct 14 12:01 PC-NEREID.vmsd
-rwxr-xr-x    1 root     root          3351 Nov 25 12:55 PC-NEREID.vmx
-rw-------    1 root     root           151 Nov 25 12:54 PC-NEREID.vmxf
-rw-r--r--    1 root     root        242056 Nov 23 04:39 vmware-10.log
-rw-r--r--    1 root     root        232070 Nov 25 12:15 vmware-11.log
-rw-r--r--    1 root     root        252292 Oct 17 04:08 vmware-6.log
-rw-r--r--    1 root     root        358075 Oct 23 23:16 vmware-7.log
-rw-r--r--    1 root     root        390391 Nov 22 23:47 vmware-8.log
-rw-r--r--    1 root     root        232117 Nov 23 02:06 vmware-9.log
-rw-r--r--    1 root     root        234989 Nov 25 12:55 vmware.log

vmkfstoolsコマンドで仮想ディスク(vmdk)を縮小

vmkfstools -K ./★★仮想マシン名★★.vmdk
[root@SV-URANUS] vmkfstools -K ./PC-NEREID.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 2% done.  ←★★途中の進捗率が%で表示されます
[root@SV-URANUS] vmkfstools -K ./PC-NEREID.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 100% done.  ←★★完了すると「100% done.」と表示されます

縮小後の仮想マシンのファイルを確認

totalのサイズが「30610432 byte」(約29GB)に縮小できました。

[root@SV-URANUS] ls -l
total 30610432
-rw-------    1 root     root     68719476736 Nov 25 12:55 PC-NEREID-flat.vmdk
-rw-------    1 root     root        270840 Nov 25 12:55 PC-NEREID.nvram
-rw-------    1 root     root           525 Nov 25 13:16 PC-NEREID.vmdk
-rw-r--r--    1 root     root             0 Oct 14 12:01 PC-NEREID.vmsd
-rwxr-xr-x    1 root     root          3351 Nov 25 12:55 PC-NEREID.vmx
-rw-------    1 root     root           151 Nov 25 12:54 PC-NEREID.vmxf
-rw-r--r--    1 root     root        242056 Nov 23 04:39 vmware-10.log
-rw-r--r--    1 root     root        232070 Nov 25 12:15 vmware-11.log
-rw-r--r--    1 root     root        252292 Oct 17 04:08 vmware-6.log
-rw-r--r--    1 root     root        358075 Oct 23 23:16 vmware-7.log
-rw-r--r--    1 root     root        390391 Nov 22 23:47 vmware-8.log
-rw-r--r--    1 root     root        232117 Nov 23 02:06 vmware-9.log
-rw-r--r--    1 root     root        234989 Nov 25 12:55 vmware.log

この段階で、データストアブラウザで見ても、仮想ディスク(vmdk)のサイズは、約29GBに縮小されていました。

手順⑥:一度、ESXi6.7のホスト自体を再起動

ESXi6.7のホスト自体を再起動した後に確認すると、仮想マシンのストレージ使用量が約30GBに縮小されていました。

以上で、ESXi6.7上の仮想マシンmacOS)の仮想ディスク(vmdk)のサイズを圧縮・縮小することができました。

ゲストOSがLinuxの場合の手順

souiunogaii.hatenablog.com

ESXi 6.7u3でHDD増設してデータストアを追加する手順

souiunogaii.hatenablog.com

おすすめのHDDの選び方

souiunogaii.hatenablog.com

参考サイト

https://rin-ka.net/thin-provisioning-disk-difference/