close
在電腦發展的初期,“大容量”硬碟的價格還相當高,解決資料存儲安全性問題的主要方法是使用磁帶機等設備進行備份,這種方法雖然可以保證資料的安全,但查閱和備份工作都相當繁瑣。1987年, Patterson、Gibson和Katz這三位工程師在加州大學伯克利分校發表了題為《A Case of Redundant Array of Inexpensive Disks(廉價磁片冗餘陣列方案)》的論文,其基本思想就是將多隻容量較小的、相對廉價的硬碟驅動器進行有機組合,使其性能超過一隻昂貴的大硬碟。這一設計思想很快被接受,從此RAID技術得到了廣泛應用,資料存儲進入了更快速、更安全、更廉價的新時代。 
  磁碟陣列對於個人電腦使用者,還是比較陌生和神秘的。印象中的磁碟陣列似乎還停留在這樣的場景中:在寬闊的大廳裡,林立的磁片櫃,數名表情陰鬱、早早謝頂的工程師徘徊在其中,不斷從中抽出一塊塊沉重的硬碟,再插入一塊塊似乎更加沉重的硬碟……終於,隨著大容量硬碟的價格不斷降低,個人電腦的性能不斷提升,IDE-RAID作為磁片性能改善的最廉價解決方案,開始走入一般使用者的電腦系統。
一、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”的功能,修改設定後是不可逆轉的.
arrow
arrow
    全站熱搜

    Felix 發表在 痞客邦 留言(0) 人氣()