I have been receiving a number of queries lately with regards to First Class Disks (FCD) on vSphere, also referred to as Improved Virtual Disks (IVD). Some time back, I wrote a primer on FCDs and more recently I wrote about Safekeeper, a tool for interacting with FCDs which is available on GitHub as OpenSource. This may be why there has been an increase in awareness and I am seeing more questions about FCDs.
In this post, I want to address some of the most common FCD/IVD questions that I have received to date. Feel free to leave comments if there are other queries that are not answered in this post.
The whole point of FCDs is so that users can create/modify/delete FCDs independent of the virtual machine lifecycle. When creating an FCD, users also have the option of converting a legacy disk to an FCD. This operations works with a VMDK attached to either a powered off or a powered on virtual machine, enabling the live translation of legacy virtual machine disks.
The following is a list of modifications that we currently support on FCDs:
- Extend the size of an FCD.
- Rename an FCD.
- Updating the SPBM policy associated with an FCD.
- Convert an FCD from thin provisioned to thick provisioned.
- Attaching a tag to an FCD.
FCDs can be attached to both powered on and powered off virtual machines.
Deletion of an FCD that is not attached to a VM is supported.
Deleting an FCD attached to a VM when that VM is deleted is supported. This behaviour is based on flags set on the FCD. These flags can be set to delete the FCD when the VM is deleted, or the flags can be set to retain the FCD after the VM has been deleted.
Note that, historically, the default behavior was that the FCD would be deleted when the VM is deleted (unless the control flag is explicitly set not to delete it). We are changing the default behavior going forward so that the default setting will be to not delete the FCD when VM is deleted, unless the control flag is explicitly set to delete it.
FCDs can be snapshotted. The snapshots can be taken either using FCD snapshot APIs directly, or through VM snapshot APIs. The latter is for cases where the FCD is attached to a VM (but users can also create a FCD snapshot using FCD snapshot API even when it is attached to the running VM). Note however that using VM snapshot API’s while FCD is attached will not create an FCD snapshot. If you use VM snapshot APIS and then invoke the FCD API to get a list of snapshots, it will only return the snapshots created through FCD snapshot API.
There is also an option create a new FCD from an existing FCD snapshot as well.
The safekeeper tool mentioned earlier is very useful for examining snapshot behaviour of FCDs.
[Update] Encryption of FCDs is available via VMcrypt, with the release of CSI 2.0 and vSphere 7.0.
FCD Max Volume Size
The FCD API does not dictate the maximum. The maximum volume size is defined by the underlying storage.
The FCD API support cloning of FCDs.
The FCD API supports the relocating (using Storage vMotion) of an FCD to another datastore, if they are attached to a VM. This is done using migrateVM API. Migration of standalone/unattached FCDs is not available at the time of writing (vSphere 7.0U1). Storage DRS is not supported with FCDs at this time either.
As I mentioned at the beginning of this post, feel free to leave questions about FCDs in the comments, and I will endeavor to find an answer for you.