alexj156
Contributor
Contributor

Splitting disk to 2gb chunks

I am attempting to split a disk to 2gb chunks. I am running Vmware Workstation 11 on ubuntu. The original is a single file vmdk, drive size is 500gb, of which 120gb is used.

I am running the following command.

vmware-vdiskmanager -r ./win7x64.vmdk -t 1 ./new/win7x64.vmdk

I am trying to get 2gb split files so that I can move the vm around on a usb3 drive. The problem I am having is that it is making 8gb files. Any thoughts on how to get this to work.

Reply
0 Kudos
a_p_
Leadership
Leadership

That's interesting. I have to admit that I didn't try this with VMware Workstation 11 yet.

How does the newly create .vmdk header/descriptor file looks like (please attach it to a reply post)?

Does the help output for vmware-vdiskmanager show any additional new command line options?

André

Reply
0 Kudos
alexj156
Contributor
Contributor

Here is a dir listing of the files being created. Actually I was wrong the file sizes are 14gb, 9 gb. See below. I am still letting it run,

I launched the conversion with - Below is the vmdk.

vmware-vdiskmanager -r ./win7x64.vmdk -t 1 ./new/win7x64.vmdk

14G     win7x64-s001.vmdk

9.6G    win7x64-s002.vmdk

total 32368580

drwxrwxrwx 1 alexj alexj         368 Jan  5 19:17 ..

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s004.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s005.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s006.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s007.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s008.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s009.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s010.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s011.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s012.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s013.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s014.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s015.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s016.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s017.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s018.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s019.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s020.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s021.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s022.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s023.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s024.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s025.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s026.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s027.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s028.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s029.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s030.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s031.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s032.vmdk

drwxrwxrwx 1 alexj alexj         152 Jan  5 19:17 win7x64.vmdk.lck

-rwxrwxrwx 1 alexj alexj        1745 Jan  5 19:17 win7x64.vmdk

-rwxrwxrwx 1 alexj alexj 14651686912 Jan  5 19:22 win7x64-s001.vmdk

-rwxrwxrwx 1 alexj alexj 10298589184 Jan  5 19:25 win7x64-s002.vmdk

drwxrwxrwx 1 alexj alexj         184 Jan  5 19:28 .

-rwxrwxrwx 1 alexj alexj  8197074944 Jan  5 19:28 win7x64-s003.vmdk

# Disk DescriptorFile

version=1

encoding="UTF-8"

CID=4419861b

parentCID=ffffffff

isNativeSnapshot="no"

createType="twoGbMaxExtentSparse"

# Extent description

RW 32768000 SPARSE "win7x64-s001.vmdk"

RW 32768000 SPARSE "win7x64-s002.vmdk"

RW 32768000 SPARSE "win7x64-s003.vmdk"

RW 32768000 SPARSE "win7x64-s004.vmdk"

RW 32768000 SPARSE "win7x64-s005.vmdk"

RW 32768000 SPARSE "win7x64-s006.vmdk"

RW 32768000 SPARSE "win7x64-s007.vmdk"

RW 32768000 SPARSE "win7x64-s008.vmdk"

RW 32768000 SPARSE "win7x64-s009.vmdk"

RW 32768000 SPARSE "win7x64-s010.vmdk"

RW 32768000 SPARSE "win7x64-s011.vmdk"

RW 32768000 SPARSE "win7x64-s012.vmdk"

RW 32768000 SPARSE "win7x64-s013.vmdk"

RW 32768000 SPARSE "win7x64-s014.vmdk"

RW 32768000 SPARSE "win7x64-s015.vmdk"

RW 32768000 SPARSE "win7x64-s016.vmdk"

RW 32768000 SPARSE "win7x64-s017.vmdk"

RW 32768000 SPARSE "win7x64-s018.vmdk"

RW 32768000 SPARSE "win7x64-s019.vmdk"

RW 32768000 SPARSE "win7x64-s020.vmdk"

RW 32768000 SPARSE "win7x64-s021.vmdk"

RW 32768000 SPARSE "win7x64-s022.vmdk"

RW 32768000 SPARSE "win7x64-s023.vmdk"

RW 32768000 SPARSE "win7x64-s024.vmdk"

RW 32768000 SPARSE "win7x64-s025.vmdk"

RW 32768000 SPARSE "win7x64-s026.vmdk"

