Introduction to VM Storage Policies
One of the great features within vCenter is the ability to create VM Storage Policies. What are VM Storage Policies?
According to VMware Official documentation, VM Storage policies are specific requirements placed upon underlying storage to ensure desired characteristics are met.
Within vSAN, VM storage policies are not applied to the underlying datastore/storage array, but to the VM/VMDKs themselves. This is a huge step forward within the Software Defined Datacenter. The biggest benefit is that it creates flexibility in allowing the VMs to move and keep its policies. This in turn creates greater availability and protection since you can now surgically create polices and assign them to specific VMs. Also, you could create a Storage Policy for Mission Critical VMs to ensure VM availability after x number of failures within your vSAN cluster. The best part is that the policy lives with the VM, which increases automation and reduces risks greatly.
For example, say you have a Test VM that isn’t mission critical. If you wish to create a failures to tolerate=1 policy within vSAN, then you would create a policy and assign it to the specified VM or vSAN datastore. Once you have created the policy and deploy the VM to the associated policy, vSAN is responsible for maintaining the requirements on the Test VM. This leads to increased flexibility since the Test VM itself dictates which storage it can be on, based on it’s assigned policy/capabilities. Listed below are the capabilities that can be utilized to create vSAN specific Storage policies. This list was taken from my book Essential Virtual SAN (VSAN) (If you haven’t picked one up yet, be sure to purchase one!)
VM Storage Policies within vSAN 6.2
- Number of failures to tolerate
- Number of disk stripes per object
- Failure tolerance method
- IOPS limit for object
- Disable object checksum
- Flash read cache reservation
- Object space reservation
- Force provisioning
To show how simple it is to create a storage policy for my Test VM, let’s head over to the VirtualBoi lab and create a policy for failures to tolerate=1 utilizing RAID1 as the failure tolerance method.
First, login into vCenter, go to Home, then select Policies and Profiles.
Next select VM Storage Policies.
Once selected, click Create VM Storage Policy
You are greeted with a new pop up. Give a good description in the name field for the new VM storage policy.
Review the rule set flow chart, then select next.
Click next on common rules since we are going to create our own rule set. Don’t check “Use common rules in the VM storage policy”.
Click the <Select provider> option under Storage Type.
Next, select the default “VSAN” for storage type.
Next, select <Add Rule> to select the specified policy you would like to utilize.
For the example, we want to create a rule for failures to tolerate=1 and RAID=1. So for the first rule, set “Number of failures to tolerate” to 1.
Now for the second part of the policy, repeat the above steps for <add rule>, but this time select Failure tolerance method.
Ensure RAID-1 (Mirroring) – Performance is selected.
You now see the end result of both rules for the desired storage policy.
The wizard will now show you which storage systems are compatible with the desired policy. Within my lab, the only compatible datastore was the vSAN datastore.
**It’s important to note that the vSAN cluster settings and the specified disk groups, number of hosts, etc will always dictate the capabilities of the VM Storage policies. For instance, due to my three hosts cluster with three disks groups, I wouldn’t be able to utilize RAID5/6 or failures to tolerate=2 since I don’t have enough hosts/disk groups to satisfy the requirements.
Once a compatible policy is selected, select next, then finish.
You should now see the newly created VM Storage policy within VM Storage Policies.
The final result is a usable VM Storage Policy that you may select when deploying VMs.
Once I deploy the new VM and select this particular VM storage policy, the policy would ensure that the VM has an exact copy of itself (RAID1), which according to the informational, would use 80GB of disk space (RAID1=40GB VM X 2).
This ensures the VM could at least handle one failure scenario (in this case 1 host). If I were to lose more than 2 hosts, the VM’s availability would be impacted.
In conclusion, VMWare and vSAN make it very easy to abstract Software Defined Polices and apply them to individual VMs. The end result ensures users are one step closer to the Software Defined DataCenter!