RAID技術全程指南

入門基礎

  RAID是英文Redundant Array of Inexpensive Disks的縮寫,中文簡稱爲磁盤陣列。其實,從RAID的英文原意中,我們已經能夠多少知道RAID就是一種由多塊廉價磁盤構成的冗餘陣列。雖然RAID包含多塊磁盤,但是在操作系統下是作爲一個獨立的大型存儲設備出現。RAID技術分爲幾種不同的等級,分別可以提供不同的速度,安全性和性價比。

  人們在開發RAID時主要是基於以下設想,即幾塊小容量硬盤的價格總和要低於一塊大容量的硬盤。雖然目前這一設想還沒有成爲現實,RAID在節省成本方面的作用還不是很明顯,但是RAID可以充分發揮出多塊硬盤的優勢,實現遠遠超出任何一塊單獨硬盤的速度和吞吐量。除了性能上的提高之外,RAID還可以提供良好的容錯能力,在任何一塊硬盤出現問題的情況下都可以繼續工作,不會受到損壞硬盤的影響。

  RAID系統究竟有什麼好處呢?

  1.擴大了存貯能力 可由多個硬盤組成容量巨大的存貯空間。

  2.降低了單位容量的成本 市場上最大容量的硬盤每兆容量的價格要大大高於普及型硬盤,因此採用多個普及型硬盤組成的陣列其單位價格要低得多。

  3.提高了存貯速度 單個硬盤速度的提高均受到各個時期的技術條件限制,要更進一步往往是很因難的,而使用RAID,則可以讓多個硬盤同時分攤數據的讀或寫操作,因此整體速度有成倍地提高。

  4.可靠性 RAID系統可以使用兩組硬盤同步完成鏡像存貯,這種安全措施對於網絡服務器來說是最重要不過的了。

  5.容錯性 RAID控制器的一個關鍵功能就是容錯處理。容錯陣列中如有單塊硬盤出錯,不會影響到整體的繼續使用,高級RAID控制器還具有拯救功能。

  6.對於IDE RAID來說,目前還有一個功能就是支持ATA/66/100。RAID也分爲SCSI RAID和IDE RAID兩類,當然IDE RAID要廉價得多。如果主機主板不支持ATA/66/100硬盤,通過RAID卡,則能夠使用上新硬盤的ATA/66/100功能。

  RAID 0

  我們在前文中已經提到RAID分爲幾種不同的等級,其中,RAID 0是最簡單的一種形式。RAID 0可以把多塊硬盤連接在一起形成一個容量更大的存儲設備。最簡單的RAID 0技術只是提供更多的磁盤空間,不過我們也可以通過設置,使用RAID 0來提高磁盤的性能和吞吐量。RAID 0沒有冗餘或錯誤修復能力,但是實現成本是最低的。

  RAID 0最簡單的實現方式就是把幾塊硬盤串聯在一起創建一個大的卷集。磁盤之間的連接既可以使用硬件的形式通過智能磁盤控制器實現,也可以使用操作系統中的磁盤驅動程序以軟件的方式實現。圖示如下:

  


  在上述配置中,我們把4塊磁盤組合在一起形成一個獨立的邏輯驅動器,容量相當於任何任何一塊單獨硬盤的4倍。如圖中彩色區域所示,數據被依次寫入到各磁盤中。當一塊磁盤的空間用盡時,數據就會被自動寫入到下一塊磁盤中。

  這種設置方式只有一個好處,那就是可以增加磁盤的容量。至於速度,則與其中任何一塊磁盤的速度相同,這是因爲同一時間內只能對一塊磁盤進行I/O操作。如果其中的任何一塊磁盤出現故障,整個系統將會受到破壞,無法繼續使用。從這種意義上說,使用純RAID 0方式的可靠性僅相當於單獨使用一塊硬盤的1/4(因爲本例中RAID 0使用了4塊硬盤)。

  雖然我們無法改變RAID 0的可靠性問題,但是我們可以通過改變配置方式,提供系統的性能。與前文所述的順序寫入數據不同,我們可以通過創建帶區集,在同一時間內向多塊磁盤寫入數據。具體如圖所示:

  


  上圖中,系統向邏輯設備發出的I/O指令被轉化爲4項操作,其中的每一項操作都對應於一塊硬盤。我們從圖中可以清楚的看到通過建立帶區集,原先順序寫入的數據被分散到所有的四塊硬盤中同時進行讀寫。四塊硬盤的並行操作使同一時間內磁盤讀寫的速度提升了4倍。

  在創建帶區集時,合理的選擇帶區的大小非常重要。如果帶區過大,可能一塊磁盤上的帶區空間就可以滿足大部分的I/O操作,使數據的讀寫仍然只侷限在少數的一、兩塊硬盤上,不能充分的發揮出並行操作的優勢。另一方面,如果帶區過小,任何I/O指令都可能引發大量的讀寫操作,佔用過多的控制器總線帶寬。因此,在創建帶區集時,我們應當根據實際應用的需要,慎重的選擇帶區的大小。

  我們已經知道,帶區集可以把數據均勻的分配到所有的磁盤上進行讀寫。如果我們把所有的硬盤都連接到一個控制器上的話,可能會帶來潛在的危害。這是因爲當我們頻繁進行讀寫操作時,很容易使控制器或總線的負荷超載。爲了避免出現上述問題,建議用戶可以使用多個磁盤控制器。示意圖如下:

  


  這樣,我們就可以把原先控制器總線上的數據流量降低一半。當然,最好解決方法還是爲每一塊硬盤都配備一個專門的磁盤控制器。

