VMWare vSphere Storage API - Array Integration(VAAI),也被称为硬件加速或硬件减负API,是一组用于VMWarevSphere ESXi主机与存储设备通信的API,其定义了一组“storageprimitives(原语)”,允许ESXi主机将某些存储操作从主机下嫁给存储,从而减少ESXi主机的资源开销,极大改进了storage-intensiveoperation的性能,例如克隆、zeroing等等。VAAI的目标是帮助存储厂商提供硬件协助来加速那些能在存储硬件上更高效完成的VMWareI/O操作。
如果没有VAAI,vSphere VMkernel Data Mover执行的虚拟机克隆或迁移涉及软件数据移动。DataMover通过发起I/O从源读取数据块并写入目标DataStore。有了VAAI,如果可能的话,DataMover会使用APIPrimitive将操作下嫁给阵列。例如,如果想要在阵列内部将虚拟机VMDK文件从一个DataStore复制到另一个DataStore,存储会被要求直接完成整个复制操作。只要有数据移动请求且硬件加速功能被启动了,DataMover就会首先使用硬件加速。如果硬件加速失败,Data Mover再转用传统的软件方式来移动数据。
几乎在任何情况下,硬件数据移动相比软件数据移动的执行要好的多,消耗更少的CPU资源,更少的storage fabric带宽。
最初的vSphere 4.1实现发布了三个VAAIprimitive,且仅适用于块存储(FC、iSCSI、FCoE),没有给NAS使用的VAAI primitive。vSphere5.0引入了用于NAS和vSphere Thin Provisiong的VAAI primitive。
VAAI的5大功能:
1.块清零,即创建厚格式虚拟机文件很快搞定
2.全拷贝,即将拷贝文件操作下放到存储(表现在VM克隆,Storage vMotion等)
3.硬件辅助锁定(ATS),体术VMFS锁操作速度
4.Thin Provisioning
5.UNMAP空间释放(vSphere5.0新加入)在5.5进行了增强
在VMWare的Enterprise版本就提供了VAAI。
===================================================
VMWare vSphere Storage API - Storage Awareness(VASA)是vSphere5.0引入的一组API,实现存储阵列与vCenter的集成管理功能。在没有VASA之前,想要确认物理LUN的特征属性,比如LUN_ID、LUN是否是ThinProvisoned、是否启用了去重、是否在分层存储上、LUN的RAID级别等等存储端的信息,是无法直观的从vCenter获得的。管理员只能通过自制表格来记录或给LUN使用有意义的名字来解决问题,但这显然不是好方法,而这正是VASA的用武之地。
VASA可以显示物理存储设备的功能,存储阵列合作伙伴可以创建被称为vendorprovider的插件,她位于vCenter和存储阵列中间,作为粘合剂。Vendor Provider从阵列获取storagecapability并告知vCenter,vCenter就可以在UI中显示这些信息了。除了LUN的信息,VASA还可以提供阵列健康状态、配置和容量信息。
60; VASA框架的第一个版本只能为每一个LUN呈现单个“StorageCapabiity”数据对象给vCenterServer,“StorageCapabiity”包括名字和详细描述信息,名字可以显式的说明其所要描述的信息,而详细信息则是具体每一个信息的呈现。例如,你有一个DataStore,其StorageCapability名称是Performance,详细信息为组成该卷的磁盘数量和类型,所能提供的IOPS、MB/s等信息,而这些都是与性能相关的信息。又例如,StorageCapability的名字是SpaceEfficient,在详细信息中你可能会见到Deduplication &Compression的信息。
之前的例子只是想说明StorageCapability可能的实现,具体想要呈现什么信息取决于storagevendor的实现,她们实现的vendor provider决定呈现哪些storageCapability给vCenter。
StorageCapability并非VASA唯一的目标,除了capabilitydiscovery,VASA还提供容量和存储健康状态监控,它还能与VM Storage Profiles、StorageDRS协作。
在VMWare的Enterprise Plus版本才提供了VASA。
补充:VAAI和VASA的方向是正确的,允许主机和存储更多的共鸣,但他们还做得不够好,说到底都是在DataStore上做文章,而这种级别的的粒度太大,无法将策略应用到VM级别,因为通常一个DataStore上会有多个VM。所以,VMWare已经开始在研究vVOL来解决此问题。