解析 在vSphere環(huán)境下如何使用iSCSI存儲

責(zé)任編輯:vivian

2011-12-02 08:55:12

摘自:TechTarget中國

如果想發(fā)揮出vSphere的最佳效能,我們需要網(wǎng)絡(luò)存儲。對于vSphere來說,iSCSI非常合適,本文將分兩部分為您詳解如何在vSphere環(huán)境下使用iSCSI存儲。

說到VMware vSphere的某些高級特性,比如VMotion、fault tolerance(容錯)、high availability(高可用)以及VMware DRS(Distributed Resource Scheduler,分布式資源調(diào)度)。vSphere的專利技術(shù)--“VMFS文件系統(tǒng)”--具有一種特殊的鎖機(jī)制,允許多臺物理主機(jī)連接到同一個共享的存儲卷,其上的虛擬機(jī)也可以共享存儲空間。不過,從傳統(tǒng)的角度來說,實現(xiàn)共享存儲卷意味著必須使用昂貴的光纖通道網(wǎng)絡(luò)基礎(chǔ)架構(gòu), 不過現(xiàn)在,iSCSI和NFS網(wǎng)絡(luò)存儲設(shè)備已經(jīng)成為了一種更經(jīng)濟(jì)的選擇。

在本文中,我們將為您介紹如何在vSphere環(huán)境中正確的安裝、配置iSCSI存儲,我們會對要點(diǎn)做相應(yīng)的提示,并提供一些最佳實踐供您參考。此外,我們在不同的配置環(huán)境下做了性能測試,通過比較這些測試結(jié)果,能夠分析出各類配置對性能的影響。

VMware的流行促進(jìn)了iSCSI的普及

第一個支持iSCSI網(wǎng)絡(luò)存儲的VMware版本是 ESX 3.0.它的內(nèi)部集成了一個叫做initiatior(發(fā)起端)的客戶端程序,通過局域網(wǎng)將SCSI命令發(fā)送到存儲裝置中的Target(目標(biāo)端)SCSI設(shè)備。與光纖通道技術(shù)不同,iSCSI使用傳統(tǒng)的網(wǎng)絡(luò)元件和標(biāo)準(zhǔn)的TCP/IP協(xié)議,因此它不需要特殊的線纜和交換機(jī)設(shè)備。

目前iSCSI的initiator(發(fā)起端)可以是軟件程序,也可以基于硬件。軟件initiator 通過使用內(nèi)建于VMkernel的設(shè)備驅(qū)動,利用網(wǎng)絡(luò)適配器和以太網(wǎng)協(xié)議將數(shù)據(jù)寫到遠(yuǎn)端的iSCSI Target(目標(biāo)端)。因此軟件initiator 的一些重要特征是:

使用以太網(wǎng)卡和本地VMkernel iSCSI堆棧

對于刀片服務(wù)器,或者擴(kuò)展槽有限的服務(wù)器來說是一個好的選擇

比硬件initiator便宜

CPU密集運(yùn)算,因為協(xié)議的處理會增加CPU的開銷

ESX server不支持基于軟件initiator的boot(啟動)模式;ESXi可以使用iSCSI Boot Firmware Table(iBFT)。

硬件initiator則使用專用的iSCSI HBA卡,它可以幫助服務(wù)器提升性能。它包括網(wǎng)絡(luò)適配器、TCP/IP協(xié)議卸載引擎(TOE,TCP/IP offload engine)、以及SCSI總線控制器等組件。硬件initiator的特征包括:

I/O性能比軟件initiator好

消耗更少的ESX server主機(jī)資源,特別是CPU資源

ESX server能夠從硬件initiator啟動

如果想進(jìn)一步了解iSCSI與其他存儲協(xié)議相比有哪些優(yōu)缺點(diǎn)。請參見“iSCSI利弊分析”。

對于正在使用光纖通道存儲的用戶來說,iSCSI是個不錯的替代方案,因為iSCSI不但可以降低部署成本,還可以保證良好的性能。vSphere目前已經(jīng)能夠支持10Gbps以太網(wǎng)協(xié)議,性能大大超過1Gbps以太網(wǎng)技術(shù)。當(dāng)然,使用iSCSI也存在一個大的風(fēng)險,如果采用的是軟件initiator,難免會給CPU帶來額外的開銷,不過換成硬件initiator之后,這個問題就可以避免。使用硬件initiator還有一個好處就是可以將iSCSI數(shù)據(jù)流與其他網(wǎng)絡(luò)流量完全隔離,而各種數(shù)據(jù)流的混合會讓網(wǎng)絡(luò)環(huán)境變得脆弱且容易波動。

