為了能夠最大限度地利用VOE,共享存儲SAN是非常關鍵的。虛擬機負載平衡以及高可用性取決于虛擬機的可移動性,而后者又是通過VMotion這樣的軟件來實現(xiàn)的。因此,VOE主機服務器在訪問同一存儲的時候,必須避免對與虛擬機有關的服務水平協(xié)定(SLA)帶來負面影響。
使問題更復雜化的另一方面是,虛擬機存儲設備的虛擬化通常只著眼于如何簡化虛擬機系統(tǒng)管理,它們的做法就是將所有的磁盤資源從概念上分隔成各個獨立的直連式存儲(DAS)設備。雖然對于許多初始的虛擬機項目來說,這種DAS設備虛擬化模式所帶來簡便性是非常理想的,但是,如果用戶需要將大型企業(yè)級應用程序予以合并,并且這些大型應用程序是專門在SAN環(huán)境的系統(tǒng)上運行的話,那么這種模式就會帶來許多問題。
首先,這種系統(tǒng)虛擬化模式使得系統(tǒng)只有很少的VOE服務器能夠用來保證所有虛擬機的I/O水平,每個虛擬機都處在一個1U服務器上面,并帶一個專門的2GB/秒FC SAN連接。由于虛擬機在服務器之間的移動性是提升VOE使用價值的關鍵,因此HBA的性能必須能夠與多核處理器的性能相匹配,只有這樣才能夠方便地在一個服務器上支持8到16個虛擬機。
其次,IT人員需要解決多個操作問題,比如,在物理系統(tǒng)被遷移到VOE中的虛擬機的時候,需要計算SAN資源和控制基于分區(qū)的設備訪問。一個專門在SAN中運行的系統(tǒng)可以采用虛擬機的形式,從而同光纖架構本身相獨立。但是IT人員的負擔就加重了,因為他們在修改現(xiàn)有操作、流程的過程中必須做很多工作,并編制有關的存儲資源的報告。這些任務的計劃編制和執(zhí)行之繁重就足以妨礙物理系統(tǒng)到VOE的遷移。
在一個基于VMware ESX 3.5的VOE中,管理人員可以將所有的FC HBA設置成專屬于ESX服務器的設備。這是因為,虛擬機上的所有存儲都是虛擬化的,它把每個邏輯卷都描繪成一個直連式SCSI(小型計算機系統(tǒng)接口)磁盤驅動器。
一般情況下,這個邏輯卷的載體是一個VMware文件系統(tǒng)(VMFS)卷。一個VMFS卷被稱為一個數據存儲(datastore),并帶有.vmdk的擴展名。重要的是,VMFS為所有的虛擬機磁盤文件提供了分布式鎖。通過分布式鎖,一個包含多個虛擬機磁盤文件的數據存儲可以被多個ESX服務器所訪問。另一個替代方法就是在虛擬機本身的文件系統(tǒng)上使用裸LUN(邏輯單元號),通過VMFS本身的指針文件,將來自VMFS文件系統(tǒng)的訪問請求重定向到裸LUN。這種方法被稱為裸設備映射(RDM)。
我們在ESX服務器上從八臺虛擬機中使用IOmeter來驅動I/O讀取的吞吐量。理論上使用QLE2560 HBA總I/O吞吐量約為800MBps。也就是說,每一個虛擬機上內部的I/O大約為100Mbps。這一級的I/O讀取量對于物理機連接到使用SATA或SAS驅動器的FC陣列是比較合適的。另一方面,我們的ESX服務器的讀取量是有限的,在QLE2460上大約為400MBps。這將每個虛擬機上的I/O吞吐量限制在約50MBps。
從虛擬機的角度來看,能夠匹配虛擬機的SAN架構是直到最近才出現(xiàn)的。對于SAN對象來說,比如交換機、HBA和存儲設備,它們必須通過全局名稱(WWN)才能獨一無二地標志為光纖架構內的對象。如果沒有唯一的全局名稱,那么虛擬機就只能通過VOE服務器上所安裝的物理HBA的全局名稱來訪問SAN存儲LUN。實際上,這使得虛擬機在SAN中是不可視的。
對于虛擬機來說,其進入存儲網絡的第一步就是光纖通道端口虛擬化的推出。N端口ID虛擬化是ANSI(美國國家標準學會)T11小組所制定的標準,該技術被稱為NPIV。VMware ESX 3.5能夠支持NPIV感知型SAN交換機與HBA。ESX管理員現(xiàn)在可以創(chuàng)建一個WWN標志集合,在這個集合里,管理員可以為物理的FC HBA端口建立一個全局節(jié)點名稱(WWNN)和4個虛擬的全局端口名稱(WWPN)。
虛擬WWPN可以分配給任何一個使用裸設備映射(RDM)磁盤的虛擬機。當虛擬機啟動的時候,VM內核(VMkernel)將尋找訪問SAN上的LUN的訪問路徑。一旦在NPIV感知型HBA上發(fā)現(xiàn)一個路徑,VM內核就會初始化一個唯一的虛擬端口(VPORT)。在SAN架構內,這個VPORT顯示為虛擬機上所安裝的虛擬HBA的端口。
一旦我們給一個虛擬機分配好了一個虛擬端口全局名稱,那么NPIV感知型的QLogic SANbox 5802V交換機就會馬上認出這個新的端口全局名稱。然后,該交換機將同時把最初的QLogic HBA端口全局名稱和新的VMware虛擬HBA端口全局名稱聯(lián)系到交換機上的同一個端口上。
從可擴展性的角度來說,8GB/秒光纖通道架構可以提供快速的投資回報。由于服務器性能的快速提升,對帶寬的需求也在不斷增加。在市場上推出了四核處理器和高速PCI-e總線后,我們現(xiàn)在已經能經??吹揭粋€商品服務器上承載8個或8個以上的虛擬機。
在這樣的環(huán)境中,8GB/秒架構可以幫助用戶優(yōu)化存儲資源的利用,避免用戶因為給VOE服務器配置多個HBA和交換機端口所帶來的額外成本。一個雙端口8GB/秒QLE2560 HBA可以為一個ESX服務器提供足夠的I/O帶寬來支持8個虛擬機,每個虛擬機都可以得到相當于專門的2GB/秒FC連接的帶寬。
在測試吞吐量的時候,我們首先希望能夠測試出在一個8GB/秒QLogic HBA環(huán)境下的一個虛擬機可以產生的I/O傳輸的數量。其次,我們希望能夠測試出HBA上的一個主動端口是否可以滿足來自VOE主機服務器上的所有I/O請求。為了能夠單獨測試出這些性能數據,我們使用了QLogic Enterprise Fabric Suite軟件來監(jiān)控SANbox 5802V每個端口上的所有傳輸。
實驗的第一步是測試在QLogic 2560 HBA環(huán)境下一個虛擬機所能產生的I/O傳輸。我們利用兩個TMS固態(tài)磁盤來作為RDM磁盤,然后我們開始oblLoad標桿測試。在每個I/O請求為8KB的情況下,我們的虛擬機每秒可以處理超過6萬個I/O(IOPS)。虛擬機的這種I/O請求處理能力有很大的意義。
我們測試中所看到的IOPS數字顯示虛擬機有能力將用途擴展到I/O密集型的應用程序,比如Exchange、SQL Server和Oracle。同樣重要的是,我們的虛擬機在處理這種I/O負荷的過程中,讀取數據的速度超過了500MB/秒,這個吞吐量水平,比起4GB/秒HBA(比如QLE2460)上的一個光纖通道端口所能支持的最高吞吐量還要高出25%。換句話說,我們主機服務器上的一個4GB/秒HBA限制了虛擬機所能達到的I/O吞吐量。
我們的另一個性能測試目的就是測試8GB/秒SAN架構能否擴展成一個VOE,并提高多個虛擬機的存儲資源利用率水平。我們在第一步試驗中發(fā)現(xiàn)了虛擬機的I/O性能瓶頸,為了更好的衡量這種瓶頸,我們同時利用一個8GB/秒QLE2560 HBA和一個4GB/秒 QLE2460 HBA來處理8個虛擬機以及8個邏輯驅動器所產生的I/O傳輸,其中8個邏輯驅動器是位于TMS SSD固態(tài)磁盤陣列上。對于帶多個4GB/秒設備的SAN環(huán)境來說,RamSan-400陣列是ESX服務器的理想選擇。
為了進行這些測試,我們在每個HBA上設置了兩個端口,這兩個端口可以作為主動-被動式故障復原組合。測試開始后,我們讓所有8個虛擬機都開始運行一個工作進程,進行讀取I/O操作。在測試過程中,我們在固定時間間隔內逐漸提高I/O塊的大小。在我們的試驗設置下,ESX服務器的理論讀取吞吐量被限制到了800MB/秒(如果使用QLE2560)和400MB/秒(如果使用QLE2460)。
至于單個虛擬機,ESX服務器的內部負載平衡機制使每個虛擬機在QLE2560上的吞吐量限制在了100MB/秒。但是,如果使用QLE2460,那么隨著I/O塊大小的提高,單個虛擬機的吞吐量被限制在了50MB/秒。不過,如果使用8KB的I/O塊,那么VOE服務器上的8個虛擬機的讀取速度可以超過50MB/秒,總的I/O工作量可以超過400MB/秒–這個結果基本符合我們此前在單個虛擬機上進行oblLoad標桿測試所得出的結果。更重要的結論還包括,在讀取SATA磁盤或SAS磁盤所構建的RAID(獨立磁盤冗余陣列)-5陣列上的數據的時候,Windows系統(tǒng)一般能夠達到110MB/秒到130MB/秒的I/O吞吐水平。
在我們最后的I/O壓力測試中,我們測試了8GB/秒QLogic 2560 HBA上一個主動端口,在4GB/秒連接的情況下,處理多個讀取和寫入I/O流的能力,這些I/O流來自多個存儲陣列。為了進行這項測試,我們設置了4個虛擬機,每個虛擬機都配有專門的RDM卷,這些RDM卷來自兩個固態(tài)磁盤陣列中的一個。在其中兩個虛擬機上,我們運行了一個IOmeter進程,在32KB的I/O請求下進行數據讀取。在另外兩個虛擬機上,我們也運行了IOmeter進程,是在32KB的I/O請求下將數據寫入RDM卷。
在進行數據讀取操作的兩個虛擬機上,我們的ESX服務器都可以將I/O吞吐量保持在800MB/秒以上,然后我們在剩下的兩個虛擬機上進行了IOmeter數據寫入操作。我們讓多個虛擬機同時進行多個存儲陣列的數據讀取和數據寫入操作,使用QLogic QLE2560 HBA的主機服務器保持了全雙工I/O吞吐量水平,而且該吞吐量比起4GB/秒HBA所能維持的最高帶寬還要高出70%。從另一個角度來說,一個帶2個光纖通道端口的8GB/秒HBA可以為一個主機VOE服務器上的8個虛擬機提供相當于8個2GB/秒HBA的帶寬水平。
本文作者Jack Fegreus是openBench實驗室的首席技術官。