RAID 1

  雖然RAID 0可以提供更多的空間和更好的性能,但是整個系統是非常不可靠的,如果出現故障,無法進行任何補救。所以,RAID 0一般只是在那些對數據安全性要求不高的情況下才被人們使用。

  RAID 1和RAID 0截然不同,其技術重點全部放在如何能夠在不影響性能的情況下最大限度的保證系統的可靠性和可修復性上。RAID 1是所有RAID等級中實現成本最高的一種,儘管如此,人們還是選擇RAID 1來保存那些關鍵性的重要數據。

  RAID 1又被稱爲磁盤鏡像,每一個磁盤都具有一個對應的鏡像盤。對任何一個磁盤的數據寫入都會被複制鏡像盤中;系統可以從一組鏡像盤中的任何一個磁盤讀取數據。顯然,磁盤鏡像肯定會提高系統成本。因爲我們所能使用的空間只是所有磁盤容量總和的一半。下圖顯示的是由4塊硬盤組成的磁盤鏡像,其中可以作爲存儲空間使用的僅爲兩塊硬盤(畫斜線的爲鏡像部分)。


  RAID 1下任何一塊硬盤的故障都不會影響到系統的正常運行,而且只要能夠保證任何一對鏡像盤中至少有一塊磁盤可以使用,RAID 1甚至可以在一半數量的硬盤出現問題時不間斷的工作。當一塊硬盤失效時,系統會忽略該硬盤,轉而使用剩餘的鏡像盤讀寫數據。

  通常,我們把出現硬盤故障的RAID系統稱爲在降級模式下運行。雖然這時保存的數據仍然可以繼續使用,但是RAID系統將不再可靠。如果剩餘的鏡像盤也出現問題,那麼整個系統就會崩潰。因此,我們應當及時的更換損壞的硬盤,避免出現新的問題。

  更換新盤之後,原有好盤中的數據必須被複制到新盤中。這一操作被稱爲同步鏡像。同步鏡像一般都需要很長時間,尤其是當損害的硬盤的容量很大時更是如此。在同步鏡像的進行過程中,外界對數據的訪問不會受到影響,但是由於複製數據需要佔用一部分的帶寬,所以可能會使整個系統的性能有所下降。

  因爲RAID 1主要是通過二次讀寫實現磁盤鏡像,所以磁盤控制器的負載也相當大,尤其是在需要頻繁寫入數據的環境中。爲了避免出現性能瓶頸,使用多個磁盤控制器就顯得很有必要。下圖示意了使用兩個控制器的磁盤鏡像。


  使用兩個磁盤控制器不僅可以改善性能,還可以進一步的提高數據的安全性和可用性。我們已經知道,RAID 1最多允許一半數量的硬盤出現故障,所以按照我們上圖中的設置方式(原盤和鏡像盤分別連接不同的磁盤控制),即使一個磁盤控制器出現問題,系統仍然可以使用另外一個磁盤控制器繼續工作。這樣,就可以把一些由於意外操作所帶來的損害降低到最低程度。

  RAID 0+1(10)

  單獨使用RAID 1也會出現類似單獨使用RAID 0那樣的問題,即在同一時間內只能向一塊磁盤寫入數據,不能充分利用所有的資源。爲了解決這一問題,我們可以在磁盤鏡像中建立帶區集。因爲這種配置方式綜合了帶區集和鏡像的優勢,所以被稱爲RAID 0+1。

  熱插拔

  一些面向高端應用的磁盤鏡像系統都可以提供磁盤的熱插拔功能。所謂熱插拔功能,就是允許用戶在不關閉系統,不切斷電源的情況下取出和更換損害的硬盤。如果沒有熱插拔功能,即使磁盤損壞不會造成數據的丟失,用戶仍然需要暫時關閉系統,以便能夠對硬盤進行更換。現在,使用熱插拔技術只要簡單的打開連接開關或者轉動手柄就可以直接取出硬盤,而系統仍然可以不間斷的正常運行。


  校驗

  RAID 3和RAID 5都分別使用了校驗的概念提供容錯能力。簡單的說,我們可以把校驗想象爲一種二進制的校驗和,一個可以告訴你其它所有字位是否正確的特殊位。

  在數據通信領域,奇偶校驗被用來確定數據是否被正確傳送。例如,對於每一個字節,我們可以簡單計算數字位1的個數,並在字節內加入附加校驗位。在數據的接收方,如果數字位1的個數爲奇數,而我們使用的又是奇數校驗的話,則說明該字節是正確的。同樣對偶數校驗也是如此。然而,如果數字位1的個數和校驗位的奇偶性不一致的話,則說明數據在傳送過程中出現了錯誤。

  RAID系統也採用了相似的校驗方法,可以在磁盤系統中創建校驗塊,校驗塊中的每一位都用來對其它關聯塊中的所有對應位進行校驗。

  在數據通訊領域,雖然校驗位可以告訴我們某個字節是否正確,但是無法告訴我們到底是哪一位出現了問題。這就是說我們可以檢測錯誤,但是不能改正錯誤。對於RAID,這是遠遠不夠的。固然錯誤的檢測非常重要,但是如果不能對錯誤進行修復,我們就無法提高整個系統的可靠性。

  舉個例子來說,假設我們發現校驗塊中第10個字節的第5位不正確。如果這個校驗塊包含的是另外8個數據塊的校驗信息,那麼哪一個數據塊纔是問題的罪魁禍首呢?也許你可能會想爲每一個數據塊都建立一個校驗塊就可以解決問題。但是這種方法很難實現。事實上,RAID主要是藉助磁盤控制器的錯誤報告檢測錯誤位置,並進行修復。如果磁盤控制器在讀取數據時沒有發出任何“抱怨”,那麼系統將會視該數據爲正確數據,繼續使用。

