PrimaryIO APA for VMware is a storage optimisation software designed using VMware’s VAIO framework. Applications like Databases, File Servers and VDI can benefit from PrimaryIO APA for VMware. These applications running on SAN/NAS environments will see vastly improved performance levels due to the effects of IO optimisation.
The high level flow involving the VAIO framework is described here. The VI admin applies a SPBM policy involving PrimaryIO APA to a set of VMDKS. The VMDK resides on block or NFS storage that is supported within VMware environments. VAIO intercepts IO to VMDKs and hands those off to PrimaryIO APA. PrimaryIO APA resides within the ESX hypervisor environment and the handoff between the VMware kernel and the PrimaryIO APA is efficient and scalable allowing high performance caching functionality to be implemented in a safe manner. The high level architecture is shown in the figure below.
The PrimaryIO APA driver resides in the VM IO path and using local flash resources delivers flash based caching. Local flash resources are managed directly by ESX. vCenter allows physical flash resources to be used for flash caching. ESX uses VFFS – Virtual Flash File System – to manage local flash resources. This is a local file system optimised for fast access unlike the VMFS which is designed for SAN. VFFS simplifies flash space management. While the onus is still upon the implementation to use allocated virtual flash space efficiently, it allows sharing of physical flash among several VMDKs while isolating caches.
PrimaryIO implements write back and write around cache modes in the first release. The cache mode is specified on a per VMDK basis and is applied as a VM storage policy.
In the write back case, the writes are stored directly in the cache and the application is acknowledged. This mode is faster than write around mode as the writes are stored in local flash which is inherently faster than SAN.
Writes are protected against component or total system failures. PrimaryIO APA replicates writes to adjacent ESX hosts in this mode. Only when all replicas have committed the write locally is the application acknowledged. By default at least two copies of the data are maintained for write back mode although it can be increased via SPBM policy settings – see the section on management below.
When there is a loss of quorum i.e when only one replica is operating the cache automatically goes into a read only mode. When a quorum is reestablished the reconnected replicas are resynchronised with the active PrimaryIO instance and then the cache mode is switched to write back.
PrimaryIO APA implements efficient re-synchronisation between replicas to ensure that performance levels are restored quickly. This efficiency is achieved by tracking blocks that changed during the disconnect. This important optimisation ensures that the network does not get flooded with large amounts of data during resynchronisation. Without this the performance of all the VMs running on the cluster would be at risk due to increased contention at the network level.
Replicas are organised into sets and are defined per VMDK and not on a physical ESX cluster basis. This allows the architecture to scale efficiently to large number of VM and ESX hosts. Each ESX host participates as a unique replica in a replica set.
PrimaryIO APA is designed to handle total system failures, i.e. when the entire ESX cluster goes down. When the ESX hosts start coming up, each host does a recovery to ensure it starts from a consistent point. PrimaryIO APA recovery happens before the VM IO are processed ensuring correct behaviour. PrimaryIO APA is designed to handle the following cases: Primary Storage Failures, Flash Failures, Network Failures, ESX Host Failures and Cluster Failures.
VMware has simplified the installation of PrimaryIO APA IO product with a centralised installation service run off vCenter. Installation involves the VI administrator selecting a cluster and asking vCenter to install the APA driver. VMware ensures that all ESX hosts in the cluster are running PrimaryIO APA before applying any VM Storage Policies involving the APA driver. Similarly when a new ESX host is added to the cluster, VMware takes care of installing the APA driver automatically before it lets it become a part of the cluster.
PrimaryIO APA supports seamless upgrades across its software versions which does not require the cluster to be powered off. Each host in the cluster is upgraded one at a time while maintaining compatibility with older versions of the software.
PrimaryIO APA is designed to work without local flash resources in other words it can service reads and writes solely from remote flash. This makes it very simple to handle VM migration. When the VM migrates to a ESX host which either does not have any local flash resources or does not have a replica, PrimaryIO will be able satisfy IO from other ESX hosts which has the cached data.
This is another Primary IO APA integration point with a cool VMware feature. The integration allows storage migration without compromising either performance or availability.
Snapshot events are delivered by VMware to PrimaryIO. VAIO participates in the overall snapshot orchestration. During snapshot events PrimaryIO atomically switches from write back to read only mode while flushing cached dirty writes. Once this completes the snapshot is taken. Post snapshot PrimaryIO is notified again and the original cache mode is restored. This approach towards snapshots ensures that all VMware certified backup solutions will get consistent images for backup.
Linked clones are the basis of VDI solutions where golden images power many desktop applications. PrimaryIO has special support for linked clones, where the golden image can be optimised which will have an overall impact on all VMs referencing it.
PrimaryIO APA integrates with vCenter and allows unified management using SPBM. There are two modes in which PrimaryIO can be used – the Generic Optimisation mode and the APA mode. Both modes can be used together. In the generic optimisation mode, the VI admin applies SPBM policies to VMDKs. In the APA mode, the VI admin provisions cache for a VMDK using SPBM and the VM user aka application admin e.g SQLServer Admin would use that provisioned flash to manage performance. This is similar to a VI admin provisioning a certain amount of RAM and letting the application admin manage that resource.
The first release of PrimaryIO APA for VMware will support the following settings in the VM Storage Policy