茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1672369 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00025.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

硬體園地 : [分享]磁牒陣列(RAID)常見故障與技巧

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]磁牒陣列(RAID)常見故障與技巧
磁牒陣列(RAID)常見故障與技巧

磁牒陣列(Disk Array)原理
-------------------------------

1.為什麼需要磁牒陣列?

如何增加磁牒的存取(access)速度,如何防止資料因磁牒的故障而失落及如何有效的利用磁牒空間,一直是電腦專業人員和用戶的困擾;而大容量磁牒的價格非常昂貴,對用戶形成很大的負擔。磁牒陣列技術的產生一舉解決了這些問題。

過去十幾年來,CPU的處理速度增加了五十倍有多,記憶體(memory)的存取速度亦大幅增加,而資料儲存裝置--主要是磁牒(hard disk)--的存取速度只增加了三、四倍,形成電腦系統的瓶頸,拉低了電腦系統的整體性能(through put),若不能有效的提升磁牒的存取速度,CPU、記憶體及磁牒間的不平衡將使CPU及記憶體的改進形成浪費。

目前改進磁牒存取速度的的方式主要有兩種。一是磁牒快取控制(disk cache controller),它將從磁牒讀取的資料存在快取記憶體(cache memory)中以減少磁牒存取的次數,資料的讀寫都在快取記憶體中進行,大幅增加存取的速度,如要讀取的資料不在快取記憶體中,或要寫資料到磁牒時,才做磁牒的存取動作。這種方式在單工環境(single- tasking envioronment)如DOS之下,對大量資料的存取有很好的性能(量小且頻繁的存取則不然),但在多工(multi-tasking)環境之下(因為要不停的作資料交換(swapping) 的動作)或資料庫(database)的存取(因為每一記錄都很小)就不能顯示其性能。這種方式沒有任何安全保障。

其二是使用磁牒陣列的技術。磁牒陣列是把多個磁牒組成一個陣列,當作單一磁牒使用,它將資料以分段(striping)的方式儲存在不同的磁牒中,存取資料時,陣列中的相關磁牒一起動作,大幅減低資料的存取時間,同時有更佳的空間利用率。磁牒陣列所利用的不同的技術,稱為RAID level,不同的level針對不同的系統及應用,以解決資料安全的問題。