RAID 3

  RAID 3採用的是一種較爲簡單的校驗實現方式,使用一個專門的磁盤存放所有的校驗數據,而在剩餘的磁盤中創建帶區集分散數據的讀寫操作。例如,在一個由4塊硬盤構成的RAID 3系統中,3塊硬盤將被用來保存數據,第四塊硬盤則專門用於校驗。這種配置方式可以用3+1的形式表示,具體如圖:


  在上圖中,我們用相同的顏色表示使用同一個校驗塊的所有數據塊,斜線標出的部分爲校驗塊。校驗塊和所有對應的數據塊一起構成一個帶區。

  第四塊硬盤中的每一個校驗塊所包含的都是其它3塊硬盤中對應數據塊的校驗信息。RAID 3的成功之處就在於不僅可以象RAID 1那樣提供容錯功能,而且整體開銷從RAID 1的50%下降爲25%(RAID 3+1)。隨着所使用磁盤數量的增多,成本開銷會越來越小。舉例來說,如果我們使用7塊硬盤,那麼總開銷就會將到12.5%(1/7)。

  在不同情況下,RAID 3讀寫操作的複雜程度不同。最簡單的情況就是從一個完好的RAID 3系統中讀取數據。這時,只需要在數據存儲盤中找到相應的數據塊進行讀取操作即可,不會增加任何額外的系統開銷。

  當向RAID 3寫入數據時,情況會變得複雜一些。即使我們只是向一個磁盤寫入一個數據塊,也必須計算與該數據塊同處一個帶區的所有數據塊的校驗值,並將新值重新寫入到校驗塊中。例如,當我們向上圖中的綠色數據塊寫入數據時,必須重新計算所有3個綠色數據塊的校驗值,然後重寫位於第四塊硬盤的綠色校驗塊。由此我們可以看出,一個寫入操作事實上包含了數據讀取(讀取帶區中的關聯數據塊),校驗值計算,數據塊寫入和校驗塊寫入四個過程。系統開銷大大增加。

  我們可以通過適當設置帶區的大小使RAID系統得到簡化。如果某個寫入操作的長度恰好等於一個完整帶區的大小(全帶區寫入),那麼我們就不必再讀取帶區中的關聯數據塊計算校驗值。我們只需要計算整個帶區的校驗值,然後直接把數據和校驗信息寫入數據盤和校驗盤即可。

  到目前爲止,我們所探討的都是正常運行狀況下的數據讀寫。下面,我們再來看一下當硬盤出現故障時,RAID系統在降級模式下的運行情況。

  RAID 3雖然具有容錯能力,但是系統會受到影響。當一塊磁盤失效時,該磁盤上的所有數據塊必須使用校驗信息重新建立。如果我們是從好盤中讀取數據塊,不會有任何變化。但是如果我們所要讀取的數據塊正好位於已經損壞的磁盤,則必須同時讀取同一帶區中的所有其它數據塊,並根據校驗值重建丟失的數據。

  當我們更換了損壞的磁盤之後,系統必須一個數據塊一個數據塊的重建壞盤中的數據。整個過程包括讀取帶區,計算丟失的數據塊和向新盤寫入新的數據塊,都是在後臺自動進行。重建活動最好是在RAID系統空閒的時候進行,否則整個系統的性能會受到嚴重的影響。

  RAID 3的性能問題

  除了我們在上文討論過的有關數據寫入和降級模式的問題之外,在使用RAID 3的過程中還有其他一些性能上的問題需要引起我們的注意。RAID 3所存在的最大一個不足同時也是導致RAID 3很少被人們採用的原因就是校驗盤很容易成爲整個系統的瓶頸。

  我們已經知道RAID 3會把數據的寫入操作分散到多個磁盤上進行,然而不管是向哪一個數據盤寫入數據,都需要同時重寫校驗盤中的相關信息。因此,對於那些經常需要執行大量寫入操作的應用來說,校驗盤的負載將會很大,無法滿足程序的運行速度,從而導致整個RAID系統性能的下降。鑑於這種原因,RAID 3更加適合應用於那些寫入操作較少,讀取操作較多的應用環境,例如數據庫和WEB服務器等。

  RAID 5

  RAID 3所存在的校驗盤的性能問題使幾乎所有的RAID系統都轉向了RAID 5。在運行機制上,RAID 5和RAID 3完全相同,也是由同一帶區內的幾個數據塊共享一個校驗塊。

  RAID 5和RAID 3的最大區別在於RAID 5不是把所有的校驗塊集中保存在一個專門的校驗盤中,而是分散到所有的數據盤中。RAID 5使用了一種特殊的算法,可以計算出任何一個帶區校驗塊的存放位置。具體如圖所示:


  注意圖中的校驗塊已經被分散保存在不同的磁盤中,這樣就可以確保任何對校驗塊進行的讀寫操作都會在所有的RAID磁盤中進行均衡,從而消除了產生瓶頸的可能。

   RAID主板篇

  在RAID家族裏,RAID 0和RAID 1在個人電腦上應用最廣泛,畢竟願意使用4塊甚至更多的硬盤來構築RAID 0+1或其他硬盤陣列的個人用戶少之又少,因此我們在這裏僅就這兩種RAID方式進行講解。我們選擇支持IDE-RAID功能的升技KT7A-RAID主板,一步一步向大家介紹IDE-RAID的安裝。升技KT7A-RAID集成的是HighPoint 370芯片,支持RAID 0、1、0+1。

  做RAID自然少不了硬盤,RAID 0和RAID 1對磁盤的要求不一樣,RAID 1(Mirror)磁盤鏡像一般要求兩塊(或多塊)硬盤容量一致,而RAID 0(Striping)磁盤一般沒有這個要求,當然,選用容量相似性能相近甚至完全一樣的硬盤比較理想。爲了方便測試,我們選用兩塊60GB的希捷酷魚Ⅳ硬盤(Barracuda ATA Ⅳ、編號ST360021A)。系統選用Duron 750MHz的CPU,2×128MB樵風金條SDRAM,耕升GeForce2 Pro顯卡,應該說是比較普通的配置,我們也希望藉此瞭解構建RAID所需的系統要求。

  1.RAID 0的創建

  第一步

  首先要備份好硬盤中的數據。很多用戶都沒有重視備份這一工作,特別是一些比較粗心的個人用戶。創建RAID對數據而言是一項比較危險的操作,稍不留神就有可能毀掉整塊硬盤的數據,我們首先介紹的RAID 0更是這種情況,在創建RAID 0時,所有陣列中磁盤上的數據都將被抹去,包括硬盤分區表在內。因此要先準備好一張帶Fdisk與Format命令的Windows 98啓動盤,這也是這一步要注意的重要事項。

  第二步

  將兩塊硬盤的跳線設置爲Master,分別接上升技KT7A-RAID的IDE3、IDE4口(它們由主板上的HighPoint370芯片控制)。由於RAID 0會重建兩塊硬盤的分區表,我們就無需考慮硬盤連接的順序(下文中我們會看到在創建RAID 1時這個順序很重要)。

  第三步

  對BIOS進行設置,打開ATA RAID CONTROLLER。我們在升技KT7A-RAID主板的BIOS中進入INTEGRATED PERIPHERALS選項並開啓ATA100 RAID IDE CONTROLLER。升技建議將開機順序全部改爲ATA 100 RAID,實際我們發現這在系統安裝過程中並不可行,難道沒有分區的硬盤可以啓動嗎?因此我們仍然設置軟驅作爲首選項。

  第四步

  接下來的設置步驟是創建RAID 0的核心內容,我們以圖解方式向大家詳細介紹:

  1.系統BIOS設置完成以後重啓電腦,開機檢測時將不會再報告發現硬盤。

  2.磁盤的管理將由HighPoint 370芯片接管。

  3.下面是非常關鍵的HighPoint 370 BIOS設置,在HighPoint 370磁盤掃描界面同時按下“Ctrl”和“H”。

  4.進入HighPoint 370 BIOS設置界面後第一個要做的工作就是選擇“Create RAID”創建RAID。

  5.在“Array Mode(陣列模式)”中進行RAID模式選擇,這裏能夠看到RAID 0、RAID 1、RAID 0+1和Span的選項,在此我們選擇了RAID 0項。

  6.RAID模式選擇完成會自動退出到上一級菜單進行“Disk Drives(磁盤驅動器)”選擇,一般來說直接回車就行了。

  7.下一項設置是條帶單位大小,缺省值爲64kB,沒有特殊要求可以不予理睬。

  8.接着是“Start Create(開始創建)”的選項,在你按下“Y”之前,請認真想想是否還有重要的數據留在硬盤上,這是你最後的機會!一旦開始創建RAID,硬盤上的所有數據都會被清除。

  9.創建完成以後是指定BOOT啓動盤,任選一個吧。

  按“Esc”鍵退出,當然少不了按下“Y”來確認一下。

  HighPoint 370 BIOS沒有提供類似“Exit Without Save”的功能,修改設置後是不可逆轉的。

  第五步

  再次重啓電腦以後,我們就可以在屏幕上看到“Striping(RAID 0)for Array #0”字樣了。插入先前製作的啓動盤,啓動DOS。打開Fdisk程序,咦?怎麼就一個硬盤可見?是的,RAID陣列已經整個被看作了一塊硬盤,對於操作系統而言,RAID完全透明,我們大可不必費心RAID磁盤的管理,這些都由控制芯片完成。接下來按照普通單硬盤方法進行分區,你會發現“這個”硬盤的容量“變”大了,仔細算算,對,總容量就是兩塊硬盤相加的容量!我們可以把RAID 0的讀寫比喻成拉鍊,它把數據分開在兩個硬盤上,讀取數據會變得更快,而且不會浪費磁盤空間。在分區和格式化後千萬別忘了激活主分區。

  第六步

  選擇操作系統讓我們頗費周折,HighPoint370芯片提供對Windows 98/NT/2000/XP的驅動支持,考慮到使RAID功能面向的是相對高級的用戶,所以我們選擇了對新硬件支持更好的Windows XP Professional英文版(採用英文版系統主要是爲了方便後面的Winbench測試,大家自己使用RAID完全可以用中文版的操作系統),Windows 2000也是一個不錯的選擇,但是硬件支持方面顯然不如Windows XP Professional。

  第七步

  對於採用RAID的電腦,操作系統的安裝和普通情況下不一樣,讓我們看看圖示,這是在Windows XP完成第一步“文件複製”重啓以後出現的畫面,安裝程序會以英文提示“按下F6安裝SCSI設備或RAID磁盤”,這一過程很短,而且用戶往往會忽視屏幕下方的提示。

  按下F6後出現安裝選擇,選擇“S”將安裝RAID控制芯片驅動,選擇“Enter”則不安裝。

  按下“S”鍵會提示插入RAID芯片驅動盤。

  鍵入回車,安裝程序自動搜索驅動盤上的程序,選擇“WinXP”那一個並回車。

  如果所提供的版本和Windows XP Profesional內置的驅動版本不一致,安裝程序會給出提示讓用戶進行選擇。

  按下“S”會安裝軟盤所提供的而按下“Enter”則安裝Windows XP Professional自帶的驅動。按下“S”後又需要確認,這次是按“Enter”(這個……確認太多了,呵呵)。接下來是正常的系統安裝,和普通安裝沒有任何區別。

  RAID 0的安裝設置我們就介紹到這裏,下面我們會談談RAID 1的安裝。與RAID 0相比,RAID 1的安裝過程要簡單許多,在正確操作的情況下不具破壞性。