出于優(yōu)化vSphere的目的,VMware公司將軟件iSCSI initiator的堆棧代碼完全重寫了一遍,就是為了更有效的利用CPU時鐘周期。結(jié)果,與VMware的上一個版本Infrastructure 3相比,vSphere的效率和吞吐量明顯提升。這個結(jié)果的實現(xiàn)主要是通過改進(jìn)VMkernel的TCP/IP堆棧,優(yōu)化相關(guān)緩存,以及通過提高內(nèi)部鎖的效率達(dá)成的。vSphere還增加了對雙向CHAP(Challenge-Handshake Authentication Protocol)的支持,無論是initiator(發(fā)起端)還是Target(目標(biāo)端)都需要經(jīng)過相互的認(rèn)證,這種認(rèn)證機(jī)制提供了更好的安全保護(hù)。

在vSphere環(huán)境中,如何規(guī)劃iSCSI的實施

在我們計劃將iSCSI存儲用于vSphere環(huán)境之前,必須做好幾個決策。讓我們先來看看iSCSI存儲設(shè)備。

我們可以在vSphere環(huán)境中隨心所欲的使用任何類型的iSCSI存儲設(shè)備,因為主機(jī)端連接使用的是標(biāo)準(zhǔn)的網(wǎng)絡(luò)適配器、標(biāo)準(zhǔn)的initiator以及通用的協(xié)議。但是我們必須注意兩件事。首先,vSphere官方宣稱支持的iSCSI存儲設(shè)備僅限于某些廠商的特定型號(具體參見vSphere硬件兼容性指南),這就意味著如果我們打電話向VMware咨詢一個與存儲設(shè)備相關(guān)的問題,他有可能讓我們?nèi)艽虼鎯?yīng)商的支持電話。其次,我們需要注意的是,不同的iSCSI存儲系統(tǒng)性能也有較大的差異。通常,對性能要求越高,所需的成本也越高。所以,針對虛擬機(jī)環(huán)境,我們要謹(jǐn)慎的選擇iSCSI設(shè)備,確保它的性能能夠滿足應(yīng)用程序?qū)Υ疟PI/O的要求。

關(guān)于網(wǎng)絡(luò),也有一些需要注意的事項。如果要優(yōu)化iSCSI的性能,最好創(chuàng)建一個獨(dú)立的網(wǎng)絡(luò)環(huán)境。這是為了確保iSCSI數(shù)據(jù)流不被其他網(wǎng)絡(luò)流量干擾,同時對確保iSCSI的信息安全也有幫助。在虛擬機(jī)環(huán)境下,不能用100兆網(wǎng)卡承載iSCSI應(yīng)用,那會非常的慢,甚至于完全不可用。所以,至少要用到千兆網(wǎng)絡(luò)環(huán)境,如果預(yù)算充足的話,推薦使用萬兆以太網(wǎng)。如果擔(dān)心服務(wù)器資源開銷過大,則可以考慮使用硬件initiator(TOE適配器),前提是確保我們選擇的這個TOE適配器在VMware的硬件兼容列表中。如果我們使用了一個VMware不支持的TOE適配器,vSphere會將視其為一個標(biāo)準(zhǔn)的網(wǎng)卡,那也就無從發(fā)揮TOE的好處了。最后,如果為了獲得最高的系統(tǒng)可用性而使用多路徑的話,至少要用到兩塊網(wǎng)卡(不能是橋接或者多端口)分別連接到兩臺物理交換機(jī),這一點(diǎn)與我們在光纖通道環(huán)境中配置多路徑是一樣的。

在vSphere環(huán)境中設(shè)置iSCSI

一旦建立起了iSCSI環(huán)境,我們就可以開始vSphere的設(shè)置。針對軟件或硬件initiator,設(shè)置的方法會有所不同。我們先來看看軟件initiator的設(shè)置。

