簡單描述RAID層級:RAID 0 是倆盤一起讀寫,如果一個壞了那麼資料全丟失;RAID 1是一塊寫,一塊用來備份,壞一塊無所謂;RAID 2 ,3 ,4 不常用;最常用的就是RAID 5和RAID 6 ,RAID 5允許壞一塊盤,但是最少需要三塊盤來做,做出來的容量是N-1的容量(相當於一塊用來寫校正資訊);RAID 6允許壞2塊盤,但是最少需要四塊盤,容量是N-2(相當於倆盤校正);一、RAID技術規範簡介 RAID技術主要包含RAID 0~RAID 7等數個規範,它們的側重點各不相同,常見的規範有如下幾種: RAID 0:RAID 0連續以位或位元組為單位分割資料,並行讀/寫於多個磁碟上,因此具有很高的資料轉送率,但它沒有資料冗餘,因此並不能算是真正的RAID結構。RAID 0隻是單純地提高效能,並沒有為資料的可靠性提供保證,而且其中的一個磁碟失效將影響到所有資料。因此,RAID 0不能應用於資料安全性要求高的場合。 RAID 1:它是通過磁碟資料鏡像實現資料冗餘,在成對的獨立磁碟上產生互 為備份的資料。當未經處理資料繁忙時,可直接從鏡像拷貝中讀取資料,因此RAID 1可以提高讀取效能。RAID 1是磁碟陣列中單位成本最高的,但提供了很高的資料安全性和可用性。當一個磁碟失效時,系統可以自動切換到鏡像磁碟上讀寫,而不需要重組失效的資料。 RAID 0+1: 也被稱為RAID 10標準,實際是將RAID 0和RAID 1標準結合的產物,在連續地以位或位元組為單位分割資料並且並行讀/寫多個磁碟的同時,為每一塊磁碟作磁碟鏡像進行冗餘。它的優點是同時擁有RAID 0的超凡速度和RAID 1的資料高可靠性,但是CPU佔用率同樣也更高,而且磁碟的利用率比較低。 RAID 2:將資料條塊化地分佈於不同的硬碟上,條塊單位為位或位元組,並使用稱為“加重平均錯誤修正碼(海明碼)”的編碼技術來提供錯誤檢查及恢複。這種編碼技術需要多個磁碟存放檢查及恢複資訊,使得RAID 2技術實施更複雜,因此在商業環境中很少使用。 RAID 3:它同RAID 2非常類似,都是將資料條塊化分佈於不同的硬碟上,區別在於RAID 3使用簡單的同位,並用單塊磁碟存放同位資訊。如果一塊磁碟失效,奇偶盤及其他資料盤可以重新產生資料;如果奇偶盤失效則不影響資料使用。RAID 3對於大量的連續資料可提供很好的傳輸率,但對於隨機資料來說,奇偶盤會成為寫操作的瓶頸。 RAID 4:RAID 4同樣也將資料條塊化並分佈於不同的磁碟上,但條塊單位為塊或記錄。RAID 4使用一塊磁碟作為同位盤,每次寫操作都需要訪問奇偶盤,這時同位盤會成為寫操作的瓶頸,因此RAID 4在商業環境中也很少使用。 RAID 5:RAID 5不單獨指定的奇偶盤,而是在所有磁碟上交叉地存取資料及同位資訊。在RAID 5上,讀/寫指標可同時對陣列裝置進行操作,提供了更高的資料流量。RAID 5更適合於小資料區塊和隨機讀寫的資料。RAID 3與RAID 5相比,最主要的區別在於RAID 3每進行一次資料轉送就需涉及到所有的陣列盤;而對於RAID 5來說,大部分資料轉送只對一塊磁碟操作,並可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作將產生四個實際的讀/寫操作,其中兩次讀舊的資料及奇偶資訊,兩次寫新的資料及奇偶資訊。 RAID 6:與RAID 5相比,RAID 6增加了第二個獨立的同位資訊塊。兩個獨立的奇偶系統使用不同的演算法,資料的可靠性非常高,即使兩塊磁碟同時失效也不會影響資料的使用。但RAID 6需要分配給同位資訊更大的磁碟空間,相對於RAID 5有更大的“寫損失”,因此“寫效能”非常差。較差的效能和複雜的實施方式使得RAID 6很少得到實際應用。 RAID 7:這是一種新的RAID標準,其自身帶有智能化即時作業系統和用於儲存管理的軟體工具,可完全獨立於主機運行,不佔用主機CPU資源。RAID 7可以看作是一種儲存電腦(Storage Computer),它與其他RAID標準有明顯區別。除了以上的各種標準(如表1),我們可以如RAID 0+1那樣結合多種RAID規範來構築所需的RAID陣列,例如RAID 5+3(RAID 53)就是一種應用較為廣泛的陣列形式。使用者一般可以通過靈活配置磁碟陣列來獲得更加符合其要求的磁碟儲存系統。 開始時RAID方案主要針對SCSI硬碟系統,系統成本比較昂貴。1993年,HighPoint公司推出了第一款IDE-RAID控制晶片,能夠利用相對廉價的IDE硬碟來組建RAID系統,從而大大降低了RAID的“門檻”。從此,個人使用者也開始關注這項技術,因為硬碟是現代個人電腦中發展最為“緩慢”和最缺少安全性的裝置,而使用者儲存在其中的資料卻常常遠超電腦的本身價格。在花費相對較少的情況下,RAID技術可以使個人使用者也享受到成倍的磁碟速度提升和更高的資料安全性,現在個人電腦市場上的IDE-RAID控制晶片主要出自HighPoint和Promise公司,此外還有一部分來自AMI公司(如表2)。 面向個人使用者的IDE-RAID晶片一般只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID規範的支援,雖然它們在技術上無法與商用系統相提並論,但是對普通使用者來說其提供的速度提升和安全保證已經足夠了。隨著硬碟介面傳輸率的不斷提高,IDE-RAID晶片也不斷地更新換代,晶片市場上的主流晶片已經全部支援ATA 100標準,而HighPoint公司新推出的HPT 372晶片和Promise最新的PDC20276晶片,甚至已經可以支援ATA 133標準的IDE硬碟。在主板廠商競爭加劇、個人電腦使用者要求逐漸提高的今天,在主板上板載RAID晶片的廠商已經不在少數,使用者完全可以不用購置RAID卡,直接組建自己的磁碟陣列,感受磁碟狂飆的速度 二.通過硬體控制晶片實現IDE 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晶片提供對Windows98/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功能,例如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方案與硬碟價格的不斷下降互相照應,似乎也在預示著未來個人資料存放區的發展趨勢,讓我們拭目以待吧 HighPoint 370 BIOS沒有提供類似“Exit Without Save”的功能,修改設定後是無法復原轉的.