我們運(yùn)行oblLoad來創(chuàng)建首塊邏輯磁盤,這一軟件可以在虛擬數(shù)據(jù)模型中產(chǎn)生數(shù)據(jù)傳輸。在8KB讀取下,我們每秒鐘得到了超過60000次的I/O請求。

為了能夠最大限度地利用VOE,共享存儲(chǔ)SAN是非常關(guān)鍵的。虛擬機(jī)負(fù)載平衡以及高可用性取決于虛擬機(jī)的可移動(dòng)性,而后者又是通過VMotion這樣的軟件來實(shí)現(xiàn)的。因此,VOE主機(jī)服務(wù)器在訪問同一存儲(chǔ)的時(shí)候,必須避免對與虛擬機(jī)有關(guān)的服務(wù)水平協(xié)定(SLA)帶來負(fù)面影響。

使問題更復(fù)雜化的另一方面是,虛擬機(jī)存儲(chǔ)設(shè)備的虛擬化通常只著眼于如何簡化虛擬機(jī)系統(tǒng)管理,它們的做法就是將所有的磁盤資源從概念上分隔成各個(gè)獨(dú)立的直連式存儲(chǔ)(DAS)設(shè)備。雖然對于許多初始的虛擬機(jī)項(xiàng)目來說,這種DAS設(shè)備虛擬化模式所帶來簡便性是非常理想的,但是,如果用戶需要將大型企業(yè)級(jí)應(yīng)用程序予以合并,并且這些大型應(yīng)用程序是專門在SAN環(huán)境的系統(tǒng)上運(yùn)行的話,那么這種模式就會(huì)帶來許多問題。

首先,這種系統(tǒng)虛擬化模式使得系統(tǒng)只有很少的VOE服務(wù)器能夠用來保證所有虛擬機(jī)的I/O水平,每個(gè)虛擬機(jī)都處在一個(gè)1U服務(wù)器上面,并帶一個(gè)專門的2GB/秒FC SAN連接。由于虛擬機(jī)在服務(wù)器之間的移動(dòng)性是提升VOE使用價(jià)值的關(guān)鍵,因此HBA的性能必須能夠與多核處理器的性能相匹配,只有這樣才能夠方便地在一個(gè)服務(wù)器上支持8到16個(gè)虛擬機(jī)。

其次,IT人員需要解決多個(gè)操作問題,比如,在物理系統(tǒng)被遷移到VOE中的虛擬機(jī)的時(shí)候,需要計(jì)算SAN資源和控制基于分區(qū)的設(shè)備訪問。一個(gè)專門在SAN中運(yùn)行的系統(tǒng)可以采用虛擬機(jī)的形式,從而同光纖架構(gòu)本身相獨(dú)立。但是IT人員的負(fù)擔(dān)就加重了,因?yàn)樗麄冊谛薷默F(xiàn)有操作、流程的過程中必須做很多工作,并編制有關(guān)的存儲(chǔ)資源的報(bào)告。這些任務(wù)的計(jì)劃編制和執(zhí)行之繁重就足以妨礙物理系統(tǒng)到VOE的遷移。

在一個(gè)基于VMware ESX 3.5的VOE中,管理人員可以將所有的FC HBA設(shè)置成專屬于ESX服務(wù)器的設(shè)備。這是因?yàn)?,虛擬機(jī)上的所有存儲(chǔ)都是虛擬化的,它把每個(gè)邏輯卷都描繪成一個(gè)直連式SCSI(小型計(jì)算機(jī)系統(tǒng)接口)磁盤驅(qū)動(dòng)器。

一般情況下,這個(gè)邏輯卷的載體是一個(gè)VMware文件系統(tǒng)(VMFS)卷。一個(gè)VMFS卷被稱為一個(gè)數(shù)據(jù)存儲(chǔ)(datastore),并帶有.vmdk的擴(kuò)展名。重要的是,VMFS為所有的虛擬機(jī)磁盤文件提供了分布式鎖。通過分布式鎖,一個(gè)包含多個(gè)虛擬機(jī)磁盤文件的數(shù)據(jù)存儲(chǔ)可以被多個(gè)ESX服務(wù)器所訪問。另一個(gè)替代方法就是在虛擬機(jī)本身的文件系統(tǒng)上使用裸LUN(邏輯單元號(hào)),通過VMFS本身的指針文件,將來自VMFS文件系統(tǒng)的訪問請求重定向到裸LUN。這種方法被稱為裸設(shè)備映射(RDM)。

