BF.2 | Back2Basics | Virtual Disk(s)

So back to basics then, nobody likes it as everyone wants to talk about the newest and greatest development in the VMware sphere, but do you really know what is behind all of that?

BF.2 | Back2Basics | Virtual Disk(s)

What if I told you that how you see the VMs disks in the GUI is a lie?

VM disks are more than 1 file. Whaaaaat?

But I only see 1 file when I browse the datastore via GUI.

Well you can only see the simplified view from the GUI, you want to see everything you need to connect to the host with a "putty" like client and navigate to where the disks are. You will see that there are more files that make up the VMs hard disk.

What really is a VMDK?

The usual suspects are:

  • "Descriptor" file - (AffectedVM.vmdk) holds the information about the disk like its type, extent and its location, change tracking file and its location, adapterType, geometry, size, etc
  • flat file - (AffectedVM-flat.vmdk) the binary file that actually holds the data
  • ctk file - (AffectedVM-ctk.vmdk) the file used for tracking changes for incremental backups.

You can observe that from the GUI you will see a simplified view of the disk where the vSphere CLient or Web Client will display both -flat and the "descriptor" files as one.

If you are running an older version of vSphere like 5.1 and older and are using VM disks that are larger than 2TB you may notice that you have even more and different files comprising the VMs disk.

These files are in SESPARSE (Space Efficient Virtual Disk) format. From 5.5 onwards these were phased out and are now vmdk files in 6.5.


Sometimes if you have VMs using Raw Device Mappings you may find -rdm.vmdk files or -rdmp.vmdk files if you use Physical RDM compatibility mode.

Go explore!

Don't believe me? Go and check for yourself, just remember to back up your VM before doing anything that may jeopardize your data or work on a test VM.

All of this changes if we move to vSAN but this is a topic for another time.

Have you ever spotted a strange file with your VM's name in it? Let me know @vNowakB or #sshguru

Related Article