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