VMware VAAI - vStorage APIs for Array Integration 介紹

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

 

1、VAAI的特性

目前,VAAI主要有如下幾個方面的特性,見下圖所示:算法

image

主要有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框架

 

2、判斷知道是否已啓用 VAAI?

從官網中得知,若是要使用VAAI ,須要具有:ide

  • 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,請參見硬件兼容性列表(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

 

 

3、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中的以下圖所示

image

 

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

    image

    SATP的用途

    SATP(Storage Array Type Plugin)被用於陣列類型匹配。

    1. 它的首要任務就是監控硬件的健康狀態
    2. 其次是檢查是否存在硬件路徑故障faileover
    3. 最後一項任務就是當檢測到故障以後,執行物理路徑切換動做;

    使用CLI命令查詢

    # esxcli storage nmp satp list

    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)

    • 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

    [9] Pluggable Storage Architecture (PSA) Package
    http://developercenter.vmware.com/web/dp/vmware-ready-programs/storage/psa

    [10] 什麼是 Pluggable Storage Architecture (PSA) 和本機多路徑 (NMP)?

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

    [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

  • 相關文章
    相關標籤/搜索