・ESXiの仮想マシンの仮想ディスクを「シンプロビジョニング」にしています。
・仮想マシン上で不要ファイルを削除して空き容量を確保したのに、仮想ディスク(vmdk)のサイズが大きくなったまま変わらない。
・仮想ディスク(vmdk)のサイズを圧縮・縮小する方法を知りたい。
・具体的な手順を教えてほしい。
こういった疑問に答えます。
本記事の内容
- ESXi6.7の仮想ディスク(vmdk)(シンプロビジョニング)サイズを圧縮・縮小する手順
この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。
こういった私が、解説していきます。
私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。
- 本記事の内容
- ESXi6.7の仮想ディスク(vmdk)(シンプロビジョニング)のサイズを圧縮・縮小する手順
ESXi6.7の仮想ディスク(vmdk)(シンプロビジョニング)のサイズを圧縮・縮小する手順
ESXi6.7の仮想マシンの仮想ディスクを「シンプロビジョニング」にしていると、仮想ディスク(vmdk)のサイズを節約することができます。
しかし、一旦、サイズが大きくなったあとは、仮想マシン上で不要ファイルを削除しても、仮想ディスク(vmdk)自体のサイズは大きくなったままです。
縮小するには、手動で作業をする必要があります。
手順①:作業前の仮想マシンのストレージ容量の確認
縮小作業前は「49.73GB」でした
仮想ディスクのタイプは「シンプロビジョニング」を選択しています
手順②:仮想マシン(今回は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)のサイズを圧縮・縮小することができました。