面臨著來自新業(yè)務(wù)環(huán)境的壓力也是同樣存在的,中小企業(yè)的 IT部門也經(jīng)常把三到四臺(tái)服務(wù)器集成起來完成一件特定的任務(wù)(例如,Windows域控制器為臺(tái)式機(jī)和移動(dòng)PC提供文件,打印服務(wù),以及單一的登陸服務(wù);還有建立Linux Web服務(wù)器, Linux或者Windows郵件服務(wù)器。)
在新的IT環(huán)境中,使得成本增加明顯的是數(shù)據(jù)存儲(chǔ)。隨著硬盤的容量增長迅猛,但這存儲(chǔ)成本并沒有隨之節(jié)省了。傳統(tǒng)的方法是在每一個(gè)主機(jī)上配置專用的基于SCSI的存儲(chǔ)設(shè)備,這似乎可以滿足數(shù)據(jù)安全性的需要,但不省錢。實(shí)際上,目前的存儲(chǔ)實(shí)現(xiàn)方法將使得成本急劇上升。
主動(dòng)-主動(dòng)的控制器配置在SuSE Linux和Windows Server 2003的效果不同, 對(duì)于nStor 4520F系統(tǒng),每個(gè)控制器對(duì)應(yīng)一個(gè)陣列,兩種操作系統(tǒng)均認(rèn)出每個(gè)邏輯陣列的兩個(gè)卷。在Linux中,可以訪問第二個(gè)映像,而 Windows Server 2003則阻止訪問第二個(gè)映象。從管理的角度看,這個(gè)方法簡化了管理員的工作,但是在不重啟動(dòng)的情況下,就無法進(jìn)行失效切換。
存儲(chǔ)成本的增加,使得IT人員使用RAID陣列來提高數(shù)據(jù)安全性的做法越來越不經(jīng)濟(jì)。雖然RAID 陣列提供了數(shù)學(xué)意義上的保證,來消除單點(diǎn)故障,RAID策略需要采用多個(gè)硬盤驅(qū)動(dòng)器,這就增加了成本,因?yàn)樾枰S護(hù)奇偶位,使用冗余硬盤作為備用,也需要硬盤的副本作為鏡像集合。(例如,RAID-10和RAID-50配置)
除了增加成本之外,多數(shù)站點(diǎn)通過昂貴的集成了板內(nèi)緩存和電池備份的RAID控制器,來實(shí)現(xiàn)RAID功能。更糟的是, RAID性能的優(yōu)化是通過提高硬盤的數(shù)目進(jìn)行的,單考慮性能,硬盤容量是無關(guān)的。這就使得大容量硬盤變得有點(diǎn)浪費(fèi),而無法節(jié)省開銷。
在大型企業(yè)數(shù)據(jù)中心,總硬盤存儲(chǔ)容量以terabytes字節(jié)計(jì),存儲(chǔ)容量節(jié)省下來的效果比SMB網(wǎng)站更可觀,所以,在基于光纖通道的SAN中,對(duì)物理硬盤實(shí)現(xiàn)存儲(chǔ)虛擬化,這對(duì)大企業(yè)特別有吸引力。
雖然早期SAN的成本和復(fù)雜性很高,大企業(yè)中所用到的存儲(chǔ)容量從經(jīng)濟(jì)上看是劃算的。
如今,隨著技術(shù)的革新和價(jià)格的下降,就像大企業(yè)購得起第一代的SAN一樣,中小企業(yè)也有機(jī)會(huì)購買SAN設(shè)備了。技術(shù)革新推出了容量為200GB的硬盤,這就使得中小企業(yè)有機(jī)會(huì)實(shí)現(xiàn)SAN方案了,這些硬盤很容易構(gòu)建 terabyte數(shù)量級(jí)的RAID陣列。雖然只有少數(shù)中小企業(yè)需要terabyte數(shù)量級(jí)的存儲(chǔ)容量,不少SMB站點(diǎn) 發(fā)現(xiàn)總體存儲(chǔ)容量正在快速轉(zhuǎn)向terabyte數(shù)量級(jí)。
如今的大容量硬盤僅僅只是讓企業(yè)有機(jī)會(huì)降低成本,但并不等于在SMB環(huán)境中配置了SAN,就一定能夠保證對(duì)硬盤的利用率是經(jīng)濟(jì)的。對(duì)于傳統(tǒng)的SAN拓?fù)浣Y(jié)構(gòu)的維護(hù)和配置,其相應(yīng)的費(fèi)用較高,如果對(duì)于中小企業(yè)來說,也采用同樣的方案,運(yùn)營費(fèi)用也降不下來。
隨著技術(shù)進(jìn)步,SAN在其整個(gè)生命周期中的配置和管理均得到簡化,所以,在中小企業(yè),對(duì)于配置SAN的看法開始轉(zhuǎn)變。
我們強(qiáng)調(diào)“開始轉(zhuǎn)變”,因?yàn)樵跇?gòu)建光纖通道SAN中的不少費(fèi)用,同諸如以太網(wǎng)這樣的技術(shù)相比,價(jià)格仍然居高不下。
在傳統(tǒng)的“不包括電池”這樣的角度看,SAN交換機(jī)端口和不少SAN設(shè)備沒有同光纖電纜直接連接的接口,這個(gè)表面上的疏忽實(shí)質(zhì)上是交換機(jī)可以用于各種類型的不同波長和不同模式的光纖電纜。這些差異就是SAN的連接距離最大可達(dá)到 120公里。結(jié)果是,交換機(jī)端口設(shè)計(jì)成“通用的”,且需要價(jià)格為200到300美元的SFP收發(fā)器,把光纖電纜連接到交換機(jī)。
在SMB中設(shè)置SAN時(shí),我們主要關(guān)注的是先配置一個(gè)基本的可以正常工作的SAN架構(gòu),然后再擴(kuò)展該架構(gòu)。 目標(biāo)用戶應(yīng)該是一個(gè)沒有SAN設(shè)計(jì)和管理經(jīng)驗(yàn)的系統(tǒng)管理員。
目標(biāo)環(huán)境由三臺(tái)運(yùn)行不同操作系統(tǒng)的服務(wù)器構(gòu)成,SuSE Linux Professional version 9和Windows Server 2003。我們的計(jì)劃是要求每臺(tái)服務(wù)器通過共享集中化的RAID存儲(chǔ)系統(tǒng),可訪問多個(gè)邏輯硬盤分區(qū)。我們測(cè)試SMB的商業(yè)環(huán)境是需要提供全天候24小時(shí),每周7天能夠訪問到所有的系統(tǒng)。
對(duì)于那些不熟悉SAN的人來說,重要的是知道處于低層的物理設(shè)備是 RAID陣列,通過陣列為每臺(tái)服務(wù)器提供其對(duì)應(yīng)的分區(qū)集。 這與通過NFS或者CIFS來共享文件系統(tǒng)是不一樣的。
一旦打開了Brocade的WebTools軟件,就會(huì)出現(xiàn)管理界面,其中網(wǎng)絡(luò)中的所有的交換機(jī)的架構(gòu)樹圖標(biāo)就會(huì)展示出來,同時(shí)也包括管理功能菜單。點(diǎn)擊一個(gè)交換機(jī)圖標(biāo),就會(huì)實(shí)時(shí)顯示出該交換機(jī)的狀態(tài),包括狀態(tài)燈。通過交換機(jī)的實(shí)時(shí)視圖,管理員可以打開屬性頁來管理交換機(jī),包括授權(quán)序列號(hào)。
SAN中的存儲(chǔ)設(shè)備沒有內(nèi)置智能化的功能,來支持文件共享功能。文件共享的所有細(xì)節(jié)都是由操作系統(tǒng)來處理的。目前,帶有對(duì)應(yīng)文件系統(tǒng)的Linux或者Windows都無法支持SAN中的存儲(chǔ)設(shè)備。實(shí)際上,從SAN架構(gòu)中進(jìn)行任何一項(xiàng)簡單的路徑錯(cuò)誤的恢復(fù)工作,更多的表現(xiàn)為外在的,傷筋動(dòng)骨的事件,而不是透明的事件。
我們使用三種服務(wù)器建立了測(cè)試環(huán)境。兩臺(tái)服務(wù)器基于 Intel Xeon的,帶有PCI-X擴(kuò)展槽: HP ProLiant ML 350 G3和Appro 2400Xi。每臺(tái)服務(wù)器都安裝了Emulex LightPulse 9802 Fibre Channel主機(jī)總線適配器(host bus adapter,簡稱HBA),支持最大可達(dá)133MHz的 PCI-X。我們的第三臺(tái)服務(wù)器是Dell的PowerEdge 2400,帶有Intel Pentium-III CPU和 64位 66MHz PCI槽。為了同SAN連接,該服務(wù)器安裝了Emulex LightPulse 9002 HBA。
我們的SAN中的共享硬盤存儲(chǔ)是由nStor 4520F Series硬盤陣列來處理的,4520F帶有兩個(gè)RAID 控制器,以主動(dòng)-主動(dòng)的方式配置的。每個(gè)控制器配置了一個(gè) 600MHz的 Intel RISC芯片,且包含1GB緩存,板內(nèi)電池備份卡,以及兩個(gè)SAN端口。
結(jié)果是,SAN拓?fù)浣Y(jié)構(gòu)可由多達(dá)4個(gè)連接到nStor 陣列的交換機(jī)來配置。這就為系統(tǒng)管理員提供了很多的靈活性,以便優(yōu)化連接到服務(wù)器的 I/O傳輸。重要的是,這樣的配置消除了硬盤控制器出現(xiàn)單點(diǎn)故障的可能性。無論如何,在每臺(tái)服務(wù)器上,對(duì)硬盤配置的復(fù)雜性有所增加。nStor 系統(tǒng)所表現(xiàn)出來的每個(gè)邏輯硬盤單元將出現(xiàn)多次,每次nStor SAN連接時(shí)就出現(xiàn)一次。
最初我們采用了四個(gè)Hitachi UltraStar Fibre Channel硬盤和四個(gè)Seagate Cheetah Fibre Channel硬盤,來建立nStor系統(tǒng),這些硬盤被格式化成兩個(gè)獨(dú)立的RAID-0陣列,總存儲(chǔ)容量接近1TB。之后,我們?cè)诿總€(gè)陣列上創(chuàng)建了三個(gè)邏輯單元分區(qū) (LUN),每臺(tái)服務(wù)器可以從每個(gè)陣列訪問一個(gè)LUN。
為了實(shí)現(xiàn)nStor 陣列的主動(dòng)-主動(dòng)的雙控制器配置所提供的容錯(cuò)功能,我們?yōu)镾AN架構(gòu)選擇了一個(gè)基本的雙交換機(jī)拓?fù)?。由于連接到我們的SMB SAN環(huán)境中的設(shè)備數(shù)量不多,一個(gè)8端口的 Brocade SilkWorm 3200交換機(jī)足夠支持目前的架構(gòu)。但是,單交換機(jī)拓?fù)鋵⑹沟媒粨Q機(jī)具有單點(diǎn)脆弱性,且無法提供24×7可用性的目標(biāo)。 在我們的測(cè)試SMB環(huán)境中一旦有這些商業(yè)要求,就需要一個(gè)關(guān)鍵的評(píng)估要求,即迅速建立一個(gè)初始的兩交換機(jī)架構(gòu)并正常運(yùn)行。
Emulex HBA和Brocade交換機(jī)的安裝相對(duì)快速和簡單,但是一旦有了測(cè)試要求,安裝就需要多試幾次。
由于我們的操作系統(tǒng)中有HBA驅(qū)動(dòng)程序,所以在Windows Server 2003和 Linux中安裝HBA很順利。 在Linux中有點(diǎn)不同的是需要編譯驅(qū)動(dòng)程序源代碼,并重建內(nèi)核。這是不少小站點(diǎn)為了避免麻煩而采取的措施。然而,SuSE Linux 中的Emulex LightPulse模塊并不是萬能的。
Emulex對(duì)其軟件的設(shè)計(jì)極為嚴(yán)格,Emulex把其驅(qū)動(dòng)模塊注冊(cè)為控制Fibre Channel 接口而非硬盤控制器,結(jié)果是SuSE Linux并沒有自動(dòng)在 initrd 中包含Emulex驅(qū)動(dòng)模塊,這種做法對(duì)于熟練的Linux管理員來說是顯然的:假如已經(jīng)安裝了基于SAN的硬盤,系統(tǒng)重啟動(dòng)將會(huì)失敗。這是因?yàn)閱?dòng)時(shí)系統(tǒng)運(yùn)行 fsck,檢查/etc/fstab中列出的每個(gè)硬盤,而Emulex驅(qū)動(dòng)程序在啟動(dòng)時(shí)并不加載。解決的方法也是簡單的:在 /etc/sysconfig/kernel 中添加Emulex模塊,之后運(yùn)行 mk_initrd,后者可以容易地使用YaST2完成。仍然有個(gè)問題:對(duì)于轉(zhuǎn)向Linux的SMB網(wǎng)站來說,這樣做是否過于復(fù)雜?
類似的,對(duì)于系統(tǒng)管理員來說,使用Brocade交換機(jī)需要使用專用的串行電纜,需要使用telnet和命名行接口。當(dāng)建立 Brocade交換機(jī)時(shí),系統(tǒng)管理員將會(huì)發(fā)現(xiàn)沒有NAS應(yīng)用中常用的簡單的網(wǎng)絡(luò)發(fā)現(xiàn)機(jī)制。
一旦所有的SilkWorm交換機(jī)被賦予合適的網(wǎng)絡(luò)地址,可以使用 Brocade的WebTools軟件,以可視化方式進(jìn)行管理和監(jiān)控, WebTools是駐留在單個(gè)交換機(jī)中的基于Java的Web應(yīng)用程序。這些交換機(jī)可以通過以太網(wǎng)以out-of-band方式訪問,或者通過基于光纖通道的IP協(xié)議以in-band方式訪問,后者是通過具有以太網(wǎng)連接的主交換機(jī)進(jìn)行的。
Brocade的 WebTools的文檔中介紹了運(yùn)行該應(yīng)用程序需要支持Java的瀏覽器;正式的系統(tǒng)需求是在 Windows平臺(tái)上運(yùn)行Internet Explorer,在Solaris平臺(tái)上使用Netscape Navigator瀏覽器。此時(shí)Java的老問題再次出現(xiàn):編譯一次,調(diào)試多次。所以當(dāng)一些 Java applets在SuSE Linux 9.0的Mozilla 上運(yùn)行出現(xiàn)故障時(shí),我們并不感到驚奇。幸運(yùn)地是,雖然加載Java classes時(shí)速度較慢,我們可以在SuSE上使用Konqueror來運(yùn)行。
我們使用了Brocade的WebTools軟件的性能檢測(cè)功能,來演示一下ISL干線合并(ISL trunking)的效果。在 Dell服務(wù)器上我們安裝了一個(gè)LUN,其是由連接不同的交換機(jī)上的初始控制器來提供服務(wù)的。當(dāng)我們使用64KB I/O來運(yùn)行oblFileLoad時(shí),峰值傳輸速度為188MBps(8個(gè)硬盤陣列),當(dāng)打開干線合并功能時(shí),數(shù)據(jù)傳輸通過端口 6和7進(jìn)行,這就形成了連接到nStor陣列的交換機(jī)的ISL干線合并,數(shù)據(jù)傳輸?shù)钠胶庑Ч芎谩?BR>
WebTools 提供了直觀的界面,來管理整個(gè)架構(gòu)和配置單個(gè)交換機(jī)的屬性,諸如IP地址,交換機(jī)名稱,簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,簡稱SNMP)設(shè)置。使用WebTools,管理員可以識(shí)別出連接到架構(gòu)中的設(shè)備,升級(jí)交換機(jī)的固件,管理授權(quán)序列號(hào),以便使用可選功能。
傳統(tǒng)的SAN拓?fù)涫敲總€(gè)交換機(jī)之間相互連接成網(wǎng)狀結(jié)構(gòu),這樣的安排可以使得在發(fā)送設(shè)備到目標(biāo)設(shè)備之間傳輸數(shù)據(jù)時(shí),在交換機(jī)之間的數(shù)據(jù)包的轉(zhuǎn)跳數(shù)達(dá)到最小。
nStor的StorView可提供可一個(gè)直觀的,易用的界面。所有系統(tǒng)組件中的重要狀態(tài)信息可以容易地獲得,同時(shí)進(jìn)行詳細(xì)的管理和配置也是小菜一碟。
在SAN中配置ISL可以減少拆東墻補(bǔ)西墻的問題。系統(tǒng)管理員必須決定交換機(jī)中要保留多少用于數(shù)據(jù)連接的端口,以及多少端口用于連接其他交換機(jī)。這個(gè)決定定義了“注冊(cè)比例”,即用于連接設(shè)備的總端口數(shù)同用于創(chuàng)建ISL所使用的總端口數(shù)之比。在一個(gè)8口交換機(jī)中,保留6個(gè)端口用于設(shè)備連接,2個(gè)端口用于ISL,其注冊(cè)比例為3比1,這個(gè)數(shù)字被認(rèn)為是性能良好的。
不幸的是,對(duì)于SAN來說,規(guī)則并不是顯而易見的。在兩個(gè)交換機(jī)之間簡單地連接一組端口,并不能自動(dòng)地把產(chǎn)生一個(gè)高帶寬的邏輯連接。 多數(shù)數(shù)據(jù)傳輸在端口到端口的流動(dòng)過程中將不可避免地降低速度,形成瓶頸。為了防止這種現(xiàn)象的發(fā)生,Brocade交換機(jī)中提供了可實(shí)現(xiàn)特定的干線合并的固件,以便在相鄰的端口集合中實(shí)現(xiàn)負(fù)載平衡,以便形成單一的邏輯干線。這個(gè)能夠提供負(fù)載平衡的干線合并功能,并不便宜。本案例中,Brocade交換機(jī)添加了合并功能,價(jià)格就增加了$3,800美元,使得交換機(jī)總體上的開銷達(dá)到 $10,000美元。 (編者:該測(cè)評(píng)是在今年三月進(jìn)行的,反映的是當(dāng)時(shí)的市場(chǎng)價(jià)。)
一旦我們的架構(gòu)開始工作了,就可轉(zhuǎn)向存儲(chǔ)陣列的配置。nStor系統(tǒng)的建立過程可以獨(dú)立于SAN,以傳統(tǒng)方式進(jìn)行:用一根串行電纜連接,運(yùn)行VT100終端仿真程序。更為有趣的是,nStor的基于主機(jī)的客戶/服務(wù)器軟件StorView,可以運(yùn)行在 Linux和Windows兩種平臺(tái)上。
StorView服務(wù)器模塊作為后臺(tái)進(jìn)程運(yùn)行。其任務(wù)之一是在in-band (Fibre Channel)和out-of-band (LAN)連接方式下,使用multi-casting技術(shù),來自動(dòng)發(fā)現(xiàn)所有已經(jīng)安裝的nStor存儲(chǔ)系統(tǒng)。為了同StorView GUI進(jìn)行通信,服務(wù)器組件使用了Apache 2.0,我們把Apache 2.0安裝在Windows服務(wù)器上。除非IIS正在監(jiān)聽端口 9292,否則Apache不會(huì)同現(xiàn)有的IIS發(fā)生沖突。結(jié)果是,管理員可在能夠訪問到nStor server的任何系統(tǒng)上運(yùn)行StorViewde GUI。
LUN映射是SAN管理員的重要工作,為簡化這一工作, StorView為管理員提供了SAN中發(fā)現(xiàn)的每個(gè)HBA的唯一的WWN。為了識(shí)別WWN對(duì)應(yīng)的物理服務(wù)器和HBA,管理員可以使用 Brocade的 WebTools軟件。架構(gòu)名稱服務(wù)器列出連接到整個(gè)架構(gòu)的任何交換機(jī)端口的每個(gè)initiator 的WWN(諸如Emulex LightPulse HBA),以及每個(gè)目標(biāo)設(shè)備 (諸如 nStor Wahoo控制器)的WWN。
高端系統(tǒng)中需要的任何RAID管理功能都可以在 StorView找到。所有的高端RAID級(jí)別,包括RAID 10和 RAID 50(并不是所有的基于主機(jī)的控制器都支持)StorView也支持。諸如陣列,LUN和HBA這樣的存儲(chǔ)對(duì)象可賦予用戶友好的名稱。更為重要的是,對(duì)于數(shù)據(jù)快速增長的站點(diǎn),可以使用任何可用的空余空間來擴(kuò)展任何現(xiàn)有的LUN。
使用光纖通道環(huán)路來連接硬盤,可以使得 nStor存儲(chǔ)系統(tǒng)配置為多達(dá)64個(gè)陣列,每個(gè)陣列16個(gè)硬盤 。而且,硬盤的容量沒有限制。然而,LUN的數(shù)量有限制:512。另外,32位的尋址極限限制了每個(gè)LUN的最大存儲(chǔ)容量,為2,198GB。
SAN中的LUN管理存在一個(gè)缺點(diǎn),如果沒有干預(yù),每個(gè)系統(tǒng)將會(huì)多次看見每個(gè)LUN-存儲(chǔ)系統(tǒng)和架構(gòu)之間的每次物理連接之后,就會(huì)看見一次。配置了雙端口的nStor Wahoo控制器之后,nStor 4520系統(tǒng)上創(chuàng)建的每個(gè)LUN將會(huì)出現(xiàn)四次。在我們的SMB測(cè)試場(chǎng)景中,我們僅用了兩個(gè)交換機(jī),采用了優(yōu)化的拓?fù)浞椒?,即把每個(gè)控制器的一個(gè)端口連接到不同的交換機(jī)。 這樣配置之后,一旦架構(gòu)中有一個(gè)端口,控制器或者交換機(jī)出現(xiàn)故障,我們可以恢復(fù)。
但是,如果管理員使用的操作系統(tǒng)對(duì)SAN的支持不夠好,SAN的這種出錯(cuò)恢復(fù)功能,就會(huì)引起嚴(yán)重的配置問題。Windows Server 2003和Linux都屬此類。局部地,Windows Server 2003和Linux將會(huì)看到可以訪問到任何LUN的所有映象。但是Windows Server 2003處理這些映象的方式不同于Linux。 一旦安裝和格式化了其中的一個(gè)映象,在打算訪問其他映象時(shí),操作系統(tǒng)就產(chǎn)生一個(gè)系統(tǒng)錯(cuò)誤。在Linux中不存在這個(gè)機(jī)制,系統(tǒng)管理員在理論上可以安裝任何映象。實(shí)際上,這是個(gè)壞主意。
問題出現(xiàn)在用于硬盤卷的文件系統(tǒng)元數(shù)據(jù)的處理方式。例如:在Linux系統(tǒng)上,從IBM硬盤陣列中安裝LUN的兩個(gè)副本: /dev/sda1和/dev/sdc1,這兩個(gè)安裝點(diǎn)都沒有反映出LUN內(nèi)容的真正狀態(tài)。兩個(gè)安裝點(diǎn)僅僅表明通過各自的安裝點(diǎn)發(fā)生了兩個(gè)事件。要同步得到一個(gè)安裝點(diǎn),且LUN中駐留的是實(shí)際的內(nèi)容,唯一途徑是卸裝它,并手工運(yùn)行 fsck,且調(diào)用 rebuild-tree 選項(xiàng)。自然地,系統(tǒng)的任何重啟動(dòng)將會(huì)失敗,需要管理員進(jìn)行干預(yù),并運(yùn)行fsck 命令,重建兩個(gè)卷的inode結(jié)構(gòu)。
元數(shù)據(jù)的不一致問題,對(duì)系統(tǒng)之間共享LUN影響很大。雖然Windows Server 2003將阻止對(duì)同一個(gè)卷的多次安裝,但沒有機(jī)制可以阻止在不同的服務(wù)器上同時(shí)安裝同一個(gè)卷。一旦發(fā)生這樣的情況,結(jié)果是不尋常的。
因?yàn)閯h除一個(gè)文件也就是把它從主文件表中 (MFT)去掉,在一臺(tái)服務(wù)器的卷上被刪除的文件,不會(huì)自動(dòng)從另外一臺(tái)服務(wù)器上刪除。所有其他服務(wù)器將繼續(xù)指向相應(yīng)的硬盤塊,且容易地找到該文件。此時(shí), LUN的物理狀態(tài)將變得不確定。當(dāng)這個(gè)事情發(fā)生后,服務(wù)器的邏輯視圖將同物理卷一致,這樣的事態(tài)將一定會(huì)同其他服務(wù)器的視圖之間出現(xiàn)混亂。
I/O命令的大小表明了 Linux和Windows在進(jìn)行I/O請(qǐng)求操作方面是不同的。在服務(wù)器上的Linux下運(yùn)行oblDisk(其I/O命令幾乎都綁定了 128KB的讀寫請(qǐng)求),在Windows 服務(wù)器上我們重復(fù)了同樣的I/O讀寫模式。Windows Server并不綁定 I/O,結(jié)果是為了優(yōu)化性能,nStor硬盤系統(tǒng)在聚集I/O時(shí),做了更多工作。
在服務(wù)器上的Linux下運(yùn)行oblDisk(其I/O命令幾乎都綁定了 128KB的讀寫請(qǐng)求),在Windows 服務(wù)器上我們重復(fù)了同樣的I/O讀寫模式。Windows Server并不綁定 I/O,結(jié)果是為了優(yōu)化性能,nStor硬盤系統(tǒng)在聚集I/O時(shí),做了更多工作。
顯然,無論是Windows還是 Linux都無法應(yīng)付LUN共享中出現(xiàn)的復(fù)雜情況,所以兩臺(tái)服務(wù)器不安裝同一個(gè)LUN是很重要的。要對(duì)付這個(gè)問題,最簡略的方法是通過架構(gòu)分區(qū),即把switch 交換機(jī)端口組合起來,端口之間的通信限制為在組成員之間進(jìn)行。只要端口連接不再重新配置,這個(gè)方案是相當(dāng)好的。另一個(gè)復(fù)雜些的方案是利用基于HBA的獨(dú)一無二的節(jié)點(diǎn)WWN,把LUN限制為同到特定的HBA對(duì)應(yīng)。這正是nStor的LUN映射所采用的方案。
結(jié)果是StorView GUI列出了SAN中發(fā)現(xiàn)的每個(gè)HBA的唯一的WWN,不幸的是,要讓管理員能夠準(zhǔn)確地識(shí)別出哪個(gè)WWN對(duì)應(yīng)哪一個(gè)HBA,這是不大可能的。幸運(yùn)的是,這個(gè)問題可以很容易地通過 Brocade的WebTools來解決,WebTools含有一個(gè)簡單的名稱服務(wù)器。
雖然nStor提供了一個(gè)功能強(qiáng)大的工具,來防止不同系統(tǒng)之間由于不合適的共享,而導(dǎo)致LUN的崩潰,但還是存在一個(gè)基本的失效切換的問題。失效切換的問題其邏輯上是本地LUN共享的一個(gè)實(shí)例。結(jié)果是,失效切換更多的是外在的而非透明的問題。
Windows Server 2003處理該問題時(shí)措施很嚴(yán)格。有問題的卷從視圖中消失,所有的通信被終止。只有通過從不同的路徑進(jìn)行通信,進(jìn)行重啟動(dòng)方可恢復(fù)失效卷的一個(gè)新實(shí)例。
另一方面,Linux允許多個(gè)安裝點(diǎn),這個(gè)功能看起來可以使得失效切換變得半透明。在破裂性的失效切換之后,Linux中的應(yīng)用程序?qū)⒁恢边\(yùn)行。 例如,我們拔掉了硬盤的連接端口,之后我們打算運(yùn)行一些應(yīng)用程序。 除了兩個(gè)例外之外,其他所有的應(yīng)用程序都正常運(yùn)行。這兩個(gè)例外是:oblDisk基準(zhǔn)測(cè)試程序,該程序顯然是需要調(diào)用設(shè)備的,以及SuSE的YaST2硬盤分區(qū)工具,該程序一直不結(jié)束。這不是一個(gè)好現(xiàn)象。
重啟動(dòng)系統(tǒng)時(shí),Windows Server 所采取的嚴(yán)格方案有其合理之處, 要成功地重啟動(dòng)SuSE Linux,因?yàn)槲覀円呀?jīng)安裝了該驅(qū)動(dòng)器兩次,所以必須手工干預(yù),即重建該驅(qū)動(dòng)器硬盤的目錄樹。
從這些事實(shí)和數(shù)字來看,nStor系統(tǒng)并不受限于32位 WinTel架構(gòu)。特別地,為了改進(jìn)磁盤分段效率,nStor系統(tǒng)有一個(gè)最小的起始?jí)K尺寸:64KB, 這是Windows環(huán)境下的I/O的最大尺寸。該塊尺寸可以設(shè)置為128KB,這是Linux環(huán)境下的最佳的I/O尺寸,尺寸最大可到256KB。
自然,這種多樣性擴(kuò)展了該存儲(chǔ)系統(tǒng)的性能監(jiān)控能力,這一點(diǎn)是很重要的,因?yàn)樵谡{(diào)整硬盤陣列和服務(wù)器操作系統(tǒng)的I/O傳輸優(yōu)化方面,需要這些信息。關(guān)于LUN的性能數(shù)據(jù)包括:讀寫傳輸率;I/O讀寫命令大?。蛔x寫字節(jié)調(diào)整;nStor陣列生成提前讀請(qǐng)求的頻率;陣列群寫命令的頻率。
總的目標(biāo)是在硬盤上避免寫入塊的分裂。理想的情形通過寫命令,把數(shù)據(jù)塊作為一個(gè)整體放置在每個(gè)硬盤中, 數(shù)據(jù)塊的數(shù)目同組成整個(gè)條帶的硬盤數(shù)目相等。這一點(diǎn)對(duì)于RAID-5 and RAID-50陣列的寫性能尤其重要。
我們將在InfoStor的下一篇文章中詳細(xì)了解SAN的性能,因?yàn)槲覀儗⑸钊胙芯吭赟MB環(huán)境下構(gòu)建SAN的性能和成本。
實(shí)驗(yàn)室場(chǎng)景
檢查內(nèi)容:2Gbps SAN架構(gòu)
測(cè)試內(nèi)容:兩只Brocade SilkWorm 3200交換機(jī)
1GB 緩存
雙 Fibre Channel端口 (SFP)
nStor StorView管理軟件
四個(gè) Hitachi GST UltraStar硬盤
四個(gè) Seagate Cheetah硬盤
兩個(gè)Emulex LightPulse 9802 主機(jī)總線適配器(HBA )
一個(gè)Emulex LightPulse 9002L 主機(jī)總線適配器(HBA )
測(cè)試方法:
HP ProLiant ML350 G3 服務(wù)器
Appro 1224Xi 1U 服務(wù)器
Dell PowerEdge 2400 服務(wù)器
基準(zhǔn)測(cè)試軟件
重要發(fā)現(xiàn):所有需要用到的驅(qū)動(dòng)程序都包括在SuSE Linux和Windows Server 2003中。四硬盤陣列的傳輸速度可以同本地的Ultra360 SCSI性能媲美。Fibre Channel下的大陣列擴(kuò)充性更好。SAN的失效切換在Windows Server 2003或者SuSE Linux中并不是一個(gè)透明的過程。