I would like to brief here about one of the rules in vSan storage policy i.e., Force Provisioning, it may sound very easy, but at times can put the environment in trouble.
Force provisioning is the rule which can be selected when creating a new storage policy as shown below: I has only two options "YES" or "NO"
When Force provisioning is set to "YES" :
If the option is set to Yes, the object is provisioned even if the other rules defined i.e., Primary level of failures to tolerate, Number of disk stripes per object, and Flash read cache reservation policies specified in the storage policy cannot be satisfied by the datastore. Use this parameter in bootstrapping scenarios and during an outage when standard provisioning is no longer possible.
When requirements in a storage policy cannot be met:
Virtual SAN attempts to deploy a VM that it meets all requirements of a 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 one component mapped to an object.
For example, if an object asks for FTT=2 that can’t be met, immediately tries FTT=0 instead of FTT =1, if the ForceProvisioning requirement is set in the policy.
Similarly, if there is a requirement for FTT=1 and SW=5 but Virtual SAN doesn’t have enough capacity devices to accommodate SW=5, if ForceProvisioning is set it will fall back to using a policy of FTT=0, SW=1. To simplify this, if the requirement is not met, the least possible settings are picked up automatically.
when resources become available in the cluster:
Enable Force Provisioning can lead to capacity issues if not properly designed/planned. If number of virtual machines have been force provisioned when requirements are not met, one component per object gets created (FTT=0), once those resources become available through the addition of new hosts or 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.
Risk to be considered:
One of the important considerations to be noted is regarding the maintenance mode of hosts with full data migration. 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 any of the host in cluster fails and non-compliant vm's are located in those disks of affected host, vm's will be inaccessible - this applies to non-compliant objects.
When Force provisioning is set to "NO" :
The default No is acceptable for most production environments. vSAN fails to provision a virtual machine when the policy requirements are not met.