2.RAID 1的創建

  雖然在原理上和RAID 0完全不一樣,但RAID 1的安裝設置過程卻與RAID 0相差不多,主要區別在於HighPoint 370 BIOS裏的設置。爲了避免重複,我們只向大家重點介紹這部分設置:

  進入HighPoint 370 BIOS後選擇“Create RAID”進行創建:

  1.在“Array Mode”上點擊回車,在RAID模式選擇中選擇第二項“Mirror(RAID 1)for Data Security(爲數據源盤創建鏡像)”。

  2.接着是源盤的選擇,我們再次提醒用戶:務必小心,不要選錯。

  3.然後是目標盤的選擇,也就是我們所說的鏡像盤或備份盤。

  4.然後開始創建。

  5.創建完成以後BIOS會提示進行鏡像的製作,這一過程相當漫長。

  6.我們用了大約45分鐘才完成60GB的鏡像製作,至此RAID 1創建完成。

  RAID 1會將主盤的數據複製到鏡像盤,因此在構建RAID 1時需要特別小心,千萬不要把主盤和鏡像盤弄混,否則結果將是悲劇性的。RAID 1既可在兩塊無數據的硬盤上創建,也能夠在一塊已經安裝操作系統的硬盤上添加,比RAID 0方便多了(除了漫長的鏡像製作過程)。創建完成以後我們試着將其中一塊硬盤拔下,HighPoint370 BIOS給出了警告,按下“Esc”,另一塊硬盤承擔起了源盤的重任,所有數據完好無損。

  對於在一塊已經安裝操作系統的硬盤上添加RAID 1,我們建議的步驟是:打開BIOS中的控制芯片→啓動操作系統安裝HighPoint 370驅動→關機將源盤和鏡像盤接在IDE3、4口→進入HighPoint 370 BIOS設置RAID 1(步驟見上文介紹)→重啓系統完成創建。

  我們對兩種RAID進行了簡單的測試,雖然RAID 0的測試成績讓人有些不解,但是實際使用中仍然感覺比單硬盤快了很多,特別是Windows XP Professional的啓動異常迅速,進度條一閃而過。至於傳輸率曲線出現不穩定的情況,我們估計和平臺選擇有一些關係,畢竟集成芯片在進行這種高數據吞吐量的工作時非常容易被幹擾。不過即使是這樣,我們也看到RAID 0系統的數據傳輸率達到了非常高的水平,一度接近60MB/s。與RAID 0相比,RAID 1系統的性能雖然相對單磁盤系統沒有什麼明顯的改善,但測試中我們發現RAID 1的工作曲線顯得非常穩定,很少出現波動的情況。

  再看看Winbench99 2.0中的磁盤測試成績,一目瞭然。

  對用戶和操作系統而言,RAID 0和1是透明不影響任何操作的,我們就像使用一塊硬盤一樣。

   用RAID卡安裝RAID

  關於RAID卡的安裝


  我們選用的IDE RAID 卡是Promise公司的FastTrak系列的FastTrak66(如圖4),這款產品配有兩個UltraDMA66的IDE通道(如圖5),支持RAID 0,1,1+0,國內價格大約在1000元左右。同類的產品還有諸如Iwill公司的SIDEPro66、Alalion公司的UltimaPlus33等,都是性價比較高的產品。

  現在我們要做的第一步就是先把這塊FastTrak66 IDE RAID 卡插入主板的PCI插槽。這個步驟要說起來很簡單,啓下機箱背板上的插槽檔板,然後把IDE RAID 卡豎直插入便可。在插入的過程中一定要注意選準角度,力量均勻,以免損壞板卡或插槽。確定IDE RAID已經穩妥後,用螺絲固定便可。

  第二步讀者們需要做的,就是要把兩塊硬盤都連接到這張FastTrak66板卡上(建議如果用戶打算組建RAID,最好選用兩塊同一品牌、同一型號的硬盤, 這樣既可以充分利用硬盤空間,又可以相對地降低CPU佔用率。因爲一旦用戶使用了不同型號的硬盤,其各自的指標不盡相同,那麼CPU等在處理數據的時候就勢必會耗費很多效能和時間)。

      對於初學者而言有一點必須注意,千萬不要把兩塊硬盤以主從方式連接到一條硬盤線上,應該讓您的兩塊寶貝硬盤都作爲Master連接到FastTrak66的兩條IDE通道上。道理很簡單,IDE總線在工作時總是最先響應Master設備的數據請求,換句話說,當Master設備工作時,Slave設備只能處於等待狀態,如果是那樣也就無從談起RAID 0利用兩個硬盤並行工作來提升性能的特性了。

  通過以上兩個步驟,IDE RAID 卡的硬件安排便可以宣告結束,接下來就要設置軟件了。按下Power鍵重新開機,當系統通過主板BIOS自檢時會出現如圖所示提示,按提示同時鍵入Ctrl+F可進入FastTrak66的BIOS設置界面(有的品牌的RAID 卡有其特定的進入命令或方式,如IBM公司的SERVER RAID便是同時鍵入Ctrl+I才能夠進入BIOS設置界面)。

  在FastTrak66的BIOS的設置界面中,1—6的熱健分別對應自動設置、查看設備關聯、定義陣列、刪除陣列、重建陣列和控制器設置等六項功能。如果用戶選擇第三個選項定義陣列,接着就會出現定義磁盤陣列的操作圖面。用戶此時可以在第一行上敲回車,然後就可以進入陣列一(Array 1)的設置。此時,您這臺機器上可以使用的硬盤都會列在下面的提示框中,用戶想要使用哪塊硬盤就把它的Assignment設置成Y即可。如果用RAID 0的話,就把RAID Mode設置成Stripe(區帶集);如果是1或1+0的話,就設置成Mirror或Span。然後設置一下RAID 0方式下分割的數據塊大小(1和1+0沒有此項設置)。最後別忘了按Ctrl+Y保存設置(如圖所示)。




                                                  

 


                                                                                     

  OK,至此IDE RAID 0的設置工作便已經基本完成,接下來要做的就是像普通硬盤一樣分區、格式化了(這個步驟就不需要筆者再一一詳解了吧)。當然,如果用戶還希望使用RAID 0的硬盤啓動的話,只需要在BIOS裏面設置成從SCSI啓動便可。沒錯,就是SCSI啓動,因爲FastTrak66卡此時已經把做過RAID 0的硬盤映射成爲一個新的SCSI設備,這樣一來用戶就無法設置成從C啓動了。不過,除了主板的BIOS以外,其它的應用程序還是會把其當作一塊普通硬盤正常使用的。

  現在裝上WindowsNT4和中文第二版Windows98測試一下性能吧。利用ZDNet最新版本的權威評測軟件WinBench2001、WINSTONE 2001、Norton SystemWorks2001工具箱裏的Notron System Information 等,讀者您不難發現,工作在RAID 0傳輸模式下的硬盤在傳輸率方面絕對可以較大優勢勝出,而且其速度基本可以達到普通硬盤連接方式的傳輸率的兩倍甚至更高。如果現在有人問您:又想馬兒跑得快,又不想餵馬兒來吃草,可有什麼好辦法?現在您就可以自豪地說,何以解憂,唯有RAID。