一般高性能的磁牒陣列都是以硬體的形式來達成,進一步的把磁牒快取控制及磁牒陣列結合在一個控制器(RAID controler或控制卡上,針對不同的用戶解決人們對磁牒輸出入系統的四大要求:
(1)增加存取速度,
(2)容錯(fault tolerance),即安全性
(3)有效的利用磁牒空間;
(4)盡量的平衡CPU,記憶體及磁牒的性能差異,提高電腦的整體工作性能。

2.磁牒陣列原理

磁牒陣列中針對不同的應用使用的不同技術,稱為RAID level,RAID是Redundent Array of Inexpensive Disks的縮寫,而每一level代表一種技術,目前業界公認的標準是RAID 0~RAID 5。這個level並不代表技術的高低,level 5並不高於level 3,level 1也不低過level 4,至於要選擇那一種RAID level的產品,純視用戶的操作環境(operating environment)及應用(application)而定,與level的高低沒有必然的關係。

RAID 0及RAID 1適用於PC及PC相關的系統如小型的網路伺服器(network server)及需要高磁牒容量與快速磁牒存取的工作站等,比較便宜;RAID 3及RAID 4適用於大型電腦及影像、CAD/CAM等處理;RAID 5多用於OLTP(在線事務處理),因有金融機構及大型資料處理中心的迫切需要,故使用較多而較有名氣,RAID 2較少使用,其他如RAID 6,RAID 7,乃至RAID 10等,都是廠商各做各的,並無一致的標準,在此不作說明。介紹各個RAID level之前, 先看看形成磁牒陣列的兩個基本技術:

磁牒延伸(Disk Spanning):

譯為磁牒延伸,能確切的表示disk spanning這種技術的含義。如圖磁牒陣列控制器, 聯接了四個磁牒,這四個磁牒形成一個陣列(array),而磁牒陣列的控制器(RAID controller)是將此四個磁牒視為單一的磁牒,如DOS環境下的C:盤。這是disk spanning的意義,因為把小容量的磁牒延伸為大容量的單一磁牒,用戶不必規劃資料在各磁牒的分佈,而且提高了磁牒空間的使用率。並使磁牒容量幾乎可作無限的延伸;而各個磁牒一起作取存的動作,比單一磁牒更為快捷。很明顯的,有此陣列的形成而產生RAID的各種技術。

磁牒或資料分段(Disk Striping or Data Striping):

因為磁牒陣列是將同一陣列的多個磁牒視為單一的虛擬磁牒(virtual disk),所以其資料是以分段(block or segment)的方式順序存放在磁牒陣列中,資料按需要分段,從第一個磁牒開始放,放到最後一個磁牒再回到第一個磁牒放起,直到資料分佈完畢。至於分段的大小視系統而定,有的系統或以1KB最有效率,或以4KB,或以6KB,甚至是4MB或8MB的,但除非資料小於一個扇區(sector,即521bytes),否則其分段應是512byte的倍數。因為磁牒的讀寫是以一個扇區為單位,若資料小於512bytes,系統讀取該扇區後,還要做組合或分組(視讀或寫而定)的動作,浪費時間。從上圖我們可以看出,資料以分段於在不同的磁牒,整個陣列的各個磁牒可同時作讀寫,故資料分段使資料的存取有最好的效率,理論上本來讀一個包含四個分段的資料所需要的時間約=(磁牒的access time+資料的tranfer time)X4次,現在只要一次就可以完成。

若以N表示磁牒的數目,R表示讀取,W表示寫入,S表示可使用空間,則資料分段的性能為:
R:N(可同時讀取所有磁牒)
W:N(可同時寫入所有磁牒)
S:N(可利用所有的磁牒,並有最佳的使用率)

Disk striping也稱為RAID 0,很多人以為RAID 0沒有甚麼,其實這是非常錯誤的觀念, 因為RAID 0使磁牒的輸出入有最高的效率。而磁牒陣列有更好效率的原因除資料分段外,它可以同時執行多個輸出入的要求,因為陣列中的每一個磁牒都能獨立動作,分段放在不同的磁牒,不同的磁牒可同時作讀寫,而且能在快取記憶體及磁牒作並行存取(parallel access)的動作,但只有硬體的磁牒陣列才有此性能表現。

從上面兩點我們可以看出,disk spanning定義了RAID的基本形式,提供了一個便宜、靈活、高性能的系統結構,而disk striping解決了資料的存取效率和磁牒的利用率問題,RAID 1至RAID 5是在此基礎上提供磁牒安全的方案。

RAID 1

RAID 1是使用磁牒鏡像(disk mirroring)的技術。磁牒鏡像應用在RAID 1之前就在很多系統中使用,它的方式是在工作磁牒(working disk)之外再加一額外的備份磁牒(backup disk),兩個磁牒所儲存的資料完全一樣,資料寫入工作磁牒的同時亦寫入備份磁牒。磁牒鏡像不見得就是RAID 1,如Novell Netware亦有提供磁牒鏡像的功能,但並不表示Netware有了RAID 1的功能。一般磁牒鏡像和RAID 1有二點最大的不同:

RAID 1無工作磁牒和備份磁牒之分,多個磁牒可同時動作而有重疊(overlaping)讀取的功能,甚至不同的鏡像磁牒可同時作寫入的動作,這是一種最佳化的方式,稱為負載平衡(load-balance)。例如有多個用戶在同一時間要讀取資料,系統能同時驅動互相鏡像的磁牒,同時讀取資料,以減輕系統的負載,增加I/O的性能。

RAID 1的磁牒是以磁牒延伸的方式形成陣列,而資料是以資料分段的方式作儲存,因而在讀取時,它幾乎和RAID 0有同樣的性能。從RAID的結構就可以很清楚的看出RAID 1和一般磁牒鏡像的不同。

下圖為RAID 1,每一筆資料都儲存兩份:
從圖可以看出:
R:N(可同時讀取所有磁牒)
W:N/2(同時寫入磁牒數)
S:N/2(利用率)

讀取資料時可用到所有的磁牒,充分發揮資料分段的優點;寫入資料時,因為有備份,所以要寫入兩個磁牒,其效率是N/2,磁牒空間的使用率也只有全部磁牒的一半。

很多人以為RAID 1要加一個額外的磁牒,形成浪費而不看好RAID 1,事實上磁牒越來越便宜,並不見得造成負擔,況且RAID 1有最好的容錯(fault tolerence)能力,其效率也是除RAID 0之外最好的。

在磁牒陣列的技術上,從RAID 1到RAID 5,不停機的意思表示在工作時如發生磁牒故障, 系統能持續工作而不停頓,仍然可作磁牒的存取,正常的讀寫資料;而容錯則表示即使磁牒故障,資料仍能保持完整,可讓系統存取到正確的資料,而SCSI的磁牒陣列更可在工作中抽換磁牒,並可自動重建故障磁牒的資料。磁牒陣列之所以能做到容錯及不停機, 是因為它有冗余的磁牒空間可資利用,這也就是Redundant的意義。

RAID 2

RAID 2是把資料分散為位(bit)或塊(block),加入海明碼Hamming Code,在磁牒陣列中作間隔寫入(interleaving)到每個磁牒中,而且地址(address)都一樣,也就是在各個磁牒中,其資料都在相同的磁道(cylinder or track)及扇區中。RAID 2的設計是使用共軸同步(spindle synchronize)的技術,存取資料時,整個磁牒陣列一起動作,在各作磁盤的相同位置作平行存取,所以有最好的存取時間(accesstime),其總線(bus)是特別的設計,以大帶寬(band wide)並行傳輸所存取的資料,所以有最好的傳輸時間(transfer time)。在大型檔案的存取應用,RAID 2有最好的性能,但如果檔案太小,會將其性能拉下來,因為磁牒的存取是以扇區為單位,而RAID 2的存取是所有磁牒平行動作,而且是作單位元的存取,故小於一個扇區的資料量會使其性能大打折扣。RAID 2是設計給需要連續且大量資料的電腦使用的,如大型電腦(mainframe to supercomputer)、作影像處理或CAD/CAM的工作站(workstation)等,並不適用於一般的多用戶環境、網路伺服器(network server),小型機或PC。

RAID 2的安全採用記憶體陣列(memory array)的技術,使用多個額外的磁牒作單位錯誤校正(single-bit correction)及雙位錯誤檢測(double-bit detection);至於需要多少個額外的磁牒,則視其所採用的方法及結構而定,例如八個資料磁牒的陣列可能需要三個額外的磁牒,有三十二個資料磁牒的高階陣列可能需要七個額外的磁牒。

RAID 3

RAID 3的資料儲存及存取方式都和RAID 2一樣,但在安全方面以奇偶校驗(parity check)取代海明碼做錯誤校正及檢測,所以只需要一個額外的校檢磁牒(parity disk)。奇偶校驗值的計算是以各個磁牒的相對應位作XOR的邏輯運算,然後將結果寫入奇偶校驗磁牒,任何資料的修改都要做奇偶校驗計算,如某一磁牒故障,換上新的磁牒後,整個磁牒陣列(包括奇偶校驗磁牒)需重新計算一次, 將故障磁牒的資料恢復並寫入新磁牒中;如奇偶校驗磁牒故障,則重新計算奇偶校驗值, 以達容錯的要求.

較之RAID 1及RAID 2,RAID 3有85%的磁牒空間利用率,其性能比RAID 2稍差,因為要做奇偶校驗計算;共軸同步的平行存取在讀檔案時有很好的性能,但在寫入時較慢,需要重新計算及修改奇偶校驗磁牒的內容。RAID 3和RAID 2有同樣的應用方式,適用大檔案及大量資料輸出入的應用,並不適用於PC及網路伺服器。

RAID 4

RAID 4也使用一個校驗磁牒,但和RAID 3不一樣

RAID 4是以扇區作資料分段,各磁牒相同位置的分段形成一個校驗磁牒分段(parity block),放在校驗磁牒。這種方式可在不同的磁牒平行執行不同的讀取命今,大幅提高磁牒陣列的讀取性能;但寫入資料時,因受限於校驗磁牒,同一時間只能作一次,啟動所有磁牒讀取資料形成同一校驗分段的所有資料分段,與要寫入的資料做好校驗計算再寫入。即使如此,小型檔案的寫入仍然比RAID 3要快,因其校驗計算較簡單而非作位(bit level)的計算;但校驗磁牒形成RAID 4的瓶頸,降低了性能,因有RAID 5而使得RAID 4較少使用。

RAID 5
RAID5避免了RAID 4的瓶頸,方法是不用校驗磁牒而將校驗資料以循環的方式放在每一個磁牒中,磁牒陣列的第一個磁牒分段是校驗值,第二個磁牒至後一個磁牒再折回第一個磁牒的分段是資料,然後第二個磁牒的分段是校驗值,從第三個磁牒再折回第二個磁牒的分段是資料,以此類推,直到放完為止。圖中的第一個parity block是由A0,A1...,B1,B2計算出來,第二個parity block是由B3,B4,...,C4,D0計算出來,也就是校驗值是由各磁牒同一位置的分段的資料所計算出來。這種方式能大幅增加小檔案的存取性能,不但可同時讀取,甚至有可能同時執行多個寫入的動作,如可寫入資料到磁牒1而其parity block在磁牒2,同時寫入資料到磁牒4而其parity block在磁牒1,這對聯機交易處理 (OLTP,On-Line Transaction Processing)如銀行系統、金融、股市等或大型資料庫的處理提供了最佳的解決方案(solution),因為這些應用的每一筆資料量小,磁牒輸出入頻繁而且必須容錯。

事實上RAID 5的性能並無如此理想,因為任何資料的修改,都要把同一parityblock的所有資料讀出來修改後,做完校驗計算再寫回去,也就是RMW cycle(Read-Modify-Write cycle,這個cycle沒有包括校驗計算);正因為牽一而動全身,所以:
R:N(可同時讀取所有磁牒)
W:1(可同時寫入磁牒數)
S:N-1(利用率)

RAID 5的控制比較複雜,尤其是利用硬體對磁牒陣列的控制,因為這種方式的應用比其他的RAID level要掌握更多的事情,有更多的輸出入需求,既要速度快,又要處理資料,計算校驗值,做錯誤校正等,所以價格較高;其應用最好是OLTP,至於用於圖像處理等, 不見得有最佳的性能。

2.磁牒陣列的額外容錯功能:Spare or Standby driver

事實上容錯功能已成為磁牒陣列最受青睞的特性,為了加強容錯的功能以及使系統在磁牒故障的情況下能迅速的重建資料,以維持系統的性能,一般的磁牒陣列系統都可使用熱備份(hot spare or hot standby driver)的功能,所謂熱備份是在建立(configure) 磁牒陣列系統的時候,將其中一磁牒指定為後備磁牒,此一磁牒在平常並不操作,但若陣列中某一磁牒發生故障時,磁牒陣列即以後備磁牒取代故障磁牒,並自動將故障磁牒的資料重建(rebuild)在後備磁牒之上,因為反應快速,加上快取記憶體減少了磁牒的存取, 所以資料重建很快即可完成,對系統的性能影響很小。對於要求不停機的大型資料處理中心或控制中心而言,熱備份更是一項重要的功能,因為可避免晚間或無人值守時發生磁牒故障所引起的種種不便。

另一個額外的容錯功能是壞扇區轉移(bad sector reassignment)。壞扇區是磁牒故障的主要原因,通常磁牒在讀寫時發生壞扇區的情況即表示此磁牒故障,不能再作讀寫,甚至有很多系統會因為不能完成讀寫的動作而當機,但若因為某一扇區的損壞而使工作不能完成或要更換磁牒,則使得系統性能大打折扣,而系統的維護成本也未免太高了。壞扇區轉移是當磁牒陣列系統發現磁牒有壞扇區時,以另一空白且無故障的扇區取代該扇區, 以延長磁牒的使用壽命,減少壞磁牒的發生率以及系統的維護成本。所以壞扇區轉移功能使磁牒陣列具有更好的容錯性,同時使整個系統有最好的成本效益比。其他如可外接電池備援磁牒陣列的快取記憶體,以避免突然斷電時資料尚未寫回磁牒而損失;或在RAID 1時作寫入一致性的檢查等,雖是小技術,但亦不可忽視。

3.硬體磁牒陣列還是軟體磁牒陣列

市面上有所謂硬體磁牒陣列與軟體磁牒陣列之分,因為軟體磁牒陣列是使用一塊SCSI卡與磁牒連接,一般用戶誤以為是硬體磁牒陣列。以上所述主要是針對硬體磁牒陣列,其與軟體磁牒陣列有幾個最大的區別:

l 一個完整的磁牒陣列硬體與系統相接。
l 內裝CPU,與主機並行運作,所有的I/O都在磁牒陣列中完成,減輕主機的工作負載, 增加系統整體性能。
l 有卓越的總線主控(bus mastering)及DMA(Direct Memory Access)能力,加速資料的存取及傳輸性能。
l 與快取記憶體結合在一起,不但增加資料的存取及傳輸性能,更因減少對磁牒的存取而增加磁牒的壽命。
l 能充份利用硬體的特性,反應快速。

軟體磁牒陣列是一個程序,在主機執行,透過一塊SCSI卡與磁牒相接形成陣列,它最大的優點是便宜,因為沒有硬體成本(包括研發、生產、維護等),而SCSI卡很便宜(亦有的軟體磁牒陣列使用指定的很貴的SCSI卡);它最大的缺點是使主機多了很多工作(process),增加了主機的負擔,尤其是輸出入需求量大的系統。目前市面上的磁牒陣列 系統大部份是硬體磁牒陣列,軟體磁牒陣列較少。

4.磁牒陣列卡還是磁牒陣列控制器

磁牒陣列控制卡一般用於小系統,供單機使用。與主機共用電源,在關閉主機電源時存在丟失快取中的資料的的危險。磁牒陣列控制卡只有常用總線方式的接頭,其驅動程序與主機、主機所用的操作系統都有關係,有軟、硬體相容性問題並潛在地增加了系統的不安定因素。在更換磁牒陣列卡時要冒磁牒損壞,資料失落,隨時停機的風險。

獨立式磁牒陣列控制一般用於較大型系統,可分為兩種:
單通道磁牒陣列和多通道式磁牒陣列,單通道磁牒陣列只能接一台主機,有很大的擴充限制。多通道磁牒陣列可接多個系統同時使用,以群集(cluster)的方式共用磁牒陣列,這使內接式陣列控制及單接式磁牒陣列無用武之地。目前多數獨立形式的磁牒陣列子系統,其本身與主機系統的硬體及操作環境?
--

首先,IDE的性能不會比SCSI更高的。特別是在多任務的情況下。一般廣告給出的是 最大傳送速度,並不是工作速度。同一時期的IDE與SCSI盤相比,主要是產量比較大, 電路比較簡單,所以價格比SCSI低很多,但要比性能,則差遠了。

RAID並沒有限制使用多少個盤,應時盤越多越好。對於SCSI結構的RAID來說,盤的最大數量與SCSI通道(SCSI總線)的數量有關一般是每個通道最多裝15個盤(SCSI/3)對於FC-AL(光纖)則是每個通道200個盤當然,要有這樣大的磁牒箱才行!

現在選擇IDE磁牒陣列卡(IDE RAID卡)來確保資料安全的人越來越多,如何正確使用IDE RAID卡也是個學問。下面我們就以採用HPT370A/372控制晶片的Rocket100 RAID卡為例來給大家做些講解常見故障與技巧。

  安裝需知

  先找一個空閒的PCI插槽將該卡插進去並將硬碟用硬碟線和該卡安裝連接好,安裝完適配卡後,在啟動電腦的過程中,你會看到該適配卡已成功安裝並被系統識別。而在系統開機時,其控制器的BIOS會顯示硬碟狀態的信息,按CTRL+H即可進入結構非常清楚的設置功能表,在這裡你可以設定磁牒陣列:兩個硬碟可以選擇條帶模式(RAID 0)和鏡像模式(RAID 1),有三塊硬碟的話只能選跨越擴充或條帶模式,而四塊就可以選跨越模式、條帶模式或條帶結合鏡像模式(RAID 0+1),而選用RAID 1的話硬碟必須進行同步化。

  常見安裝故障排除

  當Rocket100 RAID卡被識別後,板上BIOS開始檢測連接設備。請注意螢幕上出現的設備,如果所連接設備全部被正確掃瞄出,則說明設備已正確連接並被系統識別,再安裝好驅動之後你即可使用RAID功能了。而如果其中有的設備沒有被識別出,你可開啟機箱,將所連接設備的電源線是否插牢,必要時換一個電源插頭試一試;所連接設備的資料線是否正確連接並已插牢,必要時換一根資料線試一試;如果一根資料線上接有兩個設備,請確認這兩個設備的主從跳線是否設置衝突(一根資料線上的兩個設備必須為一主一從)。

  硬碟容量的選擇

  考慮到系統的操作性能及磁牒的利用率,我們建議你最好使同樣容量的硬碟。但你如果一定要用不同容量的磁牒,需要注意的是整個陣列的容量要由該陣列中最小容量的硬碟決定,例如在由3個磁牒組成的RAID 0陣列中,總容量等於最小磁牒的容量的3倍。在RAID 1陣列中,目標盤的容量不能小於源盤的容量。該陣列的總容量就等於最小磁牒的容量。但是JBOD是個例外,兩個或更多的不同容量的硬碟可以組合起來,形成一個邏輯單盤。

  BIOS設置須知

  IDE RAID卡是即插即用設備,所以,你不必改變系統CMOS。系統會自動指出中斷及端口的地址。而在CMOS設置中將所有設備處於none或unstalled狀態時,即可將IDE RAID卡設為啟動卡;或將SCSI設備調為啟動序列的第1位,也可將RAID卡設為啟動卡。

  RAID損壞了怎麼辦

  如果一個RAID級別被破壞了,可以按以下操作進行檢查:先電腦關機的電源,檢查硬碟電源的連接,以及資料線是否與硬碟和RAID控制卡連接正常再重新開機;如果以上操作仍不能解決問題,可能是硬碟的問題,對於RAID 1和RAID 0+1,可以用一個新的硬碟將已經被破壞的硬碟上的資料進行備份,所有的資料都不會丟失的。對於RAID 0和JBOD,必須先刪除原有的RAID級別,再進去行RAID新增,但要注意,此動作會使硬碟的所有資料丟失,所以,對RAID 0和JBOD,請務必經常對資料進行備份。
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[補充]別的網站看到的補充
RAID

在電腦發展的初期,「大容量」硬碟的價格還相當高,解決資料儲存安全性問題的主要方法是使用磁帶機等設備進行備份,這種方法雖然可以保證資料的安全,但查閱和備份工作都相當繁瑣。1987年, Patterson、Gibson和Katz這三位元工程師在加州大學伯克利分校發表了題為《A Case of Redundant Array of Inexpensive Disks(廉價磁碟冗余陣列方案)》的論文,其基本思想就是將多只容量較小的、相對廉價的硬碟進行有機組合,使其效能超過一隻昂貴的大硬碟。這一設計思想很快被接受,從此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公司。面向個人用戶的IDE-RAID晶片一般只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID規範的支援,雖然它們在技術上無法與商用系統相提並論,但是對普通用戶來說其提供的速度提升和安全保證已經足夠了。隨著硬碟接口傳輸率的不斷提高,IDE-RAID晶片也不斷地改朝換代,晶片市場上的主流晶片已經全部支援ATA 100標準,而HighPoint公司新推出的HPT 372晶片和Promise最新的PDC20276晶片,甚至已經可以支援ATA133標準的IDE硬碟。

  在主機板廠商競爭加劇、個人電腦用戶要求逐漸提高的今天,在主機板上內建RAID晶片的廠商已經不在少數,用戶完全可以不用購置RAID 卡,直接組建自己的磁碟陣列,感受磁碟狂飆的速度。

二、通過硬碟控制晶片實現IDE RAID的方法

  在RAID家族裡,RAID 0和RAID 1在個人電腦上應用最廣泛,畢竟願意使用4顆甚至更多的硬碟來構築RAID 0+1或其他硬碟陣列的個人用戶少 之又少,因此我們在這裡僅就這兩種RAID方式進行講解。

  做RAID自然少不了硬碟,RAID 0和RAID 1對磁碟的要求不一樣,RAID 1(Mirror)磁碟鏡像一般要求兩顆(或多顆)硬碟容量一致,而 RAID 0(Striping)磁碟一般沒有這個要求,當然,選用容量相似效能相近甚至完全一樣的硬碟比較理想。


三、用軟體體方法實現RAID

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

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

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

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

  動態磁碟在不重新啟動電腦的情況下可更改磁碟容量大小,而且不會遺失資料,而基本磁碟如果要改變分區容量就會遺失全部資料(當然也有一些特殊的磁碟工具軟體可以改變分區而不會破壞資料,如PowerQuest PartitionMagic等)。

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,首先必須將準備納入陣列的磁碟轉換為上文所述的動態磁碟(這裡要注意的是,Windows2000/XP 的預設磁碟管理界面中不能轉換基本磁碟和動態磁碟),我們在這裡嘗試使用分區的條帶化,這也正是軟體RAID和使用RAID晶片架構磁碟陣列的區別。我們選取了一個29GB的分區進行劃分帶區卷,在劃分帶區卷區時,系統會要求一個對應的分區,也就是說這時其他的動態磁碟上必須要有同樣29GB或更大的未分配空間,帶區卷分配完成後,兩個同樣大小的分卷將被系統合併,此時我們的格式化等操作也 是同時在兩個磁碟上進行。

  
這裡應該說明的是,在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即磁碟陣列的過程中,應該注意什麼問題呢?

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

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

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

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

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

 答:可以使用RAID 0方式,但是要注意的是,這樣架構的RAID 0,總容量將是較小的磁碟的容量 X 磁碟總數,因此可能會造成一些資源的浪費。當然電腦如果擁有比較強勁的運算能力並且使用Windows 2000/XP操作系統,使用軟體RAID就可以避免這種損失。
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[補充]別的網站看到的補充 - RAID 說明表
RAID 說明表
--------------------------------------------------------------------------------
【RAID 0 - 平行儲存】
RAID 0 提出以磁碟機陣列平行儲存資料的概念,它使用數顆硬碟平行儲存一份資料的不同 部份,一般的作法是將待儲存的資料以特定長度的區塊為單位加以分割,第一塊存放在陣列 的第一顆磁碟機,第二塊存放在陣列的第二顆磁碟機,餘依此類推,區塊的長度單位可能是 一個磁區、磁串(cluster)、磁軌、甚至一整個磁柱(cylinder)。

【RAID 1 - 磁碟機映射】
RAID 1 提出磁碟機映射(disk mirror)概念以保障資料,原始的提案是採用兩顆容量相同的磁碟 機儲存同一份資料,增加另一顆硬碟儲存相同的資料可保障其中一顆硬碟故障造成資料漏失 的風險,Windows NT 則允許使用者以相同容量的硬碟分割建立磁碟機映射,不須受限於整 顆硬碟容量的大小,如此可提高不同容量的硬碟在使用上的彈性,例如,用戶可購買較大容 量的硬碟,將其中的某個分割作為某顆硬碟的映射,另一個分割挪做它用。

【RAID 2 - 位元容錯平行儲存】
與 RAID 0 類似,RAID 2 也是以磁碟機陣列平行儲存資料,但不同於前者,RAID 2 分散至 各磁碟機的資料單位為位元,而非 RAID 0 的大區塊方式,意即,RAID 2 將資料的第一個位 元存放於陣列的第一顆磁碟機,第二個位元存放於陣列的第二顆磁碟機,餘依此類推,如此 同樣可提昇資料的存取效率,和 RAID 0 相較下,由於 RAID 2 是以位元為分散單位,所以 每此讀寫動作都將牽引陣列內所有的磁碟機同時讀寫。
RAID 2 也使用數部額外的磁碟機儲存錯誤修正碼(ECC)或同位(parity)檢查碼,以此提昇資料 的失誤容忍度,每增加一部這樣的磁碟機即表示該磁碟機陣列可容忍的磁碟機故障機數又增 加一部,錯誤修正碼的目的是當某部資料磁碟機發生故障時,尚可經過計算、由其它未故障 磁碟機的資料中還原出正確的資料內容,可還原的程度則視錯誤修正磁碟機個數佔全部磁碟 機數目的比例而定。
舉個簡單的例子,假設某磁碟機陣列內含 9 部磁碟機,其中一部儲存奇同位位元,另外 8 部 分別儲存資料位元組的第 0 至第 7 個位元值,奇同位位元值的計算方式是若對應的 8 個資料 位元值,有奇數個 1 ,則同位位元值即為 1 ,否則為 0 ,若當中負責儲存某資料位元的磁碟 機發生故障,則對於每個位元組,磁碟機控制卡尚可由其餘正常 7 個資料位元值與同位位元 值算出失去的那個位元值,例如,原本的某個資料位元組以二進位表示為 11101101,其中有 偶數個 1,所以其奇同位位元值為 0,若陣列中的第 5 部磁碟機發生故障,使得該位元組變 成 11?01101,其中已知的有 5 個 1,因為同位位元是 0,所以該失去的位元一定是 1。
除了奇同位之外,也有採用偶同位的,偶同位位元值的計算方式剛好與奇同位的相反,一般 隨機存取記憶體( RAM)的同位檢查(parity check)也是類似的原理。

【RAID 3 - 大單位容錯平行儲存】
RAID 3 與 RAID 0 、 2 相似,也是以磁碟機陣列平行儲存資料,但不同 RAID 2 的是, RAID 3 分散至各磁碟機的資料單位不限制在位元,它可以是位元組、或其它邏輯長度,其 中以位元組較常見,如此同樣可提昇資料的存取效率,由於是以位元或位元組等小量資料為 分散單位,所以每次讀寫動作都將牽引陣列內所有的磁碟機同時讀寫。
RAID 3 僅以一部專職磁碟機儲存錯誤修正碼或同位碼,所以這樣的磁碟機陣列可容忍一部 磁碟機出狀況。

【RAID 4 - 改良式容錯平行儲存】
RAID 0 的缺點是無錯誤修正資訊,RAID 2 及 RAID 3 的缺點是,無論資料量多寡,其每次 讀寫都將牽引陣列內所有的磁碟機同時動作,為令陣列內所有的磁碟機可同時各別進行不同 的讀寫,且還保有錯誤修正能力,RAID 4 集合 RAID 0 、 2 、 3 的優點,將分散於各磁碟機 的資料區塊長度提昇為作業系統層次的傳輸單位,如磁區或磁串,如此,每次寫入任一部磁 碟機的區塊長度即是一整個磁區或磁串,RAID 4 也另外設置一部專職的磁碟機儲存錯誤修 正資訊,基本上,我們可將 RAID 1 看成是 RAID 4 的一個特例。

【RAID 5 ─ 高效率容錯平行儲存】
和 RAID 4 類似,RAID 5 也將分散於各磁碟機的資料區塊長度限定在作業系統層次的傳輸單 位,如磁區或磁串,但與前者不同的是,RAID 5 不再將錯誤修正資訊存放於同一部磁碟機, 為改善 RAID 4 的缺點,RAID 5 將錯誤修正資訊連同資料區塊一併分散於磁碟機陣列中的各 個磁碟機,當欲寫入磁碟機陣列時,RAID 5 將資料區塊寫入一部磁碟機,同時更新另一部 磁碟機的錯誤修正資料,當其中任一部磁碟機出狀況時,失去的資料尚可由其它正常磁碟機 的資料計算得。
所以在多工環境下,若磁碟機陣列由 N 部磁碟機所組成,則 RAID 5 的設計允許最多 N 個工 作同時讀取該磁碟機陣列的不同資料區塊,在寫入方面,由於每次寫入動作須將資料及錯誤 修正碼分別寫入兩部磁碟機,因此最多允許 N / 2 個工作同時寫入不同的資料區塊,和 RAID 4 只允許一個工作同時寫入磁碟機陣列相較下,RAID 5 的確在寫入效率上改善不少。
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]RAID是什麼?

