阵列集成存储API(The vStorage API for Array Integration,简称VAAI)是提供给存储设备厂商使用的API。在存储方面,如果把VMware基础架构的某些功能委托给存储阵列去实现,将有助于极大提升VMware基础架构的性能。这相当于把VMware基础架构的一部分工作“卸载”(offload)给底层的存储设备,VAAI定义了“卸载”工作的标准操作接口,这个API目前已被多家存储设备合作伙伴所支持,他们发布了各自设备固件(firmware)的新版本以便支持VAAI。在vSphere 4.1中,阵列卸载能力主要体现在以下三个基本方面:
    1. 全复制(Full copy),这个特性使得存储阵列能够在阵列内部直接完成全体复制,不再需要ESX服务器参与读取和写回数据的过程。
    2. 块清零(Block zeroing),这个特性使得存储阵列能够快速清零产生大量的存储块,从而加速虚拟机的部署和供给(provisioning)。
    3. 硬件辅助锁定(Hardware-assisted locking),这个特性提供了一种替代性的保护VMFS集群文件系统元数据(metadata)的方法,可以改善共享同一数据存储的ESX服务器大集群的可伸缩性(scalability)。
    Full Copy
    通过Full Copy技术,部署虚拟机的能力将得到极大提升,因为相应的处理工作可以在存储阵列内部,或者在存储阵列之间(有些存储厂商的阵列支持xcopy功能)完成,过去花费几分钟的处理工作现在已变成几秒钟的事情,同时ESX服务器的CPU负载也会减少(因为其参与的数据流量减少)。该特性的好处对于桌面基础架构环境更有意义,这种环境下很可能涉及到基于模板部署数百个虚拟机之类的工作。
    对于Storage VMotion,迁移虚拟机寄居地的过程用时也将得到类似缩减,因为复制过程不再需要上传给ESX服务器再下达到阵列设备,这将极大释放存储I/O和服务器CPU周期的占用。
    Full Copy不仅可以节省处理时间,还可以节省服务器的CPU、内存资源以及网络带宽和存储前端控制器I/O。对于上述的大多数度量指标,Full copy最多可达到95%的减幅。
VMware
 
    Block Zeroing
    让阵列对磁盘完成大片清零(bulk zeroing)将加速标准初始化过程。block zeroing的一个用途是创建急性清零厚模式(eager-zero thick)格式的虚拟磁盘。如果不使用block zeroing技术,创建命令必须要等到磁盘阵列清零任务全部完成后才能结束。对于大容量磁盘,这可能会持续较长时间。block zeroing(也称为copy same)会让磁盘阵列立即把游标(cursor)返回给发出请求的服务(仿佛写零过程已经被完成),然后再完成清零生成存储块的工作,这时不再需要全程持有游标直至工作结束。
    Hardware-assisted locking
    这一特性提供了一个比以前使用的 SCSI预留(SCSI reservations)技术更加粒度化的方法来保护VMFS元数据。hardware-assisted locking利用存储阵列的原子级检测设置(atomic test and set)能力,实现了一种更细粒度的块级锁定机制。一些简单操作,诸如移动虚机,启动虚机,根据模板创建新虚机,生成快照,甚至停止虚机,都将造成 VMFS把存储空间分配给共享的自由空间池,或者从自由空间池中返回存储空间。虽然VMFS使用SCSI reservation锁定LUN的技术并不经常导致性能降低,但hardware-assisted locking提供了一种更高效方式,可以避免当许多ESX服务器共享同一数据存储时会出现的重复尝试获取锁的情况。
    hardware-assisted locking技术可以将锁定机制“卸载”到阵列设备上,并且使用了比整个LUN小得多的粒度,因此VMware集群可以获得显著的可伸缩性(scalability),不再受到VMFS共享存储池的元数据完整性的制约。
    激活VAAI
    缺省情况下,上述三个特性在安装时并未被激活,如需使用,必须在ESX服务器高级设置中加以激活,同时,还必须有正确的阵列固件(firmware)被加载。
    ESX服务器高级设置中对应的三项设置为:
    DataMover.HardwareAcceleratedMove -- full copy
    DataMover.HardwareAcceleratedInit -- block zeroing
    VMFS3.HarwareAccelerated Locking -- hardware-assisted locking
    关于VAAI的更多信息可以参考《ESX Server Configuration Guide》第9章,目录名称为:存储硬件加速(storage hardware acceleration)。
    4.1版本中,VAAI只在块存储设备上被支持,同时需要支持它的6家存储设备合作伙伴更新相应固件。
    查看《VMware存储硬件兼容列表》可以获知所有支持VAAI的存储设备供应商及型号。