我們在ESX服務(wù)器上從八臺(tái)虛擬機(jī)中使用IOmeter來驅(qū)動(dòng)I/O讀取的吞吐量。理論上使用QLE2560 HBA總I/O吞吐量約為800MBps。也就是說,每一個(gè)虛擬機(jī)上內(nèi)部的I/O大約為100Mbps。這一級(jí)的I/O讀取量對于物理機(jī)連接到使用SATA或SAS驅(qū)動(dòng)器的FC陣列是比較合適的。另一方面,我們的ESX服務(wù)器的讀取量是有限的,在QLE2460上大約為400MBps。這將每個(gè)虛擬機(jī)上的I/O吞吐量限制在約50MBps。

從虛擬機(jī)的角度來看,能夠匹配虛擬機(jī)的SAN架構(gòu)是直到最近才出現(xiàn)的。對于SAN對象來說,比如交換機(jī)、HBA和存儲(chǔ)設(shè)備,它們必須通過全局名稱(WWN)才能獨(dú)一無二地標(biāo)志為光纖架構(gòu)內(nèi)的對象。如果沒有唯一的全局名稱,那么虛擬機(jī)就只能通過VOE服務(wù)器上所安裝的物理HBA的全局名稱來訪問SAN存儲(chǔ)LUN。實(shí)際上,這使得虛擬機(jī)在SAN中是不可視的。

對于虛擬機(jī)來說,其進(jìn)入存儲(chǔ)網(wǎng)絡(luò)的第一步就是光纖通道端口虛擬化的推出。N端口ID虛擬化是ANSI(美國國家標(biāo)準(zhǔn)學(xué)會(huì))T11小組所制定的標(biāo)準(zhǔn),該技術(shù)被稱為NPIV。VMware ESX 3.5能夠支持NPIV感知型SAN交換機(jī)與HBA。ESX管理員現(xiàn)在可以創(chuàng)建一個(gè)WWN標(biāo)志集合,在這個(gè)集合里,管理員可以為物理的FC HBA端口建立一個(gè)全局節(jié)點(diǎn)名稱(WWNN)和4個(gè)虛擬的全局端口名稱(WWPN)。

虛擬WWPN可以分配給任何一個(gè)使用裸設(shè)備映射(RDM)磁盤的虛擬機(jī)。當(dāng)虛擬機(jī)啟動(dòng)的時(shí)候,VM內(nèi)核(VMkernel)將尋找訪問SAN上的LUN的訪問路徑。一旦在NPIV感知型HBA上發(fā)現(xiàn)一個(gè)路徑,VM內(nèi)核就會(huì)初始化一個(gè)唯一的虛擬端口(VPORT)。在SAN架構(gòu)內(nèi),這個(gè)VPORT顯示為虛擬機(jī)上所安裝的虛擬HBA的端口。

一旦我們給一個(gè)虛擬機(jī)分配好了一個(gè)虛擬端口全局名稱,那么NPIV感知型的QLogic SANbox 5802V交換機(jī)就會(huì)馬上認(rèn)出這個(gè)新的端口全局名稱。然后,該交換機(jī)將同時(shí)把最初的QLogic HBA端口全局名稱和新的VMware虛擬HBA端口全局名稱聯(lián)系到交換機(jī)上的同一個(gè)端口上。

從可擴(kuò)展性的角度來說,8GB/秒光纖通道架構(gòu)可以提供快速的投資回報(bào)。由于服務(wù)器性能的快速提升,對帶寬的需求也在不斷增加。在市場上推出了四核處理器和高速PCI-e總線后,我們現(xiàn)在已經(jīng)能經(jīng)??吹揭粋€(gè)商品服務(wù)器上承載8個(gè)或8個(gè)以上的虛擬機(jī)。

