VMware VAAI - vStorage APIs for Array Integration 介绍

VAAI(VMWare vSphere Storage API - Array Integration)是目前虚拟化领域的标准语言之一,也被称为硬件加速或硬件负载分担APIs,是一组用于VMWare vSphere ESXi主机与存储设备通信的API。

VAAI给虚拟化管理程序和存储设备规范了不同的职责,使其各自关注工作效能最大化,即虚拟化管理程序致力于虚拟化相关的工作而存储相关的工作则留给存储阵列。

通过VAAI,允许ESXi主机将某些存储操作从ESXi主机转移给存储(例如克隆、zeroing等等),从而减少ESXi主机的资源开销,极大改进了storage-intensive operation的性能。

VAAI的目标是帮助存储厂商通过提供硬件协助来加速那些能在存储硬件上更高效完成的VMWare I/O操作。有了存储硬件的帮助,主机可以更快地执行这些操作并且占用更少的 CPU、内存和存储结构带宽,而主机端只负责过程监控。

从官网中得知,如果要使用VAAI ,需要具备:

  • ESXi/ESX 4.1 或更高版本
  • ESXi/ESX 主机的 Standard、Enterprise、Enterprise Plus 或 Remote Office Branch Office 许可
  • 支持基于 VAAI 存储的硬件加速的存储阵列
    注意
    • ESXi/ESX 4.1 不支持 NAS 存储设备的硬件加速。
    • 在 ESXi 5.x 中引入了对 NAS 存储设备的支持。

从上述可知道,要实现VAAI特性,除了需要ESXi 4.1以上的版本外,还需要存储阵列厂商提供并实现VAAI功能。

 

一、VAAI的特性

目前,VAAI主要有以下几个方面的特性,见下图所示:

VMware VAAI - vStorage APIs for Array Integration 介绍_第1张图片

主要有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原语的支持。

 

详细特性介绍见官方文档PDF

http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-Storage-API-Array-Integration.pdf

 

二、VAAI的架构与实现

VAAI的实现主要需要两个部分:

1. Pluggable Storage Architecture (PSA) device filter
2. VAAI filter

 

PSA(Pluggable Storage Architecture )

PSA架构全称Pluggable Storage Architecture,系vSphere 4.0开始引入的一个可插拔式存储架构,这个架构负责一些在VM内核的任务。允许通过APIs的方式来嵌入第三方的软体来执行到存储的管理与路径选择,即通过扫描处理物理路径的发现和移除。

通过PSA,允许第三方软件开发商自行根据自己的存储特性设计负载均衡和故障切换的算法,这样可以有效的提升ESXi到存储之间的性能。

PSA框架在VMKernel中的如下图所示

VMware VAAI - vStorage APIs for Array Integration 介绍_第2张图片

 

PSA主要由部分组成:NMP和MPP。

  1. NMP(Native Multipath Plugin),默认的多路径插件,在没有指定的插件时使用NMP。NMP的子插件负责管理多路径与负载均衡。
  2. MPP(Multi Pathing Plugin)是指第三方的一些多路径插件,安装后可以使用,MPP只对自己对应的物理存储设备负责。

两者下面都有

  • SATP - Storage Array Type Plugin
  • PSP - Path Selection Policy

    VMware VAAI - vStorage APIs for Array Integration 介绍_第3张图片

    SATP的用途

    SATP(Storage Array Type Plugin)被用于阵列类型匹配。

    1. 它的首要任务就是监控硬件的健康状态
    2. 其次是检查是否存在硬件路径故障faileover
    3. 最后一项任务就是当检测到故障之后,执行物理路径切换动作;

    使用CLI命令查询

    # esxcli storage nmp satp list

    VMware VAAI - vStorage APIs for Array Integration 介绍_第4张图片

     

    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)

    • VMW_PSP_MRU:全称是Most Recently Used,它会优先选择一条系统启动时所能看到的最近使用过的路径来进行I/O传输。
    • VMW_PSP_Fixed:固定路径
    • VMW_PSP_RR:全称Round Robin,自动选择所有的可用链路来执行I/O传输,进而帮助实现Load Balancing。

    可以通过一下命令查询。

    http://cormachogan.com/wp-content/uploads/2013/02/psp-list.png

     

    【参考资料&延伸阅读】

    [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

          https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2078055

    [3]  VMware APIs For Aray IIntegration for NAS (VAAI NAS)

          https://vdc-download.vmware.com/vmwb-repository/dcr-public/d8906187-e988-474f-87af-2fdc68917add/306ea451-7619-4463-ab8f-2c52e1208a9e/VAAINAS%20Program%20Guide%20Oct2015.pdf

    [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

     

     

  • 你可能感兴趣的:(VMware VAAI - vStorage APIs for Array Integration 介绍)