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文件系統以及數據存儲:app
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