所謂的「RAID」,是「Redundant Array of Independent Disks 」的縮寫,也就是「獨立磁碟備援陣列」的意思。也有人將它說成「Redundant Array of Inexpensive Drives」﹙低價硬碟備援陣列﹚,當初RAID技術發表時用的是這個全名,不過現在則是前者的說法較多人採用。

其中「Redundant」是「過多、多餘」的意思,要組成一部磁碟機通常只需一顆硬碟,甚至一顆硬碟還能分割成許多磁碟區。但是在組RAID磁碟機時,要用上的硬碟比一顆還要「多」,也就是要用上2顆以上的硬碟。

因此RAID在實體上是多顆硬碟,在系統中被當作一顆硬碟使用,而在作業系統底下,也還是可以將它分割為單一或多個分割區。因此建立好的RAID,使用起來跟單一硬碟是完全相同的,只是依組成方式的不同,RAID可以提供更大的容量、更高的讀寫效能,或是額外的「安全性」。﹙這裡所說的「安全性」,是指硬碟損毀之後資料重建、回復的能力,與加密防駭等功能無關﹚

而且RAID的「容量、速度、安全性」加成之後的CP值,能夠遠遠高於相同效能表現的超高階硬碟,這才是許多玩家樂於採用的主因。RAID的組成方式很多,在進入我們的測試之前,先帶大家看看RAID的各種類別。

