介紹
VMware存儲不僅僅是將LUN映射給物理服務器這么簡單。VMware vSphere允許系統管理員在一個物理機上創建多個虛擬機。
潛在的hypervisor和vSphere ESXi,能夠使guest虛擬機同時使用內部和外部存儲設備。本文將會討論在vSphere上構建SAN的基礎以及管理員在部署共享SAN存儲時的考慮因素。
更多信息
VMware存儲:SAN基礎
vSphere支持包括JBODs,硬件RAID陣列,SSD磁盤以及PCIe SSD卡在內的內部連接磁盤設備。但是,使用這些存儲形式的一大不便在於它們是與單一服務器直接連接的。
但是,SAN存儲卻提供了一個共享的,高可用性以及彈性的存儲平台,並可擴展至多服務器部署環境。此外,存儲廠商在產品上添加針對vSphere的支持,提供比本地存儲部署更好的性能和擴展。
使用NAS和SAN存儲部署vSphere是可行的,但是本文僅涉及SAN,或者說塊設備。涉及iSCSI,Fibre Channel以及FCoE協議。
VMware文件系統以及數據存儲:
vSphere塊存儲的一大重要結構特性是使用了VMware File System(VMFS)。與傳統服務器以文件系統來格式化塊設備的方式相同,vSphere在塊LUN上使用VMFS來存儲虛擬機。
vSphere的存儲單位是datastore,包含一個或多個concatenated LUN。在很多實例中,vSphere部署在LUN和datastore之間采用1:1的對應關系,但這並不是配置要求。
vSphere歷經數個版本的更迭,VMFS同樣經過了更新和改進,當前ESXi 5.1版本使用的是VMFS版本5。在擴展性和性能方面都有改進,單個datastore已能host多個虛擬機。
在datastore內部,虛擬機作為虛擬機磁盤文件(VMDKs)來存儲。vSphere同時允許LUN的直接連接而無需VMFS格式化。這些設備稱作原始映射設備(raw device mapping, RDM)。虛擬環境中的原始設備映射可以用來創建同虛擬機的直接連接。通過VMware RDM功能,I/O性能開銷較高的應用程序可以獲得巨大的性能提升,因為RDM可以從已有的SAN環境中直接調用命令。
這可以讓用戶加載一個現有的LUN。假如使用Exchange Server,並且它已經運行在SAN上面,當虛擬化該Exchange Server時,你會運行VMware轉化器、Microsoft轉化器或其它第三方產品來將物理機轉化為虛擬機,如果只是轉化了C盤驅動器,你可以在現有位置上加載原存儲。這樣服務器在將所有數據轉化到VMDK過程中是不需要宕機的,也不需要額外分配空間用來遷移VMDK。
VMware-SAN連接:
vSphere支持Fibre Channel,FCoE和iSCSI塊存儲協議。
Fibre Channel協議提供一個多路徑,高彈性的基礎架構,但是對於專用存儲網絡設施需要額外支出,如光纖交換機和HBA。
相反,iSCSI為共享存儲提供相對便宜的選擇,因為網卡通常遠比Fibre Channel HBA和融合網絡適配器便宜。
在最新版本的vSphere之前,多路徑是很難配置的,但是這一情況得到了改進。此外,iSCSI的連接速度目前限制在1Gbps和10Gbps。最后,對於管理員來說iSCSI設備的安全性更加復雜,因為其功能特性更加基礎,並不適合於高擴展環境。
配置限制:
VMware對於塊存儲的配置大小有一些限制。適用於iSCSI和Fibre Channel:
LUNs per ESXi host – 256
Maximum volume size – 64TB
Maximum file size – 2TB minus 512 bytes
這些限制值很高對於大多數用戶來說不太可能達到,但是在大規模共享部署環境下LUN的數量可能是一個問題,因此在vSphere架構內部署datastore的數量和類型是至關重要的。
Hypervisor功能特性:
vSphere hypervisor包含一些管理外部存儲的功能特性。
Storage vMotion使虛擬機能夠在datastore之間移動,而虛擬機不用宕機。這能夠很好地實現負載均衡或從老硬件設備實現數據遷移。
Storage DRS(SDRS)為基於策略的存儲提供了可能。新的虛擬機的創建可建立在基於服務的策略上,如IOPS和容量。此外,一旦虛擬機部署完成並投入使用,SDRS可確保容量和性能在多個類似的datastore之間實現負載均衡。
存儲功能特性:
vSphere hypervisor包含一些管理外部存儲的功能特性。
vStorage APIs for Array Integration(VAAI)是ESXi 4.1引入的一系列附加SCSI命令,它可以讓主機將特定的虛擬機和存儲管理操作卸載(offload)到兼容的存儲硬件中。在存儲硬件的幫助下,主機執行這些操作起來會更快,同時能節省CPU、內存和存儲網絡帶寬資源。
上述功能特性是通過vSphere”primitives”直接映射到新的SCSI命令來實現的。這些功能包括原子硬件輔助鎖定,其在VMFS內對文件鎖定有更好的粒度。這個特性提供了一種替代性的保護VMFS集群文件系統元數據(metadata)的方法,可以改善共享同一數據存儲的ESX服務器大集群的可伸縮性(scalability);全拷貝,將數據復制工作給陣列。這個特性使得存儲陣列能夠在陣列內部直接完成全體復制,不再需要ESX服務器參與讀取和寫回數據的過程;塊清零,將精簡調配環境下的VMFS清零工作卸載給陣列。這個特性使得存儲陣列能夠快速清零產生大量的存儲塊,從而加速虛擬機的部署和供給(provisioning)。VAAI由此擴展到SCSI UNMAP,允許hypervisor控制存儲陣列空出精簡調配環境下的釋放資源。
硬件輔助鎖定:
VMFS文件系統允許多主機對同一共享邏輯卷的並發訪問,這是vMotion運行的必要條件。VMFS有一個內置的安全機制,防止虛擬機被超過一台的主機同時運行或修改。vSphere采用“SCSI預留”作為其傳統文件鎖定機制,這種方式在某項存儲相關的指令操作期間,比如增量快照增長或發生時,均使用“RESERVE SCSI”命令鎖定整個邏輯卷。這有助於防止沖突,不過也拖延了存儲工作的完成,因為主機必須等待邏輯卷的解鎖命令“RELEASE SCSI”才能繼續寫入。使用Atomic Test and Set(ATS)命令是一種硬件輔助的鎖定機制,可以離線地對存儲陣列加鎖,這樣就可以對個別磁盤數據塊而非整個邏輯卷。這樣可以使得余下的邏輯卷在鎖定期間繼續被主機訪問,十分有助於避免性能下降。該功能同時通過VMFS數據存儲,允許同一集群中部署更多的主機,以及更多的虛擬主機部署在同一個邏輯卷上。
全拷貝:
通過Full Copy技術,部署虛擬機的能力將得到極大提升,因為相應的處理工作可以在存儲陣列內部,或者在存儲陣列之間(有些存儲廠商的陣列支持xcopy功能)完成,過去花費幾分鍾的處理工作現在已變成幾秒鍾的事情,同時ESX服務器的CPU負載也會減少(因為其參與的數據流量減少)。該特性的好處對於桌面基礎架構環境更有意義,這種環境下很可能涉及到基於模板部署數百個虛擬機之類的工作。
對於Storage vMotion,遷移虛擬機寄居地的過程用時也將得到類似縮減,因為復制過程不再需要上傳給ESX服務器再下達到陣列設備,這將極大釋放存儲I/O和服務器CPU周期的占用。
Full Copy不僅可以節省處理時間,還可以節省服務器的CPU、內存資源以及網絡帶寬和存儲前端控制器I/O。對於上述的大多數度量指標,Full copy最多可達到95%的減幅。
塊清零:
讓陣列對磁盤完成大片清零(bulk zeroing)將加速標准初始化過程。block zeroing的一個用途是創建急性清零厚模式(eager-zero thick)格式的虛擬磁盤。如果不使用block zeroing技術,創建命令必須要等到磁盤陣列清零任務全部完成后才能結束。對於大容量磁盤,這可能會持續較長時間。block zeroing(也稱為copy same)會讓磁盤陣列立即把游標(cursor)返回給發出請求的服務(仿佛寫零過程已經被完成),然后再完成清零生成存儲塊的工作,這時不再需要全程持有游標直至工作結束。
vStorage APIs for Storage Awareness (VASA) 是另一套API,允許vSphere在陣列內獲取更多潛在存儲資源信息。包括諸如RAID級別,是否精簡調配以及數據消重等特征信息。VASA解決的精簡配置所存在的另一個問題就是空間回收。當在Windows或Linux上刪除文件時,並沒有從磁盤上物理刪除該文件。恰恰相反,該文件被標記為刪除,只有在創建新文件后,被刪除的文件才最終被刪除。在大多數情況下,這並不是個問題。但對位於精簡數據存儲之上的精簡虛擬磁盤來說,這可能會導致無法控制精簡卷的增長。這是因為刪除文件后,空閑的磁盤空間並沒有返還給存儲陣列。
部署SAN存儲的關鍵步驟:
存儲管理員在部署SAN存儲時應當考慮以下步驟:
廠商以及功能支持
大多數,但並非所有存儲供應商支持vSphere的高級功能,如VAAI以及VASA。如果有可能用到以上功能,需小心確認。目前,vStorage陣列集成應用接口只針對基於數據塊的存儲陣列(光纖存儲或iSCSI)有效,並不支持NFS存儲。廠商對於VAAI的支持一更不相同,某些廠商,諸如EMC,很快地支持了這些功能,而另一些廠商花費了很長的時間將其整合到他們的所有存儲陣列型號中。你可以通過查看VMware對光纖存儲的兼容列表來了解哪些存儲陣列支持特定的vStorage應用接口特性。通過VMware光纖存儲兼容列表,你可以搜索你的存儲陣列是否可以支持VAAI,如果這樣,其它的應用接口也是支持的。
HBA支持以及專用iSCSI連接
如果管理員計划部署Fibre Channel,那么HBA必須在VMware硬件兼容性列表上。每一個服務器上的HBA數量將取決於期待工作負載,並且至少需要2個硬件冗余。對於iSCSI,需要使用專用的網卡,因此也需要多個冗余。
Datastore大小
可能的情況下,創建盡可能大的datastore。要在存儲產品的限制范圍內,特別是精簡調配情況下。從而減少用戶未來需要對數據進行移動的可能。
Datastore類型
Datastore是當前虛擬機性能的最低粒度。因此,管理員應當促使datastore與工作負載類型相匹配。例如,測試和開發數據應當放在較低性能存儲。將datastore映射到LUN時,存儲管理員還應當對基於陣列同步保護的LUN創建單獨的datastore。
VMware以及存儲的未來:
VMware已經勾勒出vSphere塊存儲的演變,以虛擬卷(vVOLs)的形式展現。當前,一個虛擬機是由位於物理LUN映射的datastore上的多個文件系統組成的。vVOLs提供將虛擬機文件抽象成名為vVOL的容器的機會,目的是開啟僅針對虛擬機本身的QoS功能。目前,QoS僅能作為整個datastore的屬性,這會導致僅僅為了保證虛擬機接收到它所申請的服務層級而進行數據遷移。
與VMware相同,其他供應商也已經開發出專門針對VMware的平台。Tintri 是一個很好的例子,盡管它使用NFS而不是塊協議。Tintri VMstore 平台熟悉構成虛擬機的文件類型,因此可以確保服務質量,性能跟蹤以及閃存利用被准確定位於虛擬機級別。
應用於
VMware