在計算機發展的初期,「大容量」硬盤的價格還至關高,解決數據存儲安全性問題的主要方法是使用磁帶機等設備進行備份,這種方法雖然能夠保證數據的安全,但查閱和備份工做都至關繁瑣。1987年, Patterson、Gibson和Katz這三位工程師在加州大學伯克利分校發表了題爲《A Case of Redundant Array of Inexpensive Disks(廉價磁盤冗餘陣列[被屏蔽廣告]方案)》的論文,其基本思想就是將多隻容量較小的、相對廉價的硬盤驅動器進行有機組合,使其性能超過一隻昂貴的大硬盤。這一設計思想很快被接受,今後RAID技術獲得了普遍應用,數據存儲進入了更快速、更安全、更廉價的新時代。 磁盤陣列對於我的電腦用戶,仍是比較陌生和神祕的。印象中的磁盤陣列彷佛還停留在這樣的場景中:在寬闊的大廳裏,林立的磁盤櫃,數名錶情陰鬱、早早謝頂的工程師徘徊在其中,不斷從中抽出一塊塊沉重的硬盤,再插入一塊塊彷佛更加沉重的硬盤……終於,隨着大容量硬盤的價格不斷下降,我的電腦的性能不斷提高,IDE-RAID做爲磁盤性能改善的最廉價解決方案,開始走入通常用戶的計算機系統。 1、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、一、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的IDE三、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 一、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驅動→關機將源盤和鏡像盤接在IDE三、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是透明不影響任何操做的,咱們就像使用一塊硬盤同樣。 3、用軟件方法實現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 一、RAID 四、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」的功能,修改設置後是不可逆