JBOD (Just Bunch of Disks)

這種組成方式嚴格來說不算RAID,因為它的功能就跟它的全名一樣,「只是將多顆磁碟湊在一起」, 當作一顆超大硬碟來用。假設是4顆250GB的大硬碟,在JBOD模式下就成了一顆1TB﹙=1000GB﹚的超高容量硬碟,但是除了容量提升之外,它的速度還是跟單一硬碟相同,也沒有額外的安全性。

RAID 0 (Striped)

這是最簡單也最猛的一種磁碟陣列,它的功能是在資料寫入時,將資料分割成幾個小區塊,分別存到各顆硬碟裡,因此可以提升寫入速度。當需要讀取時,再分別由所有硬碟裡將小區塊抓出來,所以也有較高的讀取速度。


但它的缺點是只要其中一顆硬碟壞掉,或只是小小的出點問題,都可能因為一小部分資料的不完整,就造成整個磁碟陣列無法正常讀取,全部的資料就這樣毀於一旦,完全沒有安全性可言。儘管如此,RAID 0存取效能隨著組成硬碟數目增加而提升的特性,對於「效能至上」的玩家們還是有不小的吸引力。

RAID 1 (Mirrored)

這種磁碟陣列是將單一磁碟作「鏡射」(Mirror)的動作,也就是資料寫入時將相同的資料同時丟進兩顆硬碟,確保所有的資料都隨時存在另一個備份。因為對單一硬碟寫入的資料量不變,所以寫入速度跟非RAID磁碟機沒有差別,不過在讀取時能同時由兩顆硬碟抓取資料,所以速度還是有所提升。

