Thin provisioning ディスクは容量可変ディスクですが、一旦アロケートされたブロックは開放しないので、ファイルの増減が多いシステムでは結構無駄な領域として残ってしまいがちです。
なお、今回は Guest OS が Linux OS の場合の手順です。
Thin provisioning vmdk を圧縮するにあたってのポイントは 2 つです。
・圧縮前に Guest OS 内で空き容量をゼロクリアする
・ゼロクリアするので、一時的に VMFS の容量は逼迫する
手順概要は以下の通りです。
簡単ですね。
-------------------------------
1.Guest OS にログインして、対象のディスクをゼロクリアする。
2.圧縮前に Guest OS をシャットダウンする。
3.vmdk を vmkfstools コマンドを使って圧縮する。
-------------------------------
では、実際の手順をご紹介します。
なお、今回の Linux OS の構成はこのようになっています。
-------------------------------
OS:CentOS 6.2
vCPU:1
vRAM:2GB
vmdk:20GB(Thin provisioning)
-------------------------------
0.まず、現状のストレージ使用量を確認しておきます。
VMFS としてはこのような使用量になります。
-------------------------------
/vmfs/volumes/52049736-07317bdd-a74a-005056910157 # du -hs test001/test001-flat.vmdk
3.1G ./test001/test001-flat.vmdk
/vmfs/volumes/52049736-07317bdd-a74a-005056910157 #
-------------------------------
1.Guest OS にログインして、対象の vmdk に対してゼロクリアを行います。
-------------------------------
[root@test001 home]# dd if=/dev/zero of=ZEROFILE.txt bs=1000000 ; rm -f ZEROFILE.txt
dd: writing `ZEROFILE.txt': デバイスに空き領域がありません
13680+0 records in
13679+0 records out
13679198208 bytes (14 GB) copied, 951.158 s, 14.4 MB/s
[root@test001 home]#
-------------------------------
このとき、VMFS はこのような使用量になります。(青字)
-------------------------------
/vmfs/volumes/52049736-07317bdd-a74a-005056910157 # du -hs test001/test001-flat.vmdk
15.6G test001/test001-flat.vmdk
/vmfs/volumes/52049736-07317bdd-a74a-005056910157 #
-------------------------------
2.圧縮前に Guest OS をシャットダウンします。
-------------------------------
[root@test001 home]# shutdown -h now
Broadcast message from root@test001
(/dev/pts/0) at 13:51 ...
The system is going down for halt NOW!
[root@test001 home]#
-------------------------------
3.vmdk を vmkfstools コマンドを使って圧縮します。(青字)
これは ESXi から作業します。
-------------------------------
/vmfs/volumes/52049736-07317bdd-a74a-005056910157 # vmkfstools --punchzero test001/test001.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 100% done.
/vmfs/volumes/52049736-07317bdd-a74a-005056910157 #
-------------------------------
vmkfstools 実行後に VMFS の使用量を確認します。
すると、割り当て容量が減少したことが確認できました。(青字)
-------------------------------
/vmfs/volumes/52049736-07317bdd-a74a-005056910157 # du -hs test001/test001-flat.vmdk
2.7G test001/test001-flat.vmdk
/vmfs/volumes/52049736-07317bdd-a74a-005056910157 #
-------------------------------
これらの作業を vSphere Web Client から状態を確認すると、このようになりました。
![]() |
vSphere Web Client からみたストレージ使用量の変化 |
ちなみに、Guest OS 内でゼロクリアしたあと、Storage vMotion を行っても、圧縮はできませんでした。
Storage vMotion だと、一旦 Eager Zeroed Thick disk に変更したあと、改めて Thin provisioning disk に変更するとできそうですね。(試していませんが。)
0 件のコメント:
コメントを投稿