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



    1GB 緩存


    雙 Fibre Channel端口 (SFP)



    nStor StorView管理軟件



    四個 Hitachi GST UltraStar硬盤



    四個 Seagate Cheetah硬盤



    兩個Emulex LightPulse 9802 主機總線適配器(HBA )



    一個Emulex LightPulse 9002L 主機總線適配器(HBA )



    測試方法:



    HP ProLiant ML350 G3 服務器



    Appro 1224Xi 1U 服務器



    Dell PowerEdge 2400 服務器



    基準測試軟件



    重要發(fā)現(xiàn):所有需要用到的驅動程序都包括在SuSE Linux和Windows Server 2003中。四硬盤陣列的傳輸速度可以同本地的Ultra360 SCSI性能媲美。Fibre Channel下的大陣列擴充性更好。SAN的失效切換在Windows Server 2003或者SuSE Linux中并不是一個透明的過程。

分享到

多易

相關推薦