Deep Dive in to Virtualization & Cloud

VMware vSAN

VMware vSAN is a hyper-converged, software-defined storage product developed by VMware that pools together direct-attached storage devices across a VMware vSphere cluster to create a distributed, shared data store. This blog covering basics of vSAN 6.7


Here are the minimum requirements to build a VSAN environment.

  • Minimum of 3 ESXi 6.7 host that contribute storage
  • At least one SSD and one Hard Disk per host
  • Hosts need I/O controller supporting Pass Through or RAID 0 (prefer them to be on the VSAN Hardware Compatibility List)
  • VMkernel port configured for VSAN traffic
  • 10 GB redundant network for production infrastructure and 1G for small test/lab environment
  • VMkernel port for vSAN traffic

Refer this VMware article for all requirements in detail.


vSAN can be only enabled on a ESXi cluster and VM objects are striped or mirrored across hosts. Read caches and write buffers are used to improve the performance. vSAN supports two types of disk mode.

 Hybrid Mode – In a hybrid storage architecture, vSAN pools server-attached capacity devices (in this case magnetic devices) and caching devices, typically SSDs or PCI-e devices to create a distributed shared datastore.

  • Less expensive and provide high capacity
  • Great for desktop virtualization workloads

All-Flash Mode – vSAN can be deployed as all-flash storage. All-flash storage uses flash-based devices (SSD or PCI-e) only as a write cache while other flash-based devices provide high endurance for capacity and data persistence.

  • Expensive and less capacity
  • Better performance on all workloads
  • RAID5/6 supported
  • De-duplication and compression

READ – Majority of read requests are satisfied by SSD/Flash disks, Cache tier will save most frequent read data and a cache miss will go to capacity tier and get the data.

WRITE – Each write request will hit cache tier first and then move to capacity tier. 30% of cache tier is reserved for write buffer.

Disk Groups – Each host participating in a vSAN cluster with local storage has the local disks configured in disk group(s). It’s a group of disks, where the SSD for cache and capacity devices (SSD or HDDs) are grouped together.

  • 5 Disk groups per host
  • One disk group = 1 SSD (cache) + 7 capacity devices (SSDs or HDDs)

All disk groups in the cluster are combined to provide raw storage for the vSAN datastore.

Storage Policies

vSAN storage policies define storage requirements for your virtual machines. These policies decide how the virtual machine files are provisioned and allocated within the datastore to guarantee the required level of availability. When you enable Virtual SAN on a host cluster, a single vSAN datastore is created and a default storage policy is assigned to this datastore. 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

Below are the rule sets available with the default Virtual SAN storage policies.

  • Number of disk stripes per object – This option helps you to define the number of HDDs across which each replica of a storage object is striped. Value higher than 1 may result in better performance. Default value is 1 and Maximum value is 12.
  • 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. Default value is 0%. Maximum value is 100%.
  • Primary level of Failures to Tolerate (PFTT) – 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 place, including parity copies if using RAID 5 or RAID 6.
  • Affinity – In a stretched cluster, this rule is available only if the Primary level of failures to tolerate is set to 0. You can set the Affinity rule to None, Preferred, or Secondary. This rule enables you to limit virtual machine objects to a selected site in the stretched cluster. Default value is None.
  • Secondary level of Failures to Tolerate (SFTT) – In a stretched cluster, this rule defines the number of additional host failures that the object can tolerate after the number of site failures defined by PFTT is reached. If PFTT = 1 and SFTT = 2, and one site is unavailable, then the cluster can tolerate two additional host failures. Default value is 1. Maximum value is 3.
  • Force provisioning – If the option is set to Yes, the object is provisioned even if the 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. The default No is acceptable for most production environments.
  • 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. Default value is 0%. Maximum value is 100%.
  • Disable 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.
  • Failure tolerance method – Specifies whether the data replication method optimizes for Performance or Capacity. If you select RAID-1 (Mirroring) – Performance, vSAN uses more disk space to place the components of objects but provides better performance for accessing the objects. If you select RAID-5/6 (Erasure Coding) – Capacity, vSAN uses less disk space, but the performance is reduced.
  • 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 sequentially 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.

Fault Domains

Enable you to protect against rack or chassis failure if your vSAN cluster spans across multiple racks or blade server chassis. You can create fault domains and add one or more hosts to each fault domain. A fault domain consists of one or more vSAN hosts grouped according to their physical location in the data center. When configured, fault domains enable vSAN to tolerate failures of entire physical racks as well as failures of a single host, capacity device, network link, or a network switch dedicated to a fault domain.

vSAN Encryption

When you enable encryption, vSAN encrypts everything in the vSAN datastore. All files are encrypted, so all virtual machines and their corresponding data are protected. Only administrators with encryption privileges can perform encryption and decryption tasks.

  • Protects data at rest
  • Data is encrypted after other operations like deduplication and compression
  • Protects sensitive data if a device is removed or improperly retired
  • External key management server is required

vSAN Version History

Please refer below VMware KB article for VMware vSAN version, build and release details


If you have any comments, please drop me a line.
I hope this article was informative, and don’t forget to buy me a coffee if you found this worth reading.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.