One policy setting that I have yet to discuss in any great detail in my blog posts about VSAN. The ForceProvisioning policy setting, when placed in the VM Storage Policy, allows Virtual SAN to violate the NumberOfFailuresToTolerate (FTT), NumberOfDiskStripesPerObject (SW) and FlashReadCacheReservation (FRCR) policy settings during the initial deployment of a virtual machine.
Behavior when requirements in a policy cannot be met
Virtual SAN attempts to deploy a VM that it meets all requirements in its VM Storage Policy. If it cannot do this, it will attempt a much simpler placement with requirements reduced to the following:
- NumberOfFailuresToTolerate = 0
- NumberOfDiskStripesPerObject = 1
- FlashReadCacheReservation = 0
This means Virtual SAN will attempt to create an object with just a single mirror. Any ObjectSpaceReservation (OSR) policy setting is still honored.
Virtual SAN does not gracefully decrement the policy requirement to find a placement for an object. It simply reduces the requirements to its lowest possible setting. For example, if an object asks for FTT=2 that can’t be met, Virtual SAN won’t try FTT=1, but instead immediately tries FTT=0 if the ForceProvisioning requirement is set in the policy.
Similarly, if there is a requirement for FTT=1 and SW=10 but Virtual SAN doesn’t have enough capacity devices to accommodate SW=10, then if ForceProvisioning is set it will fall back to using a policy of FTT=0, SW=1, even though a policy of FTT=1, SW=1 may have succeeded.
Behavior when additional resources become available
There is another consideration. Force Provisioning can lead to capacity issues if its behavior is not well understood by administrators. If a number of virtual machines have been force provisioned, but only one replica copy of an object is currently instantiated due to lack of resources (FTT=0), once those resources become available through the addition of new hosts or new disks, Virtual SAN will automatically consume them on behalf of those virtual machines and try to bring the VM compliant with its policy.
Administrators who use this option to force provision virtual machines need to be aware that once additional resources become available in the cluster, Virtual SAN may immediately consume these resources to try to satisfy the policy settings of virtual machines. This will leave less usable capacity than originally thought.
Behavior of non-compliant objects when full data migration occurs
One final special consideration relates to entering Maintenance Mode in full data migration mode. If an object is currently non-compliant due to force provisioning (i.e. FTT=0), then “Full data evacuation” of the object will obviously behave like “Ensure Accessibility”, i.e. the evacuation will allow the object to have reduced availability, exposing it a higher risk. If another failure occurs on the cluster while this host is in maintenance mode, the VM may become inaccessible. This is an important consideration when using force provisioning, and only applies to non-compliant objects.
A full explanation of the various policy settings can be found here.