RW 32768000 SPARSE "win7x64-s027.vmdk"

RW 32768000 SPARSE "win7x64-s028.vmdk"

RW 32768000 SPARSE "win7x64-s029.vmdk"

RW 32768000 SPARSE "win7x64-s030.vmdk"

RW 32768000 SPARSE "win7x64-s031.vmdk"

RW 32768000 SPARSE "win7x64-s032.vmdk"

# The Disk Data Base

#DDB

ddb.adapterType = "lsilogic"

ddb.deletable = "true"

ddb.geometry.cylinders = "65270"

ddb.geometry.heads = "255"

ddb.geometry.sectors = "63"

ddb.longContentID = "4248704e82ae6ada1db537c04419861b"

ddb.toolsVersion = "9504"

ddb.uuid = "60 00 C2 98 cc 85 d4 fc-c0 47 75 9b 8a 5b ed 4e"

ddb.virtualHWVersion = "4"

Reply
0 Kudos
a_p_
Leadership
Leadership

What does the command's help show as available command line options?

Please post the output of vmware-vdiskmanager --help

I'd also appreciate if you could compress/zip one of the "clean" .vmdk file (e.g. win7x64-s030.vmdk), and attach it to a reply post, so I can take a look at its metadata.

André

Reply
0 Kudos
alexj156
Contributor
Contributor

Thank you for the quick response.

Below is the output from vmware-vdiskmanager help, also a dir listing of the final files, I let the process fully complete. I also attached the main vmdk file as well as a clean vmdk file. Again, Thank you very much for looking at this.

VMware Virtual Disk Manager - build 2305329.

Usage: vmware-vdiskmanager OPTIONS <disk-name> | <mount-point>

Offline disk manipulation utility

  Operations, only one may be specified at a time:

     -c                   : create disk.  Additional creation options must

                            be specified.  Only local virtual disks can be

                            created.

     -d                   : defragment the specified virtual disk. Only

                            local virtual disks may be defragmented.

     -k                   : shrink the specified virtual disk. Only local

                            virtual disks may be shrunk.

     -n <source-disk>     : rename the specified virtual disk; need to

                            specify destination disk-name. Only local virtual

                            disks may be renamed.

     -p                   : prepare the mounted virtual disk specified by

                            the mount point for shrinking.

     -r <source-disk>     : convert the specified disk; need to specify

                            destination disk-type.  For local destination disks

                            the disk type must be specified.

     -x <new-capacity>    : expand the disk to the specified capacity. Only

                            local virtual disks may be expanded.

     -R                   : check a sparse virtual disk for consistency and attempt

                            to repair any errors.

     -e                   : check for disk chain consistency.

     -D                   : make disk deletable.  This should only be used on disks

                            that have been copied from another product.

  Other Options:

     -q                   : do not log messages

  Additional options for create and convert:

     -a <adapter>         : (for use with -c only) adapter type

                            (ide, buslogic, lsilogic). Pass lsilogic for other adapter types.

     -s <size>            : capacity of the virtual disk

     -t <disk-type>       : disk type id

  Disk types:

      0                   : single growable virtual disk

      1                   : growable virtual disk split in 2GB files

      2                   : preallocated virtual disk

      3                   : preallocated virtual disk split in 2GB files

      4                   : preallocated ESX-type virtual disk

      5                   : compressed disk optimized for streaming

      6                   : thin provisioned virtual disk - ESX 3.x and above

     The capacity can be specified in sectors, KB, MB or GB.

     The acceptable ranges:

                           ide/scsi adapter : [1MB, 8192.0GB]

                           buslogic adapter : [1MB, 2040.0GB]

        ex 1: vmware-vdiskmanager -c -s 850MB -a ide -t 0 myIdeDisk.vmdk

        ex 2: vmware-vdiskmanager -d myDisk.vmdk

        ex 3: vmware-vdiskmanager -r sourceDisk.vmdk -t 0 destinationDisk.vmdk

        ex 4: vmware-vdiskmanager -x 36GB myDisk.vmdk

        ex 5: vmware-vdiskmanager -n sourceName.vmdk destinationName.vmdk

        ex 6: vmware-vdiskmanager -r sourceDisk.vmdk -t 4 -h esx-name.mycompany.com \

              -u username -f passwordfile "[storage1]/path/to/targetDisk.vmdk"

        ex 7: vmware-vdiskmanager -k myDisk.vmdk

        ex 8: vmware-vdiskmanager -p <mount-point>

              (A virtual disk first needs to be mounted at <mount-point>)