在這樣的環(huán)境中,8GB/秒架構(gòu)可以幫助用戶優(yōu)化存儲(chǔ)資源的利用,避免用戶因?yàn)榻oVOE服務(wù)器配置多個(gè)HBA和交換機(jī)端口所帶來的額外成本。一個(gè)雙端口8GB/秒QLE2560 HBA可以為一個(gè)ESX服務(wù)器提供足夠的I/O帶寬來支持8個(gè)虛擬機(jī),每個(gè)虛擬機(jī)都可以得到相當(dāng)于專門的2GB/秒FC連接的帶寬。

在測試吞吐量的時(shí)候,我們首先希望能夠測試出在一個(gè)8GB/秒QLogic HBA環(huán)境下的一個(gè)虛擬機(jī)可以產(chǎn)生的I/O傳輸?shù)臄?shù)量。其次,我們希望能夠測試出HBA上的一個(gè)主動(dòng)端口是否可以滿足來自VOE主機(jī)服務(wù)器上的所有I/O請求。為了能夠單獨(dú)測試出這些性能數(shù)據(jù),我們使用了QLogic Enterprise Fabric Suite軟件來監(jiān)控SANbox 5802V每個(gè)端口上的所有傳輸。

實(shí)驗(yàn)的第一步是測試在QLogic 2560 HBA環(huán)境下一個(gè)虛擬機(jī)所能產(chǎn)生的I/O傳輸。我們利用兩個(gè)TMS固態(tài)磁盤來作為RDM磁盤,然后我們開始o(jì)blLoad標(biāo)桿測試。在每個(gè)I/O請求為8KB的情況下,我們的虛擬機(jī)每秒可以處理超過6萬個(gè)I/O(IOPS)。虛擬機(jī)的這種I/O請求處理能力有很大的意義。

我們測試中所看到的IOPS數(shù)字顯示虛擬機(jī)有能力將用途擴(kuò)展到I/O密集型的應(yīng)用程序,比如Exchange、SQL Server和Oracle。同樣重要的是,我們的虛擬機(jī)在處理這種I/O負(fù)荷的過程中,讀取數(shù)據(jù)的速度超過了500MB/秒,這個(gè)吞吐量水平,比起4GB/秒HBA(比如QLE2460)上的一個(gè)光纖通道端口所能支持的最高吞吐量還要高出25%。換句話說,我們主機(jī)服務(wù)器上的一個(gè)4GB/秒HBA限制了虛擬機(jī)所能達(dá)到的I/O吞吐量。

我們的另一個(gè)性能測試目的就是測試8GB/秒SAN架構(gòu)能否擴(kuò)展成一個(gè)VOE,并提高多個(gè)虛擬機(jī)的存儲(chǔ)資源利用率水平。我們在第一步試驗(yàn)中發(fā)現(xiàn)了虛擬機(jī)的I/O性能瓶頸,為了更好的衡量這種瓶頸,我們同時(shí)利用一個(gè)8GB/秒QLE2560 HBA和一個(gè)4GB/秒 QLE2460 HBA來處理8個(gè)虛擬機(jī)以及8個(gè)邏輯驅(qū)動(dòng)器所產(chǎn)生的I/O傳輸,其中8個(gè)邏輯驅(qū)動(dòng)器是位于TMS SSD固態(tài)磁盤陣列上。對于帶多個(gè)4GB/秒設(shè)備的SAN環(huán)境來說,RamSan-400陣列是ESX服務(wù)器的理想選擇。

為了進(jìn)行這些測試,我們在每個(gè)HBA上設(shè)置了兩個(gè)端口,這兩個(gè)端口可以作為主動(dòng)-被動(dòng)式故障復(fù)原組合。測試開始后,我們讓所有8個(gè)虛擬機(jī)都開始運(yùn)行一個(gè)工作進(jìn)程,進(jìn)行讀取I/O操作。在測試過程中,我們在固定時(shí)間間隔內(nèi)逐漸提高I/O塊的大小。在我們的試驗(yàn)設(shè)置下,ESX服務(wù)器的理論讀取吞吐量被限制到了800MB/秒(如果使用QLE2560)和400MB/秒(如果使用QLE2460)。

