As we discussed in a recent story, “Virtual storage appliance market: Categories, capabilities,” virtual storage appliances (VSAs) are storage systems that run on a virtual machine (VM) with no specialized hardware to support them. There are different types of VSAs available. In this article, we discuss the optimizers.
Optimizing VSAs improve the overall performance of storage access through various mechanisms -- either by providing large caching mechanisms so that writes to disks are optimized or by providing their own file system designed for the application to be virtualized. We’ll discuss the two approaches separately.
The drawback to an optimizing VSA is that all your storage is run from a virtual machine and if you have a heavily loaded virtual environment, your optimizing VSA can also be impacted. To avoid this problem, the VSA should be installed on dedicated hardware.
Large cache systems. A caching virtual storage appliance acts as front end to storage hardware by providing a large amount of memory to cache reads and writes.
When a read is performed, the VSA reads the data first from the cache and then, if it is not there, from the storage subsystem. This type of cache works best when the same data is read over and over again.
When a write is performed by the caching VSA, the write is made to the cache and eventually written to the storage device. The write is marked as complete once it enters the cache, not when it is on the storage device. This speeds writes since the system does not need to wait for the write to the storage device to complete before sending the next request. The reads are also quicker since the just-written data is now in the cache. Virtual storage appliances such as FalconStor’s Network Storage Server and DataCore’s SANsymphony are caching optimizers.
Optimized file systems. Optimized file system VSAs, on the other hand, use a combination of cache and file system control to improve overall storage performance. The VSAs perform caching as described above, but this cache is unique in that the file system overlays the physical storage devices. The file system is created during installation of the VSA and handles all optimizations from that point forward. This file system is often optimized for specific workloads, such as virtual desktop infrastructure (VDI), by the VSA vendor – for instance, by using an appropriate block size for reads and writes, by striping writes across multiple storage devices, by aggregating writes across multiple channels (network or Fibre Channel) to the storage devices, or by controlling which underlying storage device responds to a read or write request. Virsto’s Virsto for VDI is an example of an optimized file system VSA; Virsto has optimized the VSA’s file system for Windows-based virtual desktops.
Benefits of optimizing VSAs
By understanding the underlying hardware and the intended workload, a virtual storage appliance can optimize how the storage behaves with respect to a hypervisor. If you know your workloads are mainly Windows virtual machines, for example, you can choose a VSA that can optimize the underlying file system based on NTFS usage, Windows block size and alignment of blocks on the physical disk to improve overall performance of the workload in question.
Unlike with physical storage, where you need like hardware to take advantage of optimizations, optimizers work generically with all devices and hypervisors. Those that tie into a specific hypervisor at a driver level are limited to just that hypervisor.
Optimizers attempt to always keep the queues to the storage device full at all times, without going over any limits, to ensure maximum throughput and therefore performance gains. In addition, VSAs write on block boundaries to speed overall write performance at the device layer.
Virtual storage appliance optimizers are designed to alleviate the need to fully understand what the hardware block sizes are, while writing appropriately to all hardware with the proper alignment for that hardware (unaligned data writes are slow because native block boundaries must be crossed). This way, the underlying hardware does not need to do extra work to read the blocks where data will be written.
If you have a myriad of storage devices, an optimizing VSA would make sense since it would join these devices into one larger software array that is optimized and in many cases tiered to make the best use of the storage devices available.