As we already know that vSAN is an software defined storage solution. So you might be thinking how you can manage virtual machines on the vSAN, answer to that is using the vm storage policies. vSAN comes with a large set of storage policies where we can configure different storage policies based on the requirements of the vm. You can also create multiple storage policies and assign each different policies to each different VMs based on the performance requirement.
vSAN helps you to manage your virtual machines using storage policies. Once you assign the storage policy to the VM then you can check the compliant status if it shows that it is compliant then storage policy is successfully applied and VM is deployed using the policy but if it shows the non compliant then you need to check for the storage policy configuration, resource availability and multiple things you can check.
In this post we will see on the available storage policies in the vSAN where you can configure your own policy based on the environment. Once you create a storage policy then you just have to apply that storage policy to the VM. After that VM’s objects and components will be reconfigured based on the storage policy assigned.
So Let’s see vSAN Storage Policies :
Primary Level of Failure to tolerate:
This policy can tolerate primary level of failure such as disk, host or fault domain failures in Non-stretched clusters. There is minimum value you can use is 0 and maximum will be 3. So if you use 0 as failure to tolerate then VM will be deployed with no replica or VM can not tolerate any failures. If you configure value to 1 then one replica of the vm storage object will be created and vm can tolerate 1 disk,host failures. Similarly it goes for 2 and 3 values. If you configure the policy with 1 or more values you can see that the storage consumption will be increases by 100% so that means you will require more storage space.
For example if you create a VM with 100GB Disk space then storage consumption will be 200GB on the vSAN Datastore. If you increase value from 1 to 2 then it will be 300GB.
If fault domains are configured, 2n+1 fault domains with hosts contributing capacity are required. A host, which is not part of any fault domain is considered its own single-host fault domain.
Failure Tolerance Method:
Failure tolerance method allows you to specify which tolerance method you want to use. Here you will see 2 values RAID-1 (Mirroring) – Performance and RAID-5/6 (Erasure Coding) – Capacity.
- RAID 1 Mirroring is the default value where your vm will be mirrored that means you will get the complete replica of the VM. It is called Performance because it ensures the high performance as replica is always available but storage consumed is double then the assigned.
- RAID 5/6 (Erasure Coding) – Capacity it works same way as RAID 5 and RAID 6 works in the storage using the parity blocks. For using RAID 5/6 (Erasure Coding) you should have All Flash configuration and Advanced or Enterprise License of vSAN.
- If you want to use the RAID 5 where you can tolerate 1 failure then set the Primary Failure to tolerate to 1. For RAID 5 you should have minimum 4 ESXi Hosts part of the vSAN Cluster. If you use the RAID 5 then your storage consumption will increase by 33% which is less then the 100% in RAID 1 Mirroring.
For Example 100GB Disk will consume 133GB. You can check the below screenshot for the same.
- If you want to use the RAID 6 where you can tolerate 2 failures then set the Primary Failure to tolerate to 2. For RAID 6 you should have minimum 6 ESXi Hosts part of the vSAN Cluster. If you use the RAID 6 then your storage consumption will increase by 50% which is also less then the 100% in RAID 1 Mirroring but more then the RAID 5.
For Example 100GB Disk will consume 150GB. You can check the below screenshot for the same.
Number of Disk Stripes per Object:
Here you can configure the Number of Stripes for the VMDK. Default value is 1 and maximum value is 12. Let’s say you have deployed the VM with VMDK size of 100GB and Number of Disk stripes is set to 1 then there will be only 1 object will be there on the Disk but if you increase the value from 2 or more then your VMDK will be striped into multiple disks on the vSAN Datastore.
Set this value to the default 1, Change only if there is any performance issue. Because if you increase stripes you will require more resource to accommodate. You will get performance improvement by increasing the stripe but it can be done only the resources are available and recommended. In a hybrid environment, the disk stripes are spread across magnetic disks. In the case of an all-flash configuration, the striping is across flash devices that make up the capacity layer.
IOPS limit for Object:
It will help you to limit the IOPS of the disk when disk is consuming the lot of IO. IOPS is calculated as the number of IOs using a weighted size. By default system uses the base size 32KB so if it is 64KB then it will be considered as 2 IO. Default value is 0 that means there is no limit applied on the IOPS. If the limit is set then IOPS will be throttled if exceeded the limit.
As the name suggests vSAN will try to force provision the Object even if there is no resource available to satisfy the policy configured. vSAN will try to provision the object when the resource becomes available. Default value is set to No. Use this as Yes only if there is strong requirement else leave it default with No. The default No is acceptable for most production environments. Virtual SAN fails to provision a virtual machine when the policy requirements are not met, but it successfully creates the user-defined storage policy.
Object Space Reservation:
If you configure the Object space reservation then reservation will be done on the vSAN Datastore for the specified object or the VM on which this policy is assigned. You can assign values in %. Default value is 0% and you can increase it to 100%.
That means if you have VM with 100GB of Disk and you configure 50% Object Space reservation then from the vSAN Datastore 100GB will be reserved for that VM (and Replica). It works like the thick disks where amount of storage is allocated to the VM when VM is deployed. Change this only if there is specific requirement or there will be no storage space left on the vSAN Datastore.
Flash Read Cache Reservation:
As the name says Flash Read Cache will be reserved for the object when you configure this value. It is to be used only when you have read performance related issues. vSAN is smart to assign the read cache to all the objects fairly. You can assign values in %. Default value is 0% and maximum value is 100%. It is not supported in All Flash configurations.
As you can see from above image when we try to set the flash read cache reservation of 10% then 10GB of Flash will be reserved from the 100GB of Disk space.
Disable Object Checksum:
vSAN uses checksum to verify the integrity of the objects such as VMDK for any corruption. vSAN uses end-to-end checksum to ensure the integrity of data by confirming that each copy of a file is exactly the same as the source file. The system checks the validity of the data during read/write operations, and if an error is detected, Virtual SAN repairs the data automatically or reports the error. By default it is enabled you can disable it from here but it is recommended to leave it Enabled only.
Checkout Our Posts on vSAN:
That’s it for Today Friends. I Hope you liked reading this post & If you find anything more to be added or removed feel free to write it in our comments. If you find it useful You are Feel free to share this on social media to help others & spread knowledge.
If you have any query on any thing you are free to write it in our comments section & we will make sure to provide you the better solution as soon as possible.