軟RAID篇

  除了使用RAID卡或者主板所帶的芯片實現磁盤陣列外,我們在一些操作系統中可以直接利用軟件方式實現RAID功能,例如Windows 2000/XP中就內置了RAID功能。

  在瞭解Windows 2000/XP的軟件RAID功能之前,我們首先來看看Windows 2000中的一項功能——動態磁盤管理。

  動態磁盤與基本磁盤相比,不再採用以前的分區方式,而是叫卷集,它的作用其實和分區相一致,但是具有以下區別:

  1.可以任意更改磁盤容量

  動態磁盤在不重新啓動計算機的情況下可更改磁盤容量大小,而且不會丟失數據,而基本磁盤如果要改變分區容量就會丟失全部數據(當然也有一些特殊的磁盤工具軟件可以改變分區而不會破壞數據,如PQMagic等)。

  2.磁盤空間的限制

  動態磁盤可被擴展到磁盤中不連續的磁盤空間,還可以創建跨磁盤的卷集,將幾個磁盤合爲一個大卷集。而基本磁盤的分區必須是同一磁盤上的連續空間,分區的最大容量當然也就是磁盤的容量。

  3.卷集或分區個數

  動態磁盤在一個磁盤上可創建的卷集個數沒有限制,相對的基本磁盤在一個磁盤上最多隻能分4個區,而且使用DOS或Windows 9X時只能分一個主分區和擴展分區。

  *這裏一定要注意,動態磁盤只能在Windows NT/2000/XP系統中使用,其他的操作系統無法識別動態磁盤。

  因爲大部分用戶的磁盤都是基本磁盤類型,爲了使用軟件RAID功能,我們必須將其轉換爲動態磁盤:控制面板→管理工具→計算機管理→磁盤管理,在查看菜單中將其中的一個窗口切換爲磁盤列表。這時我們就可以通過右鍵菜單將選擇磁盤轉換爲動態磁盤。

  在劃分動態卷時會可以看到這樣幾個類型的動態卷。

  1.簡單卷:包含單一磁盤上的磁盤空間,和分區功能一樣。(當系統中有兩個或兩個以上的動態磁盤並且兩個磁盤上都有未分配的空間時,我們能夠選擇如下的兩種分卷方式)

  2.跨區卷:跨區卷將來自多個磁盤的未分配空間合併到一個邏輯卷中。

  3.帶區卷:組合多個(2到32個)磁盤上的未分配空間到一個卷。 (如果如上所述系統中的兩個動態磁盤容量一致時,我們會看到另一個分區方式)

  4.鏡像卷:單一卷兩份相同的拷貝,每一份在一個硬盤上。即我們常說的RAID 1。

  當我們擁有三個或三個以上的動態磁盤時,我們就可以使用更加複雜的RAID方式——RAID 5,此時在分卷界面中會出現新的分卷形式。

  5.RAID 5卷:相當於帶奇偶校驗的帶區卷,即RAID 5方式。

  對於大部分的個人電腦用戶來說,構建RAID 0是最經濟實用的陣列形式,因此我們在這裏僅就軟件RAID 0的構建進行講解:

  要在Windows 2000/XP中使用軟件RAID 0,首先必須將準備納入陣列的磁盤轉換爲上文所述的動態磁盤(這裏要注意的是,Windows 2000/XP的默認磁盤管理界面中不能轉換基本磁盤和動態磁盤,請參考上文中的描述),我們在這裏嘗試使用分區的條帶化,這也正是軟件RAID和使用RAID芯片構建磁盤陣列的區別。

  我們選取了一個29GB的分區進行劃分帶區卷,在劃分帶區卷區時,系統會要求一個對應的分區,也就是說這時其他的動態磁盤上必須要有同樣29GB或更大的未分配空間,帶區卷分配完成後,兩個同樣大小的分卷將被系統合併,此時我們的格式化等操作也是同時在兩個磁盤上進行。

  在構建RAID 0完成後,我們決定測試其硬盤傳輸率以確定這種軟件RAID對性能的提升程度,我們構建軟件RAID的平臺和前文中的硬件RAID平臺並不相同,爲了保證CPU的性能以確保我們軟件RAID的實現,我們採用了較高端的系統:Athlon XP 1700+,三星 256MB DDR內存,華碩A7V266-E主板,由於軟件RAID對硬盤規格的要求比較低,所以硬盤系統我們選用了不同規格的硬盤,希捷酷魚Ⅳ 60GB和西部數據1200BB 120GB兩塊硬盤。

  在傳輸曲線的後半段,我們很清楚地看到軟件RAID 0的硬盤傳輸率達到了60MB/s,完全超越了陣列中任意一個硬盤的傳輸率,RAID 0的優勢開始體現出來。對於追求高性能的用戶來說,這應該是他們夢寐以求的。

  這裏應該說明的是,在Linux環境下,我們同樣可以利用Raidtools工具來實現軟件RAID功能。這個工具可以製作軟RAID 0、RAID 1、RAID 4、RAID 5等多種磁盤陣列。在使用Raidtools之前,首先要確定目前正在使用的Linux核心是否支持Md。如果你正在使用的核心是2.0.X,並且不是自己編譯過,大多數情況下支持軟RAID。如果不能確定,則需要自己編譯核心。

  雖然RAID功能可以給我們帶來更好的速度體驗和數據安全性,但是應該指出的是,現在市面上的大部分廉價IDE-RAID解決方案本質上仍然是“半軟”的RAID,只是將RAID控制信息集成在RAID芯片當中,因此其CPU佔用率比較大,而且性能並不是非常穩定。這也是在高端系統中軟件RAID 0的性能有時可以超過“硬件”RAID 0方案的原因。

  對於用戶來說,高性能的IDE-RAID存儲系統,或者需要比較強勁的CPU運算能力,或者需要比較昂貴的RAID卡,因此,磁盤陣列仍然應該算是比較高端的應用。不過對於初級用戶來說,使用簡單而廉價的磁盤陣列來提高計算機數據的可用性或提升一下存儲速度也是相當不錯的選擇,當然其性能還遠不能和高端系統相比。

  總之,我們看到越來越多的RAID架構出現在市場上,尤其是在中低端市場上,越來越普及的廉價IDE-RAID方案與硬盤價格的不斷下降互相照應,似乎也在預示着未來個人數據存儲的發展趨勢,讓我們拭目以待吧。

   RAID問答篇

  個人用戶在組建RAID即磁盤陣列的過程中,應該注意什麼問題呢?

  1.問:我應該選擇怎樣的RAID解決方案,帶RAID功能的主板?RAID控制卡?還是軟件RAID?

  答:其實RAID解決方案只有高端和低端之分,對於絕大部分的廉價RAID解決方案來講,其構架中都不包含運算部分,因此對CPU的依賴性比較強,低速的CPU很難勝任這種工作,當然,對於較新的CPU如PⅢ、新賽揚、雷鳥、毒龍等來說,這種運算完全可以承受,但是爲了保證RAID系統的穩定運行,並且爲了避免RAID拖累系統性能,我們強烈建議用戶使用主頻1GHz以上的CPU。

  至於是選擇RAID卡還是購買帶集成RAID功能的主板,則要依據用戶的需求而定,一般來說,使用RAID卡能得到比較穩定的性能,但是會佔用一個寶貴的擴展槽,而且成本較高;如果是正在準備升級主板或新裝機的用戶,集成RAID芯片的主板則是以最低成本實現RAID功能的首選。

  2.問:我使用了RAID系統,但是並沒有感覺到速度有明顯的提升,這是爲什麼?

  答:對於RAID系統有數種標準,對於RAID 1、RAID 5等標準的磁盤陣列,主要追求數據的可靠性,所以儘管是並行存儲,但由於需要對數據進行校驗,所以它們的寫性能會受到一些影響,對於普通用戶來說,會感到速度提升並不明顯。當然,對於一些需要大量讀取的應用,它們的優勢還是比較大的。

  3.問:我使用了RAID 0標準的磁盤陣列方式,我聽說這樣會導致數據非常不安全,我是不是應該使用RAID 0+1方式?

  答:對於普通用戶而言,RAID 0的安全性還是可以承受的,但對於重要數據而言,RAID 0顯然是比較危險的方式,並且RAID 0陣列中的磁盤數量越多,出現問題的機率越大。由於RAID 0使用分割數據的方式且沒有冗餘,一旦某塊磁盤失效,將會對所有數據造成毀滅性的打擊,相對的,其他RAID方式均提供了冗餘盤(或數據塊)用來備份或者恢復數據。因此我們建議用戶不要在RAID 0陣列中存儲重要數據或在其上安裝系統,因爲進行大量臨時交換文件的存儲和交換纔是RAID 0真正的優勢所在。

  4.問:我有兩塊規格並不一致的硬盤,我能不能使用RAID?效果怎樣?

  答:可以使用RAID 0方式,但是要注意的是,這樣構建的RAID 0,總容量將是較小的磁盤的容量×磁盤總數,因此可能會造成一些資源的浪費。當然電腦如果擁有比較強勁的運算能力並且使用Windows 2000/XP操作系統,使用軟件RAID就可以避免這種損失,詳情請參看本篇內的“動態磁盤”相關介紹。

  5.問:使用RAID和使用SCSI硬盤有什麼不同,哪一種性價比更好?

  答:我們這裏僅僅討論IDE-RAID,在通常情況下,SCSI能夠提供更好的穩定性和更快的速度,但是價格則是相當昂貴。一款7200轉的9.2GB/Ultra160 SCSI硬盤價格會高達1500元左右,相比之下,同樣價位的普通IDE硬盤容量會達到80GB以上。

  我們可以對比IDE-RAID和SCSI RAID,我們使用4塊邁拓(Maxtor)金鑽七代80GB硬盤組成RAID 0+1,選用支持ATA/133的HighPoint RocketRAID 404 RAID卡,這套系統的總價在8000元以下*,大約相當於某10 000轉73.4GB容量的SCSI硬盤,使用Ultra160 SCSI接口/4MB緩存,並且配備支持Ultra160的SCSI卡。

  當然,SCSI硬盤有着許多普通IDE硬盤無法比擬的優點,例如高傳輸率、低CPU佔用率和支持熱插拔等,但對個人用戶而言,它的性價比還是很低,我們不得不將目光繼續留在我們的IDE硬盤上。

  來源: http://www.xker.com/page/e2008/0601/53188.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章