VMware vSAN has addressed numerous challenges in today’s modern datacenters, you can take a look at my blog post for more details. In this post, we’ll touch on some of the components vSAN.
vSAN as object-based storage behaves data as individual pieces called objects. The various object types vSAN relies on, include the followings:
- VM Home Namespace (VMX, NVRAM, Log files)
- VM Swap Object
- Virtual Disk (VMDK)
Therefore, looking at vSAN storing the hierarchy of objects, we have another term called component. What is a component? Basically, each object in a vSAN cluster consists of one or more components. If I want to summarize it and expose it more simply, in the picture below, we have a VM which has some objects and each object has some components.
Components can grow up to 255GB in size. In other words, if a virtual machine has a VMDK of 300 GBs, that will consist of at least two components. Bear this in mind, because when working with storage policies you’ll need to do decide how these components are stored on the backend disks.
vSAN requires at least three hosts in the cluster or in certain scenarios, ROBO environments to be exact, you can also leverage two hosts. within each host, in a cluster, there is an object called disk group. A disk group is nothing but 2 or more (up to 8) disks. Additionally, each host can have up to 5 disk groups. Therefore, the components we talked about earlier will be stored on disk groups. You need a VMKernel interface with vSAN enabled service, as well. For bandwidth requirements, you’ll need 10Gbps interfaces, although, for hybrid deployments, 1Gbps is ok but not recommended. In terms of licensing, you can choose between Standard or Enterprise licenses.
- VMKernel Interface enabled for vSAN.
- Appropriate License
- Bandwith of 1/10 Gbps
within each disk group, you must have at least one SSD for the cache tier and one or more SSD/HDD disk(s) as the capacity tier. The SSD in the caching tier as the name That is to say that, we have two different deployment options in vSAN:
In the hybrid deployment option, the flash disk in the caching tier, as the name suggests, is used for both read caching and write buffering. To shed some light on how caching happens, you need to know that 70% of the cache capacity is for the read cache, on the other hand, 30% is used for the write cache. The actual flow when writing data to vSAN datastore includes the following steps:
Write Flow in Hybrid Deployment
- A SCSI write command is issued from the guest OS within the VM.
- The command first goes to the caching tier and immdiately sends back an acknowledgment to the guest OS. That’s a caching algorithm called write-back caching. Therefore, the VM experiences the performance of flash disks when writing to the datastore.
- The last step is a process called destaging. The data on the cache tier has to be commited on the backend capacity disks to avoid data loss in the event of power failure or cache device failure. Does it happen immediately? The answer is no. vSAN leverages some algorithms to do so.
Read Flow on Hybrid Deployment
- A read SCSI command is issued from the guest OS.
- The very first thing that vSAN looks to is the caching tier. if the data resides on the cache, it services the request and sends it to VM, this is called Cache Hit. When we have a high Cache Hit ratio, that means a better read performance.
1. but if the data is not in the cache, which is called Cache Miss.
2. It requests it from the capacity disks.
3. Then it copies from the capacity disk to the cache disk.
4. Now it’s time to send it to the VM.
In All-Flash Deployment, both cache and capacity tiers use flash disks with one difference with the hybrid option. There is no place for the read cache and all the capacity of the cache device is used for write buffering and read requests are serviced directly from the capacity disks.
Write Flow in All-Flash Depoyments
- The guest OS issues the SCSI write command.
- It will hit the cache device and sends an acknowledgment to the guest OS.
Read Flow in All-Flash Deployments
- The guest OS issues a read SCSI command.
- vSAN looks for the data in the cache. why? The caching tier is only used for write buffering. That’s right, but there can be a condition where the requested data is a non-destaged data which resides on the cache tier. if yes, it services the request.
- If the data is not in the cache device, it tries to find it in the capacity device and sends it to the VM.
In the next coming posts, we’ll cover more of the vSAN architectural details. I hope this’s been informative for you. If you would like to see more vSAN-related content, refer to the previous post.