vSAN storage policies define storage requirements for your virtual machines.

These policies determine how the virtual machine storage objects are provisioned and allocated within the datastore to guarantee the required level of service. When you enable vSAN on a host cluster, a single vSAN datastore is created and a default storage policy is assigned to the datastore.

When you know the storage requirements of your virtual machines, you can create a storage policy referencing capabilities that the datastore advertises. You can create several policies to capture different types or classes of requirements.

Each virtual machine deployed to vSAN datastores is assigned at least one virtual machine storage policy. You can assign storage policies when you create or edit virtual machines.

Note: If you do not assign a storage policy to a virtual machine, vSAN assigns a default policy. The default policy has Failures to tolerate set to 1, a single disk stripe per object, and a thin-provisioned virtual disk.
The VM swap object and the VM snapshot memory object adhere to the storage policies assigned to a VM, with Failures to tolerate set to 1. They might not have the same availability as other objects that have been assigned a policy with a different value for Failures to tolerate.
Note: If vSAN Express Storage Architecture is enabled, every snapshot is not a new object. A base VMDK and its snapshots are contained in one vSAN object. In addition, in vSAN ESA, digest is backed by vSAN object. This is different from vSAN Original Storage Architecture.
Table 1. Storage Policy - Availability
Capability Description
Failures to tolerate (FTT) Defines the number of host and device failures that a virtual machine object can tolerate. For n failures tolerated, each piece of data written is stored in n+1 places, including parity copies if using RAID-5 or RAID-6.

If fault domains are configured, 2n+1 fault domains with hosts contributing capacity are required. A host which does not belong to a fault domain is considered its own single-host fault domain.

You can select a data replication method that optimizes for performance or capacity. RAID-1 (Mirroring) uses more disk space to place the components of objects but provides better performance for accessing the objects. RAID-5/6 (Erasure Coding) uses less disk space, but performance is reduced. You can select one of the following options:
  • No data redundancy: Specify this option if you do not want vSAN to protect a single mirror copy of virtual machine objects. This means that your data is unprotected, and you might lose data when the vSAN cluster encounters a device failure. The host might experience unusual delays when entering maintenance mode. The delays occur because vSAN must evacuate the object from the host for the maintenance operation to complete successfully.
  • No data redundancy with host affinity: Specify this option only if you want to run vSAN Shared Nothing Architecture (SNA) workloads on the vSAN Data Persistence Platform.
  • 1 failure - RAID-1 (Mirroring): Specify this option if your VM object can tolerate one host or device failure. To protect a 100 GB VM object by using RAID-1 (Mirroring) with an FTT of 1, you consume 200 GB.
  • 1 failure - RAID-5 (Erasure Coding): Specify this option if your VM object can tolerate one host or device failure. For vSAN OSA, to protect a 100 GB VM object by using RAID-5 (Erasure Coding) with an FTT of 1, you consume 133.33 GB.
    Note: If you use vSAN Express Storage Architecture, vSAN creates an optimized RAID-5 format based on the cluster size. If the number of hosts in the cluster is less than 6, vSAN creates a RAID-5 (2+1) format. If the number of hosts is greater than 6, vSAN creates a RAID-6 (4+1) format. When the cluster size eventually expandss or shrinks, vSAN automatically readjusts the format after 24 hours from the configuration change.
  • 2 failures - RAID-1 (Mirroring): Specify this option if your VM object can tolerate up to two device failures. Since you need to have an FTT of 2 using RAID-1 (Mirroring), there is a capacity overhead. To protect a 100 GB VM object by using RAID-1(Mirroring) with an FTT of 2, you consume 300 GB.
  • 2 failures - RAID-6 (Erasure Coding): Specify this option if your VM objects can tolerate up to two device failures. To protect a 100 GB VM object by using RAID-6 (Erasure Coding) with an FTT of 2, you consume 150 GB. For more information, refer to Using RAID 5 or RAID 6 Erasure Coding.
  • 3 failures - RAID-1 (Mirroring): Specify this option if your VM objects can tolerate up to three device failures. To protect a 100 GB VM object by using RAID-1 (Mirroring) with an FTT of 3, you consume 400 GB.
Note: If you create a storage policy and you do not specify a value for FTT, vSAN creates a single mirror copy of the VM objects. It can tolerate a single failure. However, if multiple component failures occur, your data might be at risk.
Site disaster tolerance This rule defines whether to use a standard, stretched, or 2-node cluster. If you use a stretched cluster, you can define whether data is mirrored at both sites or only at one site. For a stretched cluster, you can choose to keep data on the Preferred or Secondary site for host affinity.
  • None - standard cluster is the default value. This means that there is no site disaster tolerance.

  • Host mirroring - 2 node cluster defines the number of additional failures that an object can tolerate after the number of failures defined by FTT is reached. vSAN performs object mirroring at the disk group level. Each data host must have at least three disk groups or three disks in a storage pool to use this rule.

  • Site mirroring - stretched cluster defines the number of additional host failures that an object can tolerate after the number of failures defined by FTT is reached.

  • None - keep data on Preferred (stretched cluster). If you do not want the objects in a stretched cluster to have site failure tolerance and you want to make the objects accessible only on the site that is configured as Preferred, use this option.

  • None - keep data on Secondary (stretched cluster). If you do not want the objects in a stretched cluster to have site failure tolerance and you want to make the objects accessible only on the secondary site, use this option. These objects are not affected by the Inter-Switch Link (ISL) or witness host failures. They remain accessible if the site chosen by the policy is accessible.

  • None - stretched cluster. If you select this option, vSAN does not guarantee that the objects will be accessible if one of the sites fails, and such objects can consume too much ISL bandwidth and can increase latency for objects that use the site mirroring policy. Use this policy only when you cannot use the other policies during some temporary condition where there is a capacity constraint (CPU/memory/storage) in the cluster.

