On a VMFS volume a VM is comprised of many files that all have different purposes, the configuration file for a VM (.vmx) is a small text file (<100KB) that contains various information about the virtual hardware configuration of the VM. With the Virtual Volumes (VVols) architecture the configuration information for a VM is stored in a different manner. Before we go there though lets take a look at how a VM is stored on VVols versus VMFS, the below picture illustrates the files that make up a VM on VMFS.
With VVols a VM is still comprised of different object types just like VMFS but many of them have been consolidated so there are fewer objects. A VM on VVols is made up of a minimum of two files, a Config VVol and a Data VVol, once a VM is powered on a Swap VVol is created to support memory over-commitment on a host which is then deleted when a VM is powered off just like with VMFS. There are additional VVols created for each snapshot that is taken of a VM as well as any memory states included with snapshots. So where did all those other files go that are part of a VM on VMFS such as log files, descriptor files, lock files, etc? They all get packing into the Config VVol.
While a config file on VMFS is quite small, with VVols it’s much larger as it’s allocated with 4GB of space by default. It’s allocated thin though so the actual size will be much smaller but it has the potential to grow as the data within it grows. Below is a screen shot from a 3PAR array that shows the Config VVol, you can see that is is provisioned thin (tpvv) and the actual physical space it consumes is around 2GB (1996MB). Also note the Swap file is fully allocated, this is necessary as the file is used for virtual RAM and it will be equal in size to the memory that is assigned to a VM (minus any memory reservations).
So what’s all in the Config VVol, the virtual hardware configuration of a VM of course but it also contains descriptor files for virtual disk and snapshots. With VMFS you always had 2 files that were created for each virtual disk, a small descriptor file and the larger data file, with VVols the Data VVol is the virtual disk and the descriptor is in the Config VVol. You also have all those individual .log files that exist for each VM on VMFS all combined into the Config VVol as well as any lock files that get created.
So there you have it, I don’t know if it’s possible to reclaim space inside a Config VVol like you can within the Data VVol using UNMAP. The max size of a Config VVol is 4GB, as most of the files are small, they probably truncate and remove log files as needed to ensure that it doesn’t exceed that size. Also all of the data inside a Config VVol is mostly text based data, I’m not sure how it’s structured inside the VVol container I’ll have to see if I can get a look inside one to find out.