Extend the Functionality of vSphere
VMware vSphere provides an API and SDK environment to allow customers and independent software vendors (ISV) to enhance and extend the functionality of vSphere. Within the realm of VMware vSphere storage virtualization, the following APIs exist:
VMware vSphere API for Data Protection
The VMware vSphere APIs for Data Protection enable backup software to protect system, application, and user data in your virtual machines in a simple and scalable way. These APIs enable backup software to:
- Perform full, differential, and incremental image backup and restore of virtual machines.
- Perform file-level backup of virtual machines using supported Windows and Linux operating systems.
- Ensure data consistency by using Microsoft Volume Shadow Copy Services (VSS) for virtual machines running supported Microsoft Windows operating systems.
VMware vSphere API for Array Integration
The vSphere API for Array Integration (VAAI) was first introduced with vSphere 4.1 enabling offloading specific tasks to storage arrays. The 4.1 release had support for three primitives:
- Full Copy, enabling the storage array to make full copies of data within the array.
- Block Zeroing, enabling the array to zero out large numbers of blocks.
- Hardware Assisted Locking, providing an alternative mechanism to SCSI reservations to protect VMFS metadata during updates.
With vSphere 5.0, support for the VAAI primitives have been enhanced and additional primitives have been introduced:
- SCSI Standardization by T10 compliancy for Full Copy, Block Zeroing and Hardware Assisted Locking
- Thin Provisioning, allowing for the reclamation of unused space for and monitoring of space usage for Thin Provisioned LUNs
- Hardware Acceleration for NAS
- Enhanced Hardware Assisted Locking
vSphere 4.1 introduced T10 compliancy for Block Zeroing. This allowed offloading block zeroing tasks to the array for storage vendors utilizing the T10 standards with a default shipped plugin. vSphere 5.0 introduces enhanced support for T10 allowing for the usage of VAAI primitives without the need to install a plugin and enabling support for many additional storage devices. See http://www.t10.org for more info on SCSi standards.
Array-based Thin Provisioning
vSphere 5.0 introduces multiple VAAI enhancements for environments using Array based Thin Provisioning capabilities. Historically the two major challenges of thin provisioned LUNs have been the reclamation of dead space and the challenges around monitoring space usage. VAAI Thin Provisioning introduces:
- Dead Space Reclamation: Dead space reclamation offers the ability to reclaim blocks of a thin provisioned LUN on the array when a virtual disk is deleted or migrated to a different datastore using Storage vMotion. Historically, when VMs were migrated from a datastore, the blocks used by the VM prior to the migration were still being reported as in-use by the array. This meant that usage statistics from the storage array could be misleading and expensive disk space could possibly be wasted. With this new VAAI primitive the storage device will be informed that the blocks are no longer used, resulting in better reporting of disk space consumption and allowing for the reclamation of these unused blocks.
- Out Of Space Conditions: An Out Of Space Condition is the nightmare of every storage and virtualization administrator in array based thin provisioned environments. Storage Over-Subscription in thin provisioned environments could lead to catastrophic scenarios when an out of space condition is encountered. vSphere 5.0 mitigates these problems and simplifies storage management through the addition of advanced warnings and errors when threshold are reached for thin-provisioned datastores. These enhancements include mechanisms to temporary pause a virtual machine when disk space is exhausted allowing for the allocation of additional space to the datastore or the migration of an existing virtual machine without resulting in the failure of the virtual machine.
Hardware Acceleration for NAS
Hardware Acceleration for NAS will allow for faster provisioning and the use of thick virtual disk through two newly introduced VAAI primitives:
- Full File Clone - Similar to Full Copy. Allows virtual disks to be cloned by the NAS device
- Reserve Space - Allows creation of thick virtual disk files on NAS.
Full File Clone enables fast provisioning of virtual machines on NAS devices similar to the experience “Full Copy” provided for iSCSI/FC arrays.
Prior to vSphere 5.0 a virtual disk was created as a thin provisioned disk did not allow for the creation of a thick disk. Starting with vSphere 5.0, VAAI NAS extensions allow NAS vendors to reserve space for an entire virtual disk. This enables the creation thick disks on NFS datastores. Note: NAS VAAI plugins are not shipped with vSphere 5.0. These plugins are developed and distributed by storage vendors, but signed by VMware's certification program to guarantee quality.
Enhanced Hardware Assisted Locking
It should also be noted that the ATS primitive has been extended in vSphere 5.0/VMFS-5 to cover even more operations, resulting in even better performance.
VMware vSphere API for multi-path
Leveraging third party storage vendor multi-path software capabilities was introduced in vSphere 4.0 through a modular storage architecture that allows storage partners to write a plug-in for their specific capabilities. This pluggable storage architecture is enabled by the vSphere API for Multi-Pathing. These modules can communicate with the intelligence running in the storage array to determine the best path selection, as well as leveraging parallel paths to increase performance and reliability of the I/O from the ESX to the storage array.
VMware APIs for Storage Awareness
VMware vStorage APIs for Storage Awareness (VASA) is a new set of APIs that enable vCenter to see the capabilities of storage array LUNs and corresponding datastores. With visibility into capabilities underlying a datastore, it is much easier to select the appropriate disk for virtual machine placement. Storage capabilities, such as RAID level, Thin or Thick Provisioned, Replication State and much more can now be made visible within vCenter. VASA eliminates the need for maintaining complex spreadsheets detailing the storage capabilities of each LUN needed to guarantee the correct SLA to virtual machines. VASA forms the basis for a new capability in VMware vSphere, called "Profile Driven Storage".