Table 2. Storage Policy - Storage rules
Capability Description
Encryption services Defines the encryption options for the VMs that you deploy to your datastore. Choone one of the following options:
  • Data-At-Rest encryption: Specify this option if you want to apply encryption to the data that is stored in your datastore.
  • No encryption: Specify this option if you do not want to apply any form of encryption to your data.
  • No preference: Specify this option if you do not want to explicitly apply any encryption rules. By selecting this option, vSAN applies both rules to your VMs.
Space efficiency Defines the space efficiency options for the VMs that you deploy to your datastore. Choose one of the following options:
  • Deduplication and compression: Specify this option if you want to apply both deduplication and compression to your data.
  • Compression only: Specify this option if you want to apply only compression to your data.
    Note: For vSAN Original Storage Architecture, compression is a cluster-level setting. For vSAN Express Storage Architecture, compresson only is performed at the object level. This means that you can use compression for one VM but not for another VM in the same cluster.
  • No space efficiency: Specify this option if you do not want to apply compression to your objects.
  • No preference: Specify this option if you do not want to explicitly apply any space efficiency rules. By selecting this option, vSAN applies all space efficiency rules to your VMs.

Storage tier Specify the storage tier for all VMs with the defined storage policy. Choose one of the following options:
  • All flash: Specify this option if you want to make your VMs compatible with all-flash environment.
  • Hybrid: Specify this option if you want to make your VMs compatible with only hybrid environment.
  • No preference: Specify this option if you do not want to explicitly apply any storage tier rules. By selecting this option, vSAN makes the VMs compatible with both hybrid and all flash environments.
Table 3. Storage Policy - Advanced Policy Rules
Capability Description
Number of disk stripes per object The minimum number of capacity devices across which each replica of a virtual machine object is striped. A value higher than 1 might result in better performance, but also results in higher use of system resources.

Default value is 1. Maximum value is 12.

Do not change the default striping value.

In a hybrid environment, the disk stripes are spread across magnetic disks. For an all-flash configuration, the striping is across flash devices that make up the capacity layer. Make sure that your vSAN environment has sufficient capacity devices present to accommodate the request.

IOPS limit for object Defines the IOPS limit for an object, such as a VMDK. IOPS is calculated as the number of I/O operations, using a weighted size. If the system uses the default base size of 32 KB, a 64-KB I/O represents two I/O operations.

When calculating IOPS, read and write are considered equivalent, but cache hit ratio and sequentiality are not considered. If a disk’s IOPS exceeds the limit, I/O operations are throttled. If the IOPS limit for object is set to 0, IOPS limits are not enforced.

vSAN allows the object to double the rate of the IOPS limit during the first second of operation or after a period of inactivity.

Object space reservation Percentage of the logical size of the virtual machine disk (vmdk) object that must be reserved, or thick provisioned when deploying virtual machines. The following options are available:
  • Thin provisioning (default)
  • 25% reservation
  • 50% reservation
  • 75% reservation
  • Thick provisioning
Flash read cache reservation (%) Flash capacity reserved as read cache for the virtual machine object. Specified as a percentage of the logical size of the virtual machine disk (vmdk) object. Reserved flash capacity cannot be used by other objects. Unreserved flash is shared fairly among all objects. Use this option only to address specific performance issues.

You do not have to set a reservation to get cache. Setting read cache reservations might cause a problem when you move the virtual machine object because the cache reservation settings are always included with the object.

The Flash Read Cache Reservation storage policy attribute is supported only for hybrid storage configurations. Do not use this attribute when defining a VM storage policy for an all-flash cluster or for a vSAN ESA cluster.

Default value is 0%. Maximum value is 100%.

Note: By default, vSAN dynamically allocates read cache to storage objects based on demand. This feature represents the most flexible and the most optimal use of resources. As a result, typically, you do not need to change the default 0 value for this parameter.

To increase the value when solving a performance problem, exercise caution. Over-provisioned cache reservations across several virtual machines can cause flash device space to be wasted on over-reservations. These cache reservations are not available to service the workloads that need the required space at a given time. This space wasting and unavailability might lead to performance degradation.

Object checksum If the option is set to No, the object calculates checksum information to ensure the integrity of its data. If this option is set to Yes, the object does not calculate checksum information.

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, vSAN repairs the data or reports the error.

If a checksum mismatch is detected, vSAN automatically repairs the data by overwriting the incorrect data with the correct data. Checksum calculation and error-correction are performed as background operations.

The default setting for all objects in the cluster is No, which means that checksum is enabled.
Note: For vSAN Express Storage Architecture, object checksum is always on and cannot be deactivated.
Force provisioning If the option is set to Yes, the object is provisioned even if the 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.

The default No is acceptable for most production environments. vSAN fails to provision a virtual machine when the policy requirements are not met, but it successfully creates the user-defined storage policy.

When working with virtual machine storage policies, you must understand how the storage capabilities affect the consumption of storage capacity in the vSAN cluster. For more information about designing and sizing considerations of storage policies, refer to "Designing and Sizing a vSAN Cluster" in vSAN Planning and Deployment.