I attended the NEVTUG 7th Annual Winter Warmer. First, a shout out to Chris and Dawn Harney for always putting together a great event.
Some great questions were asked during our breakout session, “Storage Performance in a VMware World – How to Architect and Design” including:
1) How does FlashSoft™ handle VMware VAAI (vSphere® APIs for array integration)?
2) What is the impact to FlashSoft regarding the following VAAI SCSI commands:
a. Write Same for bulk zeroing a range of blocks?
b. Extended Write (xcopy) for replicating a range of blocks?
c. Compare & Write for atomic block update?
Questions like these are the reason I love attending the Winter Warmer! Attendees are deep into VMware, its features and functions, and are interested in learning more.
Here’s the answer:
VAAI stands for vSphere Storage APIs – Array Integration.It is designed to be used by VMFS on the underlying LUN, if the array exposing the LUN supports VAAI. It improves the performance of certain operations between VMFS and the array by offloading the operations to the array instead of VMFS, reducing overhead on the server memory and CPU.
Since FlashSoft runs within ESXi as a kernel module, it sits above VMFS as a file level filter. All the VAAI related operations happen further downstream behind VMFS. FlashSoft does not have any impact on VAAI, nor does VAAI have any impact on how we cache individual VMDK files.
If you just read the above and said “Huh?” Let me break it down.
- FlashSoft runs in the server, not in the array, and is completely transparent to the storage array. VAAI is designed to be used by a storage array so it has no impact on FlashSoft and vice versa.
- FlashSoft is specifically architected as an ESXi kernel module, and functions as part of the hypervisor. As such it does not interfere with any of the features and functionality of the hypervisor. You can use FlashSoft without compromising any of the other features in the hypervisor such as vMotion®, HA, DRS, SRM, etc. Of course, this also means FlashSoft works with any VMware-supported operating system in the VM.
- VAAI works mainly during initialization of storage or when zeroing out or copying/cloning VMDKs. VAAI functions are typically performed during non-steady state when application I/O is not yet active for these particular LUNS. FlashSoft is typically used when the system is in steady-state and applications/virtual machines are active.
So when would you use VAAI and when would you use FlashSoft?
VAAI moves server processes to the array, reducing overhead on compute resources like CPU and memory. So VAAI makes sense for workloads that are compute or memory-intensive. VAAI would also be helpful in non-steady-state operations, e.g. after a Storage vMotion to more quickly initiate the array LUN the storage was moved to. On the other hand, FlashSoft is best suited for workloads that are primarily I/O constrained – that is, when the ESXi host CPU utilization is low because the server is waiting for data from storage. FlashSoft enables solid-state devices in the server to be used as a read cache to satisfy most read I/O requests. Write requests are passed-through to primary storage which is typically an array.
Using FlashSoft in conjunction with VAAI may make the most sense of all, since the whole point of a virtualized infrastructure is to bring all available resources to bear when and where needed.
If you would like to know more about VAAI, here is a good place to start: vStorage APIs for Array Integration FAQ
For more information on FlashSoft visit www.sandisk.com/flashsoft-connect.