VAAI(VMWare vSphere Storage API - Array Integration)是目前虚拟化领域的标准语言之一,也被称为硬件加速或硬件负载分担APIs,是一组用于VMWare vSphere ESXi主机与存储设备通讯的API。php
VAAI给虚拟化管理程序和存储设备规范了不一样的职责,使其各自关注工做效能最大化,即虚拟化管理程序致力于虚拟化相关的工做而存储相关的工做则留给存储阵列。html
经过VAAI,容许ESXi主机将某些存储操做从ESXi主机转移给存储(例如克隆、zeroing等等),从而减小ESXi主机的资源开销,极大改进了storage-intensive operation的性能。linux
VAAI的目标是帮助存储厂商经过提供硬件协助来加速那些能在存储硬件上更高效完成的VMWare I/O操做。有了存储硬件的帮助,主机能够更快地执行这些操做而且占用更少的 CPU、内存和存储结构带宽,而主机端只负责过程监控。web
目前,VAAI主要有如下几个方面的特性,见下图所示:算法
主要有VAAI Block Primitives、VAAI NAS Primitives和VAAI Thin Provisioning Primitives三块原语(primitves),其中在ESXi/ESX 4.1(vSphere4.1)版本中只支持VMFS的VAAI Block Primitives。架构
在 ESXi 5.0 (vSphere5.0)中添加了对 Thin Provisioning VAAI 原语和NAS VAAI原语的支持。app
详细特性介绍见官方文档PDF负载均衡
http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-Storage-API-Array-Integration.pdf框架
从官网中得知,若是要使用VAAI ,须要具有:ide
从上述可知道,要实现VAAI特性,除了须要ESXi 4.1以上的版本外,还须要存储阵列厂商提供并实现VAAI功能。
首先,要肯定您的存储阵列是否支持 VAAI,请参见硬件兼容性列表(http://www.vmware.com/resources/compatibility/search.php)或者咨询您的存储供应商。
判断你的存储设备是否支持VAAI,能够测试Full Copy VAAI原语:
1. 使用vSphere Client,打开datastore并选定一个至少4MB大的,未在使用的虚拟磁盘(VMDK)。
2. 将虚拟磁盘复制到一个新文件中。
3. 检查硬件加速状态是否由未知变成了支持或不支持。
或者,能够经过测试Block Zero VAAI原语:
1. 使用vSphere Client,打开datastore,在该Datastore上建立一个eagerZeroedThick
VAAI的实现主要须要两个部分:
1. Pluggable Storage Architecture (PSA) device filter
2. VAAI filter
PSA架构全称Pluggable Storage Architecture,系vSphere 4.0开始引入的一个可插拔式存储架构,这个架构负责一些在VM内核的任务。容许经过APIs的方式来嵌入第三方的软体来执行到存储的管理与路径选择,即经过扫描处理物理路径的发现和移除。
经过PSA,容许第三方软件开发商自行根据本身的存储特性设计负载均衡和故障切换的算法,这样能够有效的提高ESXi到存储之间的性能。
PSA框架在VMKernel中的以下图所示
PSA主要由部分组成:NMP和MPP。
二者下面都有
PSP - Path Selection Policy
SATP的用途
SATP(Storage Array Type Plugin)被用于阵列类型匹配。
使用CLI命令查询
# esxcli storage nmp satp list
PSP的用途
PSP(Path Selection Policy)负责在物理链路上执行负载均衡操做,它负责根据负载状况和配置策略选择一条最优链路进行I/O到Logical Device的传输。当虚拟机发生I/O请求时,NMP或者MPP会根据配置的PSP子策略来选择存储设备。
默认状况下,ESXi Host的配置里有三种PSP子策略,分别是MRU(Most Recently Used)、Fixed和RR(Round Robin)
能够经过一下命令查询。
【参考资料&延伸阅读】
[1] VAAI官方说明PDF
http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-Storage-API-Array-Integration.pdf
[2] Knowledge Base: Frequently Asked Questions for vStorage APIs for Array Integration
[3] VMware APIs For Aray IIntegration for NAS (VAAI NAS)
[4] 硬件厂商集成VAAI(NAS):
https://developercenter.vmware.com/web/dp/programs/vaai-nas
[5] ESXi Configuration Guide(ESXi 4.1 vCenter Server 4.1)的Storage Hardware Acceleration
https://www.vmware.com/pdf/vsphere4/r41/vsp_41_esxi_server_config.pdf#unique_157
[6] thin仍是thick?虚拟磁盘格式的选择题
http://delxu.blog.51cto.com/975660/278156/
[7] 自动精简配置技术(thin provisioning)
http://blog.sina.com.cn/s/blog_722532880100lm1o.html
[8] Part01 - Pluggable Storage Architecture(PSA)
http://cormachogan.com/2013/02/04/pluggable-storage-architecture-psa-deep-dive-part-1/
中文翻译版 http://bbs.vmanager.cn/thread-7787-1-1.html
[9] Pluggable Storage Architecture (PSA) Package
http://developercenter.vmware.com/web/dp/vmware-ready-programs/storage/psa
[10] 什么是 Pluggable Storage Architecture (PSA) 和本机多路径 (NMP)?
[11] Program Guide:VMware Pluggable Storage Architecture(PSA) for vSpere 5.x and 6.x
https://vdc-download.vmware.com/vmwb-repository/dcr-public/317d2709-0c6f-4d63-a159-c311d3b15ee7/9be613a8-e94a-48f0-b7e4-e896c6eb801a/PSA%20Program%20Guide%20Oct2015.pdf
[12] vStorage APIs for Array Integration
http://www.linux-iscsi.org/wiki/VAAI
[13] White Paper:VMware vSTORAGE APIs FOR ARRAY INTEGRATION WITH EMC VNX SERIES FOR SAN_Benefits of EMC VNX for Block Integration with VMware VAAI
http://www.emc.com/collateral/hardware/white-papers/h8293-vaai-vnx-wp.pdf
[14]White paper : ETERNUS DX S2 series and VMware VAAI deliver agile solution for virtualization
http://www.fujitsu.com/downloads/STRSYS/system/DXS2-VAAI-whitepaper-en_01.pdf
[15] VMware連携によるサーバ仮想化環境の運用効率化
http://www.fujitsu.com/jp/products/computing/storage/disk/eternus-dx/feature/059/
[16] Understanding and Using vStorage APIs for Array Integration and NetApp Storage
http://www.netapp.com/cn/media/tr-3886.pdf
[17] 基于5.x VAAI的vMotion实战,不一样的datastore/LUN之间迁移虚拟机的问题
https://community.emc.com/docs/DOC-30813