VMware仮想マシンをThickからThinに変更して容量節約

#目的
ストレージ容量が足りなくなってきたので、ThickからThinに変更して容量節約したい
![vmkfstools_thick_to_thin1-1.png](https://qiita-image-store.s3.amazonaws.com/0/101361/6cbf0217-df90-dfee-863d-8d2eed32bf17.png)


#コマンド作業
対象ホストにsshログインして、vmkfstoolsコマンドを使用します

```
[root@vmware-esx01:~] vmkfstools
No valid command specified


OPTIONS FOR FILE SYSTEMS:

vmkfstools -C --createfs [vmfs5|vfat]
               -S --setfsname fsName
           -Z --spanfs span-partition
           -G --growfs grown-partition
   deviceName

           -P --queryfs -h --humanreadable
           -T --upgradevmfs
   vmfsPath
           -y --reclaimBlocks vmfsPath [--reclaimBlocksUnit #blocks]

OPTIONS FOR VIRTUAL DISKS:

vmkfstools -c --createvirtualdisk #[bBsSkKmMgGtT]
               -d --diskformat [zeroedthick
                               |thin
                               |eagerzeroedthick
                               ]
               -a --adaptertype [deprecated]
               -W --objecttype [file|vsan|vvol]
               --policyFile <fileName>
           -w --writezeros
           -j --inflatedisk
           -k --eagerzero
           -K --punchzero
           -U --deletevirtualdisk
           -E --renamevirtualdisk srcDisk
           -i --clonevirtualdisk srcDisk
               -d --diskformat [zeroedthick
                               |thin
                               |eagerzeroedthick
                               |rdm:<device>|rdmp:<device>
                               |2gbsparse]
               -W --object [file|vsan|vvol]
               --policyFile <fileName>
               -N --avoidnativeclone
           -X --extendvirtualdisk #[bBsSkKmMgGtT]
               [-d --diskformat eagerzeroedthick]
           -M --migratevirtualdisk
           -r --createrdm /vmfs/devices/disks/...
           -q --queryrdm
           -z --createrdmpassthru /vmfs/devices/disks/...
           -v --verbose #
           -g --geometry
           -x --fix [check|repair]
           -e --chainConsistent
           -Q --objecttype name/value pair
           --uniqueblocks childDisk
   vmfsPath

OPTIONS FOR DEVICES: 

           -L --lock [reserve|release|lunreset|targetreset|busreset|readkeys|readresv
                     ] /vmfs/devices/disks/...
           -B --breaklock /vmfs/devices/disks/...

vmkfstools -H --help
```

対象の仮想マシンのフォルダを見ます

```
[root@vmware-esx01:~] ls -alh /vmfs/volumes/Datastore\ 1/ZVM-test/
total 9891856
drwxr-xr-x    1 root     root        1.4K Aug  4 08:46 .
drwxr-xr-t    1 root     root        2.7K Aug 10 16:32 ..
-rw-r--r--    1 root     root         552 Aug  4 08:46 ZVM-test-70f957a2.hlog
-rw-------    1 root     root       40.0G Aug  4 08:46 ZVM-test-flat.vmdk
-rw-------    1 root     root        8.5K Aug  4 08:46 ZVM-test.nvram
-rw-------    1 root     root         546 Aug  4 08:46 ZVM-test.vmdk
-rw-r--r--    1 root     root           0 Aug  4 08:46 ZVM-test.vmsd
-rwxr-xr-x    1 root     root        2.9K Aug  4 08:46 ZVM-test.vmx
-rw-------    1 root     root      268.5K Aug  4 08:46 vmware-1.log
-rw-------    1 root     root      264.6K Aug  4 08:46 vmware.log
```

事前に対象の仮想マシンをパワーオフしておき、
このフォルダ内のvmdkファイルに変換をかけてクローンします

```
[root@vmware-esx01:~] vmkfstools -i /vmfs/volumes/Datastore\ 1/ZVM-test/ZVM-test.vmdk -d thin /vmfs/volumes/Datastore\ 1/ZVM-test/ZVM-test-thin.vmdk
Destination disk format: VMFS thin-provisioned
Cloning disk '/vmfs/volumes/Datastore 1/ZVM-test/ZVM-test.vmdk'...
Clone: 100% done.
```

ファイルができているか確認します

```
[root@vmware-esx01:~] ls -alh /vmfs/volumes/Datastore\ 1/ZVM-test/
total 19779600
drwxr-xr-x    1 root     root        1.6K Aug 15 08:32 .
drwxr-xr-t    1 root     root        2.7K Aug 10 16:32 ..
-rw-r--r--    1 root     root         552 Aug  4 08:46 ZVM-test-70f957a2.hlog
-rw-------    1 root     root       40.0G Aug  4 08:46 ZVM-test-flat.vmdk
-rw-------    1 root     root       40.0G Aug 15 08:29 ZVM-test-thin-flat.vmdk
-rw-------    1 root     root         551 Aug 15 08:32 ZVM-test-thin.vmdk
-rw-------    1 root     root        8.5K Aug  4 08:46 ZVM-test.nvram
-rw-------    1 root     root         546 Aug  4 08:46 ZVM-test.vmdk
-rw-r--r--    1 root     root           0 Aug  4 08:46 ZVM-test.vmsd
-rwxr-xr-x    1 root     root        2.9K Aug  4 08:46 ZVM-test.vmx
-rw-------    1 root     root      268.5K Aug  4 08:46 vmware-1.log
-rw-------    1 root     root      264.6K Aug  4 08:46 vmware.log
```

#vCenterからの作業
仮想マシンの「設定の編集」から「ハードディスク」を削除します。
![vmkfstools_thick_to_thin2-1.png](https://qiita-image-store.s3.amazonaws.com/0/101361/5a67e31d-a031-ed63-a51c-8c3c99736672.png)

削除が完了したことを確認した後、「設定の編集」-->「新規デバイス」-->「既存のハードディスク」から、コマンドで作成済みの「〜thin.vmdk」を指定して追加します。
![vmkfstools_thick_to_thin3-1.png](https://qiita-image-store.s3.amazonaws.com/0/101361/11f66a96-bdee-67c2-b590-d0a1db85bbb2.png)

#確認
再度、容量を確認すると、シンプロビジョニングにしたことで使用領域が30GBほど節約できました！
![vmkfstools_thick_to_thin4-1.png](https://qiita-image-store.s3.amazonaws.com/0/101361/093089ad-177a-11e0-1685-0aa655a1fc44.png)

#参考
- [シックプロビジョニングで作成したvmdkを変換する - 雑木林](http://zokibayashi.hatenablog.com/entry/2015/10/12/014943)
- [VMwareでゲストOSのディスク使用量を確認する方法。シンプロビジョニングの場合 | puti se blog](http://blog.putise.com/vmware%E3%81%A7%E3%82%B2%E3%82%B9%E3%83%88os%E3%81%AE%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E4%BD%BF%E7%94%A8%E9%87%8F%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%80%82%E3%82%B7/)