基于軟件initiator的設(shè)置:vSphere中內(nèi)建的軟件iSCSI initiator被當(dāng)做一個存儲適配器,要啟用這個適配器,用戶必須在一個vSwitch上(虛擬交換機(jī))創(chuàng)建一個VMkernel端口組。vSphere憑借這個VMkernel接口與iSCSI目標(biāo)端連接。所有主機(jī)與目標(biāo)存儲之間的網(wǎng)絡(luò)流量都必經(jīng)過虛擬交換機(jī)(vSwitch)上的這個VMkernel接口。每個vSwitch上的VMkernel接口數(shù)量可以大于一個。這個VMkernel接口也被用于VMotion、容錯(fault-tolerance)日志傳輸以及連接NFS存儲設(shè)備。當(dāng)需要使用VMkernel接口做上面提到的多種用途時,我們強(qiáng)烈建議用戶為iSCSI連接創(chuàng)建一個獨(dú)立的vSwitch,并使用專用的VMkernel接口;而且還應(yīng)該將兩個物理網(wǎng)卡同時綁定到這個vSwitch上,以便保證容錯性或?qū)嵤┒嗦窂脚渲?。如果環(huán)境中同時擁有多個網(wǎng)卡和多個VMkernel接口,那么應(yīng)該確保iSCSI VMkernel接口被綁定在正確的那個網(wǎng)卡上。更多信息可參考VMware的iSCSI SAN配置指南。

在設(shè)置了vSwitch和VMkernel接口之后,我們就可以配置軟件iSCSI適配器了。在vSphere客戶端界面選擇“配置/存儲適配器”,會看到“軟件iSCSI適配器”顯示出來,選擇它,并點(diǎn)擊屬性配置。在總標(biāo)簽欄(General tab)下,我們可以啟用適配器,并配置CHAP認(rèn)證(強(qiáng)烈建議做CHAP配置)。在動態(tài)搜索(Dynamic Discovery tab)標(biāo)簽欄下,我們可以通過添加目標(biāo)設(shè)備的IP地址自動搜索iSCSI目標(biāo)端設(shè)備;另一個方法是通過在靜態(tài)搜索欄(Static Discovery tab)下,手動輸入目標(biāo)設(shè)備的名字,輸入這些信息之后,返回到存儲適配器的界面,然后點(diǎn)擊“重新掃描”按鈕進(jìn)行設(shè)備搜索,即可找到我們需要的iSCSI目標(biāo)端設(shè)備。

基于硬件initiator的設(shè)置:這個過程與設(shè)置軟件initiator相似,只是不需要使用VMkernel網(wǎng)絡(luò),所以有些步驟可以跳過。TOE適配器是一個特殊的網(wǎng)絡(luò)適配器,但它卻可以在存儲適配器界面顯示。選擇該適配器,單擊并設(shè)置屬性。在這里,屬性的設(shè)置原則跟軟件initiator類似,通過在總標(biāo)簽欄(General tab)、動態(tài)搜索(Dynamic Discovery tab)標(biāo)簽欄、靜態(tài)搜索欄(Static Discovery tab)中輸入恰當(dāng)?shù)男畔?。需要注意的是,在總?biāo)簽欄中,我們還需要為TOE適配器分配一個固定的IP地址,因為此時TOE設(shè)備并不依賴VMkernel網(wǎng)絡(luò)。

在設(shè)置好initiator之后,應(yīng)該可以順利搜索到目標(biāo)iSCSI存儲設(shè)備,然后以VMFS卷的格式將其映射給前端主機(jī)。具體步驟是選擇一個主機(jī),點(diǎn)選“設(shè)置標(biāo)簽欄”,然后選擇存儲,點(diǎn)擊“添加存儲”之后進(jìn)入一個向?qū)Ы缑?,磁盤類型選擇“Disk/LUN”,表示這是一個基于塊的存儲設(shè)備。(如果使用基于網(wǎng)絡(luò)文件系統(tǒng)的存儲設(shè)備,則選擇添加“NFS磁盤存儲設(shè)備”)。進(jìn)入下一個界面,在可用設(shè)備列表中選擇所需的iSCSI目標(biāo)端設(shè)備,為其添加一個卷名,然后設(shè)定塊的大小。這個過程走完,我們就完成了新VMFS數(shù)據(jù)卷的創(chuàng)建,可以隨時使用了。