使用IOmeter在兩個(gè)邏輯SSD上驅(qū)動(dòng)32KB讀取,我們的總I/O讀取量超過800MBps。新增的兩個(gè)32KB寫入I/O線程導(dǎo)致我們的ESX服務(wù)器產(chǎn)生更多負(fù)載。當(dāng)寫入吞吐量徘徊在700MBps,讀取吞吐量下滑到剛剛超過600MBps。然而,在我們4Gbps HBA環(huán)境下,總的I/O吞吐量在同時(shí)讀取和寫入要大過理論極限1.7倍。

至于單個(gè)虛擬機(jī),ESX服務(wù)器的內(nèi)部負(fù)載平衡機(jī)制使每個(gè)虛擬機(jī)在QLE2560上的吞吐量限制在了100MB/秒。但是,如果使用QLE2460,那么隨著I/O塊大小的提高,單個(gè)虛擬機(jī)的吞吐量被限制在了50MB/秒。不過,如果使用8KB的I/O塊,那么VOE服務(wù)器上的8個(gè)虛擬機(jī)的讀取速度可以超過50MB/秒,總的I/O工作量可以超過400MB/秒–這個(gè)結(jié)果基本符合我們此前在單個(gè)虛擬機(jī)上進(jìn)行oblLoad標(biāo)桿測試所得出的結(jié)果。更重要的結(jié)論還包括,在讀取SATA磁盤或SAS磁盤所構(gòu)建的RAID(獨(dú)立磁盤冗余陣列)-5陣列上的數(shù)據(jù)的時(shí)候,Windows系統(tǒng)一般能夠達(dá)到110MB/秒到130MB/秒的I/O吞吐水平。

在我們最后的I/O壓力測試中,我們測試了8GB/秒QLogic 2560 HBA上一個(gè)主動(dòng)端口,在4GB/秒連接的情況下,處理多個(gè)讀取和寫入I/O流的能力,這些I/O流來自多個(gè)存儲(chǔ)陣列。為了進(jìn)行這項(xiàng)測試,我們設(shè)置了4個(gè)虛擬機(jī),每個(gè)虛擬機(jī)都配有專門的RDM卷,這些RDM卷來自兩個(gè)固態(tài)磁盤陣列中的一個(gè)。在其中兩個(gè)虛擬機(jī)上,我們運(yùn)行了一個(gè)IOmeter進(jìn)程,在32KB的I/O請求下進(jìn)行數(shù)據(jù)讀取。在另外兩個(gè)虛擬機(jī)上,我們也運(yùn)行了IOmeter進(jìn)程,是在32KB的I/O請求下將數(shù)據(jù)寫入RDM卷。

在進(jìn)行數(shù)據(jù)讀取操作的兩個(gè)虛擬機(jī)上,我們的ESX服務(wù)器都可以將I/O吞吐量保持在800MB/秒以上,然后我們在剩下的兩個(gè)虛擬機(jī)上進(jìn)行了IOmeter數(shù)據(jù)寫入操作。我們讓多個(gè)虛擬機(jī)同時(shí)進(jìn)行多個(gè)存儲(chǔ)陣列的數(shù)據(jù)讀取和數(shù)據(jù)寫入操作,使用QLogic QLE2560 HBA的主機(jī)服務(wù)器保持了全雙工I/O吞吐量水平,而且該吞吐量比起4GB/秒HBA所能維持的最高帶寬還要高出70%。從另一個(gè)角度來說,一個(gè)帶2個(gè)光纖通道端口的8GB/秒HBA可以為一個(gè)主機(jī)VOE服務(wù)器上的8個(gè)虛擬機(jī)提供相當(dāng)于8個(gè)2GB/秒HBA的帶寬水平。

本文作者Jack Fegreus是openBench實(shí)驗(yàn)室的首席技術(shù)官。

分享到

lixuyang

相關(guān)推薦