VAAI 工作原理及存儲陣列支持
在虛擬服務器環境中,其存儲硬件和Hypervisor管理程序的通訊非常復雜。VMware為簡化其通訊并提高效率,研發了vStorage陣列集成應用接口(VAAI)。該應用接口為Hypervisor管理程序和存儲設備規范了不同的職責,使其各自關注工作效能***化,即Hypervisor致力于虛擬化相關的工作而存儲相關的工作則留給存儲陣列。
通過VAAI,存儲陣列廠商可以直接將其存儲硬件及應用程序和vSphere進行集成。VAAI使得某些存儲層的工作,諸如克隆等,可以在存儲陣列上離線運行,這較在主機端完成更為高效。主機端可以簡單地將相關工作轉到存儲陣列上完成,而主機端只負責過程監控,而非使用主機端的資源來完成(在VAAI之前的產品即是如此)。存儲陣列更擅長此類數據工作,可以較主機端更為快速的完成相關服務請求。
vStorage陣列集成應用接口工作原理
VAAI目前使得vSphere對于某些存儲相關操作更為高效,主要體現在以下三個領域:
離線拷貝。拷貝虛擬磁盤文件的操作,比如虛擬機克隆或通過模板部署新的虛擬機,可以通過陣列離線進行的方式實現硬件加速,而不是在ESX服務器端進行文件級的拷貝操作。這種技術同樣可以應用于Storage vMotion功能,將一個虛擬機的數據從一臺存儲移動到另一臺。VMware的Fully Copy可以極大程度上提升如何拷貝相關的操作,這可以非常快速地部署新虛擬機。這對于虛擬機頻繁創建提供或在同一時刻需創建大量虛擬機的應用場合尤其有用。
離線并發寫。在所有虛擬磁盤初始寫入之前,必須進行清零操作(一個沒有如何數據的磁盤數據塊里有空值;這時要在該磁盤數據塊中寫入零,以清除所有可能從之前刪除的虛擬機中遺留的數據。默認的“慢速清零”虛擬磁盤(具體數據塊根據是否需要初始寫入,進行清零)直到有***寫入操作請求時才對該磁盤數據塊進行清零操作。這造成了極大的性能影響,而且陳舊的數據可能會遺留給其它客戶端操作系統。“提前清零”虛擬磁盤(所有的磁盤數據塊在創建時一次性清零)可以用于取代原有方式以取消原***寫入磁盤數據塊時的性能影響,并消除任何原有虛擬機數據保存在其它磁盤數據塊上的可能性。在該格式化過程中,大量的零數據從ESX/ESXi主機發送到要清零的陣列上的磁盤數據塊(因此也叫“并發寫”),這可能是一項耗時且耗資源的過程。通過VMware Block Zeroing操作,陣列可以處理所有的清零過程,更為高效。磁盤陣列無需讓主機端等待操作完成,其立刻提示操作完成,然后處理清零操作,這期間不涉及到主機端的任何操作。
硬件輔助鎖定。VMFS文件系統允許多主機對同一共享邏輯卷的并發訪問,這是vMotion運行的必要條件。VMFS有一個內置的安全機制,防止虛擬機被超過一臺的主機同時運行或修改。vSphere采用“SCSI預留”作為其傳統文件鎖定機制,這種方式在某項存儲相關的指令操作期間,比如增量快照增長或發生時,均使用“RESERVE SCSI”命令鎖定整個邏輯卷。這有助于防止沖突,不過也拖延了存儲工作的完成,因為主機必須等待邏輯卷的解鎖命令“RELEASE SCSI”才能繼續寫入。使用Atomic Test and Set(ATS)命令是一種硬件輔助的鎖定機制,可以離線地對存儲陣列加鎖,這樣就可以對個別磁盤數據塊而非整個邏輯卷。這樣可以使得余下的邏輯卷在鎖定期間繼續被主機訪問,十分有助于避免性能下降。該功能同時通過VMFS數據存儲,允許同一集群中部署更多的主機,以及更多的虛擬主機部署在同一個邏輯卷上。
VAAI的廠商支持
目前,vStorage陣列集成應用接口只針對基于數據塊的存儲陣列(光纖存儲或iSCSI)有效,并不支持NFS存儲。廠商對于VAAI的支持一更不相同,某些廠商,諸如EMC,很快地支持了這些功能,而另一些廠商花費了很長的時間將其整合到他們的所有存儲陣列型號中。你可以通過查看VMware對光纖存儲的兼容列表來了解哪些存儲陣列支持特定的vStorage應用接口特性。
通過VMware光纖存儲兼容列表,你可以搜索你的存儲陣列是否可以支持VAAI,如果這樣,其它的應用接口也是支持的。
該列表易于搜索,并告知各存儲陣列是否支持多路徑插件,以及支持何種VAAI特性等信息。如果你的存儲陣列目前尚不支持VAAI,可以和供應商確認其是否有這方面的規劃。你也可能要升級更新發布的vSphere或更新的存儲陣列型號來支持VAAI。
關閉VAAI
vStorage陣列集成應用接口在vSphere 4.1版中默認激活(不過在vSphere 4.0版中并不支持),并且只要存儲陣列支持,該功能就會被激活。不過你也可能希望關閉VAAI功能,比方說你發現你的存儲陣列無法兼容或出于測試的需要,你要比較VAAI打開和關閉的性能比較。你可以使用如下高級主機設置功能逐個關閉這些功能:配置->軟件->vSphere客戶端中高級設置菜單。
關閉離線拷貝,設置DataMover.HardwareAcceleratedMove為0。
關閉離線并發寫,設置DataMover.HardwareAcceleratedInit為0。
關閉硬件輔助鎖定,設置VMFS3.HardwareAssistedLocking為0。
你可以通過“配置->軟件->vSphere中的高級設置菜單關閉VAAI設置
VAAI為特定的存儲操作提供了極大的性能改善,并且已有大量存儲廠商使用了這種應用接口。VMware將在每次發布新的vSphere時持續改善vStorage應用接口;我們期待在新版本中可以看到更多應用接口集成在NFS增強的領域,離線快照領域以及陣列管理領域。