I've just come off the call from vmware support where my concern has been confirmed. There has been a change in the code apparently where the VMware Virtual Disk Manager (In my case build 2985596) generates 4gb files when using option -t 1.
This is not documented at all apparently and I've been informed that this is going to be passed onto the documentation team. Even the help embedded into vmware-vdiskmanager.exe still says that disk types 1 and 3 will generate 2gb files where in fact they generate 4gb file.
At the moment I am awaiting response for my request to receive a copy of the Workstation 11 vdiskmanger where 2gb files are indeed 2gb.
Please share your thoughts and experiences below.
You are really expecting they will code a special version for you? Maybe in version 12.0.1 but even if they did it would not appear in the release notes - just my experience.
The change for the "2GB Sparse" file format was introduced in VMware Workstation 11.
from Re: Splitting disk to 2gb chunks
The new split disk scheme
Capacity Extent size
================================
<=128GB 4GB (increased from 2GB)
>128GB && <2TB Capacity / 32 (so maximum of 32 extents)
>=2TB 2TB
André
You can of course still create new vmdks with 2Gb slices - just use the multiple expand approach like this:
vmware-vdiskmanager -c -a lsilogic -s 2GB -t 1 g:\_vms_\2gb-slices.vmdk
vmware-vdiskmanager -x 4GB g:\_vms_\2gb-slices.vmdk
vmware-vdiskmanager -x 6GB g:\_vms_\2gb-slices.vmdk
vmware-vdiskmanager -x 8GB g:\_vms_\2gb-slices.vmdk
vmware-vdiskmanager -x 10GB g:\_vms_\2gb-slices.vmdk
vmware-vdiskmanager -x 12GB g:\_vms_\2gb-slices.vmdk
vmware-vdiskmanager -x 14GB g:\_vms_\2gb-slices.vmdk
....
The descriptor will look like this:
# Disk DescriptorFile
version=1
encoding="windows-1252"
CID=fffffffe
parentCID=ffffffff
isNativeSnapshot="no"
createType="twoGbMaxExtentSparse"
# Extent description
RW 4194304 SPARSE "2gb-slices-s001.vmdk"
RW 4194304 SPARSE "2gb-slices-s002.vmdk"
RW 4194304 SPARSE "2gb-slices-s003.vmdk"
RW 4194304 SPARSE "2gb-slices-s004.vmdk"
RW 4194304 SPARSE "2gb-slices-s005.vmdk"
RW 4194304 SPARSE "2gb-slices-s006.vmdk"
RW 4194304 SPARSE "2gb-slices-s007.vmdk"
# The Disk Data Base
#DDB
ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "1827"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "9be8ec6e8d78022c440f1b67fffffffe"
ddb.uuid = "60 00 C2 93 79 ff 04 fd-5c e3 91 8f a0 a7 9d 8c"
ddb.virtualHWVersion = "10"
That's very interesting as I had more or less abandoned VMWare Workstation after this change, making it impossible to support all relevant OSs and also extremely difficult to keep the sparse files defragmented.
However, is it possible to convert an existing VM with 4GB sparse files to 2GB sparse files using this method (I guess option -r comes into play)?
You will need a workaround.
Create new vmdk with 2gb slices.
Attach it your VM as a second disk.
Use a Linux LiveCd to boot into the VM
Clone disk to disk with
dd if=/dev/sda of=/dev/sdb bs=1M
Yes - that is not very convenient but it is the only way that will work
Ulli
send via iphone
An alternative to what continuum just said might be a 2-step approach, where the first step is to convert the virtual disk to the monolithic sparse file format using the current vmware-vdiskmanager version, and then convert it to the 2GB sparse format using an older version of this tool (e.g. the one in the attachment in https://kb.vmware.com/s/article/1023856).
André
Good suggestion: it is probably more convenient but would require a lot more of free space during the conversion.