total 127106816

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s010.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s011.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s012.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s013.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s014.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s015.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s017.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s018.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s019.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s020.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s021.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s022.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s023.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s024.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s025.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s026.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s027.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s028.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s029.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s030.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s031.vmdk

-rwxrwxrwx 1 alexj alexj     2097152 Jan  5 19:17 win7x64-s032.vmdk

-rwxrwxrwx 1 alexj alexj        1745 Jan  5 20:03 win7x64.vmdk

-rwxrwxrwx 1 alexj alexj 14651686912 Jan  5 20:03 win7x64-s001.vmdk

-rwxrwxrwx 1 alexj alexj 10298589184 Jan  5 20:03 win7x64-s002.vmdk

-rwxrwxrwx 1 alexj alexj 16631660544 Jan  5 20:03 win7x64-s003.vmdk

-rwxrwxrwx 1 alexj alexj 16512843776 Jan  5 20:03 win7x64-s004.vmdk

-rwxrwxrwx 1 alexj alexj 16621699072 Jan  5 20:03 win7x64-s005.vmdk

-rwxrwxrwx 1 alexj alexj 15161622528 Jan  5 20:03 win7x64-s006.vmdk

-rwxrwxrwx 1 alexj alexj 12532056064 Jan  5 20:03 win7x64-s007.vmdk

-rwxrwxrwx 1 alexj alexj 16048455680 Jan  5 20:03 win7x64-s008.vmdk

-rwxrwxrwx 1 alexj alexj 11700142080 Jan  5 20:03 win7x64-s009.vmdk

-rwxrwxrwx 1 alexj alexj     2162688 Jan  5 20:03 win7x64-s016.vmdk

Reply
0 Kudos
a_p_
Leadership
Leadership

The metadata in the files basically looks ok and reflects the increased maximum file size (~15.6GB). It looks like VMware decided to increase the split .vmdk size, which may certainly decrease the number of .vmdk files, but also make it impossible to store them on file system which do not support large file sizes. It also looks like this change was made in a hurry, because the command's help has not been updated (yet). Maybe we are lucky and jmattson can shed some light on this new behavior, and whether there's a way to still create 2GB files when converting disks!?

André

Reply
0 Kudos
alexj156
Contributor
Contributor

I appreciate you looking at this, as I was thinking I was doing something wrong. Hopefully there will be some sort of update. I wanted to be able to carry a vm on a usb3 ssd that I can operate on multiple OS (windows, mac and linux). So I was hoping to use fat32 which works on most OSes. Thanks again

Reply
0 Kudos
admin
Immortal
Immortal

Hmmm...It looks like the 2GB sparse format is being phased out, and disks are now limited to 32 extents, meaning that the capacity determines the size of the extents.  Moreover, it seems that the minimum extent size is 4GB, regardless of capacity.  I will file a bug, and we'll see where it goes.

Reply
0 Kudos
sswami
Contributor
Contributor

The new split disk scheme


Capacity           Extent size

================================

<=128GB            4GB (increased from 2GB)

>128GB && <2TB     Capacity / 32 (so maximum of 32 extents)

>=2TB              2TB

Since your extents are 8GB you will not be able to transport it in FAT32 formatted USB. Could you try formatting your usb to exFAT, to transport this file?


vmware-vdiskmanager 's help description definitely needs to be updated to reflect this.

Reply
0 Kudos
stuartbh
Contributor
Contributor

ALL,

I have seen were customers running VMware Workstation under Linux are seeing split files as big as 14-16GB!?! How can that be? This was with the latest variant of VMware Workstation for Linux too.

I imagine there must be a gargantuent bug in VMware workstation for Linux, though I see no report of it or anything indicating a work around or such.

How can one determine what the size of their extents are and what impact it has on the total maximum size of a split file chunk?

Stuart

Reply
0 Kudos
a_p_
Leadership
Leadership

That's no bug, it's by design. Please see the latest reply in this thread (Re: Splitting disk to 2gb chunks) which explains how .vmdk sizes are calculated.

If you want to know what the maximum size of each chunk can be, take a look at the descriptor file which lists the chunks with their max. sizes in 512kB blocks.


André

Reply
0 Kudos