The Mystery of vSAN Witness Components

My Journey from Infrastructure Admin to Cloud Architect: Understanding SPBM Policies in vSAN

As an infrastructure administrator, I have always been fascinated by the inner workings of virtualized storage and how it impacts the overall performance and reliability of our cloud infrastructure. Recently, I had the opportunity to delve deeper into the world of vSAN and explore the different SPBM (Stretched Provisioned Block Management) policies that can be assigned to objects. In this blog post, I will share my journey from an infrastructure admin to a cloud architect and what I learned about SPBM policies in vSAN.

FTT-1, FTT-2, and FTT-3: What’s the Difference?

Before we dive into the details of SPBM policies, let me first provide some context on what these policies are and why they matter. In a vSAN environment, objects such as VMDKs (Virtual Machine Disk) can be assigned different SPBM policies based on the level of redundancy and availability required. The three most common SPBM policies are FTT-1, FTT-2, and FTT-3.

FTT-1 is the most basic policy that provides a single copy of an object and one witness component. This means that if one node fails, the object can still be accessible as long as the witness component is available. FTT-2 is similar to FTT-1 but provides two copies of an object and two witness components. This means that if two nodes fail, the object can still be accessible as long as at least one witness component is available. Finally, FTT-3 provides three copies of an object and three witness components, which ensures that even if three nodes fail, the object can still be accessible.

So, what happens when we assign an SPBM policy to a VMDK object? Let’s take a closer look.

The Witness Component: What’s Its Role?

When we assign an SPBM policy to a VMDK object, it creates three copies of the VMDK and two witness components. The witness components are used to monitor the health of the other components and ensure that the object remains accessible even in the event of a failure. But what happens when we change the SPBM policy from FTT-1 to FTT-2 or FTT-3?

For FTT-2, we add an extra copy of the VMDK and two witness components, while for FTT-3, we add an extra copy of the VMDK and three witness components. This means that as we increase the number of copies and witness components, we also increase the level of redundancy and availability provided by the SPBM policy.

The esxcli vsan debug object list command is a useful tool for listing the components of an object and understanding how they are distributed across the cluster. Here’s what the output looks like for a VMDK with FTT-3 SPBM policy:

As we can see, there are four copies of the VMDK (two active and two inactive) and three witness components. This means that even if three nodes fail, the object can still be accessible as long as at least one witness component is available.

Conclusion

In conclusion, understanding SPBM policies in vSAN is a critical aspect of designing and deploying a highly available and performant cloud infrastructure. By assigning the appropriate SPBM policy to objects such as VMDKs, we can ensure that our data remains accessible even in the event of failures. As an infrastructure administrator, I have learned that FTT-1, FTT-2, and FTT-3 policies offer different levels of redundancy and availability, and that the esxcli vsan debug object list command is a useful tool for understanding how these policies are implemented in our vSAN environment.