RAID 10 / 01 (Striped & Mirrored)

這是將RAID 0與RAID 1的架構作結合用的磁碟陣列,10與01的差別僅是先鏡射再分割資料,或是先分割再將資料鏡射到兩組硬碟,但功能是相同的,而且都需由4顆硬碟組成。這種組法同時具備效能提升與資料備份的優點,只要不是「同組鏡射」的兩顆硬碟同時毀損,資料都可以救得回來。

RAID 2.3.4

這幾種RAID一直都沒有成為主流,也很少有硬體支援這幾種組法。它們都是由RAID 0改良而來,RAID 2是以位元為單位將資料分割寫入,並加入位元檢查用的錯誤修正碼(ECC),並以「漢明碼」來作資料編碼,單一磁碟毀損時可以藉此將故障硬碟的所有資料還原回來。

RAID 3則是改用的方式作資料編碼,並獨立使用一顆硬碟來存放同位檢查用的資料。而RAID 4同樣是以「同位元檢查」編碼、獨立硬碟存放檢查碼,但是資料的分割改回用資料區塊為單位。這兩種方式都至少需要3顆硬碟。

RAID 5 (Parity RAID)

RAID 5是由RAID 2.3.4改良而來,終於成為比較普及的一種架構。 它先將原始資料與同位檢查位元作組合,再以位元為單位分散存放在所有硬碟中,因此不需多用一部硬碟來存放檢查碼。


但RAID 5實際上仍需一顆硬碟的容量來存放同位檢查碼,所以RAID整體的可用容量會等於總容量減去單顆硬碟容量,只是這個浪費的空間是分散在各顆硬碟中。

RAID 5因為是分散的存取架構,因此效能提升明顯,而且任何一顆硬碟毀損,都還可以救得回來。 雖有浪費一顆硬碟容量的缺點,但是跟RAID 10 / 01一半的容量浪費相比,RAID 5單顆容量換得的安全性可說是相當划算。

各種RAID架構比較表

RAID方案
硬碟數
可用容量
效能
安全性
主要應用
JBOD

大於2
全部
不變
幾乎等於0
容量至上
RAID 0
大於2
全部
最高
危險
追求效能的狂熱玩家

RAID 1
2
總容量的50%
稍有提升
最高
完全不能出錯的資料備份
RAID 0+1
4以上的偶數
總容量的50%
極高
同時需要備份和效能,且預算無上限
RAID 5
3以上
N-1顆
讀快寫慢
同RAID 0+1但預算限制
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]磁碟陣列 ( RAID ) 原理及各種RAID介紹

【教學】磁碟陣列 ( RAID ) 原理及各種RAID介紹

前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|