vSphere環(huán)境使用iSCSI存儲的最佳實踐

一旦完成了iSCSI磁盤設(shè)備的配置,虛擬機(jī)就可以使用它們了。下面羅列的一些關(guān)于iSCSI存儲系統(tǒng)的最佳實踐,有助于我們在使用過程中獲得最佳的性能和可用性。

iSCSI存儲系統(tǒng)的性能表現(xiàn)與網(wǎng)絡(luò)的健康程度和利用率密切相關(guān),為了追求最佳的效果,準(zhǔn)備一個獨(dú)立的網(wǎng)絡(luò)環(huán)境,完全隔離iSCSI數(shù)據(jù)流是必要的。

每臺ESX server主機(jī)只能配置一個軟件initiator.為iSCSI連接配置vSwitch時,可以利用多個物理網(wǎng)絡(luò)端口形成冗余結(jié)構(gòu)。如果想正確的配置多路徑,還要確保VMkernel接口與vSwithc中的網(wǎng)絡(luò)端口有正確的綁定關(guān)系。

確保iSCSI vSwitch的網(wǎng)絡(luò)端口與一個獨(dú)立的網(wǎng)絡(luò)交換機(jī)連接,以降低網(wǎng)絡(luò)單點(diǎn)故障所帶來的影響。

vSphere支持存儲協(xié)議中使用jumbo frames(巨幀),但是jumbo frames的優(yōu)勢只在一些非常特殊的環(huán)境中才能發(fā)揮出來,比如I / O的尺寸非常大的數(shù)據(jù)流。此外,后端的存儲系統(tǒng)必須能夠處理較大的吞吐量,比如RAID組中磁盤的數(shù)量大于等于15個,否則我們將看不到任何效果。如果I / O尺寸太小或者磁盤數(shù)量不夠,那么使用jumbo frames的效果會很差,甚至感覺不到任何性能的提升。在某些環(huán)境下,jumbo frames還可能會造成性能的衰減,所以在啟用jumbo frames之前和之后做兩次性能測試,比較jumbo frames產(chǎn)生的影響是必要的。還有一個需要注意的問題是,整個連接環(huán)節(jié)中,每一個端到端的組件都必須支持并且打開jumbo frames功能,包括物理網(wǎng)絡(luò)端口和網(wǎng)絡(luò)交換機(jī)、vSwitch(虛擬交換機(jī))、VMkernel端口、以及iSCSI目標(biāo)端。其中任何一個環(huán)節(jié)沒有設(shè)置jumbo frames,jumbo frames都不會起作用。

使用最新的Paravirtual SCSI總線控制器(PVSCSI)作為虛擬機(jī)的磁盤控制器,可以帶來最大的吞吐帶寬和性能,超過傳統(tǒng)上常用的標(biāo)準(zhǔn)LSI Logic以及BusLogic總線控制器。如果I/O的壓力很小,那么LSI Logic總線控制器是最佳選擇。

設(shè)置高級多路徑(advanced multipathing)功能可以獲得更好的性能,進(jìn)入iSCSI存儲卷的屬性界面,點(diǎn)擊路徑管理,就可以配置路徑的選擇策略,多路徑驅(qū)動既可以是VMware自帶的,也可以是第三方多路徑插件。當(dāng)使用軟件initiator的時候,我們可以在一個vSwitch虛擬交換機(jī)上創(chuàng)建兩個VMkernel接口,并各分配一個物理網(wǎng)絡(luò)端口,一個是Active狀態(tài),另一個是Unused狀態(tài);使用命令“esxcli”將一個VMkernel端口綁定到第一個網(wǎng)絡(luò)端口,另一個VMkernel端口綁定到第二個網(wǎng)絡(luò)端口上。用“循環(huán)使用(Round Robin)”的路徑切換策略代替“修復(fù)/最近使用(Fixed or Most Recently Used (MRU))”策略,通常會獲得更好的性能。不過,如果虛擬機(jī)上運(yùn)行的是MSCS(Microsoft Cluster Server),則要避免使用“循環(huán)策略(Round Robin)”。

參考可用的iSCSI使用指南

VMware公司提供了兩份詳盡的vSphere環(huán)境下部署iSCSI存儲系統(tǒng)的指南。包括《iSCSI SAN配置指南》和《iSCSI設(shè)計和部署指南》。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號