There are various places that tell you you cannot resize a thick disk to a thin disk using vmkfstools.
When you do it wrong, you get this error:
DiskLib_Check() failed for source disk. The file specified is not a virtual disk (15).
This happens when you directly try to resize the physical disk image:
# vmkfstools -i msmxp-flat.vmdk -d thin msmxp-flat.thin.vmdk DiskLib_Check() failed for source disk The file specified is not a virtual disk (15).
Whereas you should point vmkfstools
to the disk descriptor file which has the shortest name:
# vmkfstools -i msmxp.vmdk -d thin msmxp.thin.vmdk Destination disk format: VMFS thin-provisioned Cloning disk 'msmxp.vmdk'... Clone: 100% done.
For performance, it doesn’t matter much if your disk is thick or thin as explained by Death to false myths: The type of virtual disk used determines your performance.
But various people issues expanding a thick disk. With thin disks, that usually works fine.
This post explains the correct steps of resizing: VMWare ESXi 5.1–convert virtual disk (vmdk) from thick to thin provision.
Here is a summary:
Step zero: shutdown the VM and ensure you have a backup!
For instance with rsync is great for making a local backup:
# time ./850EVO1TBR1B/bin/rsync -aiv --info=progress2 --progress ./850EVO1TBR1B/Raid6SSD-VM/msmxp/ ./850EVO1TBR1A/Raid6SSD-VM/msmxp/
Step one: show the disk files:
/vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # du -h *.vmdk 12.0G msmxp-flat.vmdk 0 msmxp.vmdk
There are two: msmxp.vmdk
describes the disk and msmxp-flat.vmdk
has the data.
Step two: ensure you have enough free space on the volume:
# ls -al /vmfs/volumes | grep "552f5788-33e30274-8dba-001f29022aed" drwxr-xr-t 1 root root 2660 Aug 5 04:35 552f5788-33e30274-8dba-001f29022aed lrwxr-xr-x 1 root root 35 Aug 5 06:11 850EVO1TBR1B -> 552f5788-33e30274-8dba-001f29022aed # df -h | grep "850EVO1TBR1B\|Use%" Filesystem Size Used Available Use% Mounted on VMFS-5 930.8G 736.8G 194.0G 79% /vmfs/volumes/850EVO1TBR1B
Convert the disk (you can replace -d
with --diskformat
):
# vmkfstools -i msmxp.vmdk -d thin msmxp.thin.vmdk Destination disk format: VMFS thin-provisioned Cloning disk 'msmxp.vmdk'... Clone: 100% done.
Observe the size (in my case the flat disk was almost full and fragmented, so the thin disk is not smaller):
/vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # du -h *.vmdk 12.0G msmxp-flat.vmdk 12.0G msmxp.thin-flat.vmdk 0 msmxp.thin.vmdk 0 msmxp.vmdk
Rename both disks using vmkfstools
(do not use mv
as that will not keep the descriptor/data vmdk files bound together) and check the rename.
You can replace -E
with --renamevirtualdisk
:
/vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -E msmxp.vmdk msmxp.thick.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools --renamevirtualdisk msmxp.thin.vmdk msmxp.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # du -h *.vmdk 12.0G msmxp-flat.vmdk 12.0G msmxp.thick-flat.vmdk 0 msmxp.thick.vmdk 0 msmxp.vmdk
Turn on the Virtual Machine to verify it still works.
If it does, then delete it (you can replace -U
with --deletevirtualdisk
) which will remove both both the descriptor and data vmdk file:
/vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -U msmxp.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # du -h *.vmdk 12.0G msmxp-flat.vmdk 0 msmxp.vmdk
After shutting down the VM again and making a new backup, you can now expand the disk as described in VMware KB: Adding space to an ESXi/ESX host virtual disk. You can replace -X
with --extendvirtualdisk
.
/vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -X 14G msmxp.vmdk Grow: 100% done. /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # du -h *.vmdk 12.0G msmxp-flat.vmdk 0 msmxp.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -E msmxp.vmdk msmxp.thick.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -i msmxp.thick.vmdk msmxp.vmdk -d thin Destination disk format: VMFS thin-provisioned Cloning disk 'msmxp.thick.vmdk'... Clone: 100% done. /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # diff msmxp.thick.vmdk msmxp.vmdk --- msmxp.thick.vmdk +++ msmxp.vmdk @@ -7,18 +7,18 @@ createType="vmfs" # Extent description -RW 29360128 VMFS "msmxp.thick-flat.vmdk" +RW 29360128 VMFS "msmxp-flat.vmdk" # The Disk Data Base #DDB -ddb.adapterType = "ide" -ddb.thinProvisioned = "1" -ddb.geometry.sectors = "63" -ddb.geometry.heads = "16" -ddb.geometry.cylinders = "29127" -ddb.uuid = "60 00 C2 9f 5e f8 33 76-6e c5 48 3c f2 84 d8 1e" -ddb.longContentID = "5659579edebed2ebdd8e0c8fda15abd4" ddb.toolsVersion = "9221" ddb.virtualHWVersion = "8" ddb.deletable = "true" +ddb.longContentID = "5659579edebed2ebdd8e0c8fda15abd4" +ddb.uuid = "60 00 C2 95 66 1b cf 7a-e3 db 3f 30 17 7e 00 2d" +ddb.geometry.cylinders = "29127" +ddb.geometry.heads = "16" +ddb.geometry.sectors = "63" +ddb.thinProvisioned = "1" +ddb.adapterType = "ide" /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # du -h *.vmdk 12.0G msmxp-flat.vmdk 12.0G msmxp.thick-flat.vmdk 0 msmxp.thick.vmdk 0 msmxp.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -X 14G msmxp.vmdk Failed to extend disk : One of the parameters supplied is invalid (1). /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -X 14G msmxp.vmdk Failed to extend disk : One of the parameters supplied is invalid (1). /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -X 14G msmxp.vmdk Failed to extend disk : One of the parameters supplied is invalid (1). /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -X 15G msmxp.vmdk Grow: 100% done. /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # du -h *.vmdk 12.0G msmxp-flat.vmdk 12.0G msmxp.thick-flat.vmdk 0 msmxp.thick.vmdk 0 msmxp.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # vmkfstools -U msmxp.thick.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp # du -h *.vmdk 12.0G msmxp-flat.vmdk 0 msmxp.vmdk /vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/Raid6SSD-VM/msmxp #
–jeroen
via: vmware esxi – vmkfstools returns error when trying to copy thin vmdk – Server Fault.
Filed under: ESXi4, ESXi5, ESXi5.1, ESXi5.5, ESXi6, Power User, Virtualization, VMware, VMware ESXi
