文/賈海鵬 申瑩 寧華
RAID磁盤陣列異常處理
文/賈海鵬1申瑩2寧華1
RAID磁盤陣列技術作為一種高效、安全的存儲管理技術被廣泛應用。本文對RAID的技術優勢、級別分類及級別之間的性能差異進行深度分析,并根據多年的RAID管理經驗,給出各種RAID出現異常后的處理方案,方案簡單有效。
隨著網絡技術的發展,計算機的應用已滲透到各個領域,各行各業對數據存儲的可靠性、穩定性及讀寫速率的要求也越來越高。數據的安全顯得尤為重要,數據容錯機制也備受關注。
作為網絡存儲主流技術的磁盤陣列,它通過數據分布存儲、并行訪問以及信息冗余等技術,極大地擴大存儲容量,增強I/O請求處理能力、實現數據容錯,提高數據的可靠性。
RAID(Redundant Array of Independent Disks,獨立磁盤冗余陣列)是一種使用多磁盤驅動器來存儲信息的信息存儲系統,它可以使用多種不同的存儲技術來實現不同級別的冗余、錯誤恢復和數據保護功能。
一個磁盤陣列就是多個磁盤驅動器的集合。磁盤陣列有物理驅動器陣列與邏輯驅動器陣列之分。物理驅動器陣列可以被分開或組合成一個或多個邏輯驅動器陣列,邏輯驅動器陣列可以是一個硬盤,也可以是硬盤中的一個分區,邏輯驅動器陣列由可以在操作系統中看到的邏輯驅動器組成。
RAID控制器就是在物理和邏輯驅動器陣列中管理數據存取的功能部件。它的功能可以通過硬件實現,也可以通過軟件來完成。系統通過管理陣列中數據的存取,集中力量進行數據的運算處理,提高整個系統的性能。硬件RAID控制器一般用于處理大量數據的RAID模式。軟件RAID需要占用一定的CPU處理時間,當處理大量數據時,應該使用硬件RAID控制器。
通過RAID可以在一個或多個磁盤出現故障的情況下防止數據丟失,而對磁盤陣列的操作與單個硬盤一樣,由于把小容量的磁盤延伸虛擬成大容量的單一磁盤,用戶不必規劃數據在各磁盤的分布,它提高了磁盤空間的使用率,并使磁盤容量幾乎可作無限的延伸。由于存取數據時各個磁盤一起作存取的動作,所以存取更為快捷,大幅加快數據存取的時間。用RAID技術進行數據信息的存儲是一個符合服務器大容量硬盤、大量數據存儲、保護數據安全性、提高運行速度等綜合要求的信息數據存儲方案。

表1 RAID性能差異比較
廉價性
RAID技術設計的基本思想就是把多個相對便宜的硬盤組合起來,虛擬成為一個硬盤陣列組,使性能達到甚至超過一個同樣容量的專用硬盤,但是價格卻低很多。
擴展存儲性
多個硬盤組成更大的空間提供給服務器使用,并可高效恢復磁盤,保證數據的完整性。
提高吞吐量
多個磁盤驅動器同時傳輸數據,而這些磁盤驅動器在邏輯上又是一個磁盤驅動器,所以使用RAID可以達到單個磁盤驅動器幾倍、幾十倍甚至上百倍的速率,大幅提高存儲系統的數據吞吐量。
實現安全性
普通磁盤驅動器無法提供容錯功能,而RAID和容錯是建立在每個磁盤驅動器的硬件容錯功能上的,所以它提供更高的安全性。
現有的RAID已經比較成熟,成為一種工業標準,通常將組成磁盤陣列的不同方式稱為RAID級別。
隨著RAID技術的不斷發展,現在已擁有以RAID 0到RAID 7八種基本級別。另外,還有一些基本RAID級別的混合模式,如RAID 10、RAID 50、RAID 60等。
最為流行的是RAID 0、RAID 1、RAID 5、RAID 6四種,以及他們之間的混合模式,不同的級別意義和適用范圍有所不同。下面我們將分別介紹這四種級別,并以表格形式比較各種RAID級別的性能差異。
RAID 0
它的數據并不是保存在一塊硬盤上,而是分成數據塊保存在不同的驅動器上,在N個磁盤上并行讀寫,讀寫速度理論上將會是單個相同硬盤的N倍,因此數據吞吐量比較大,負載也較為平衡。但由于沒有數據冗余,它只是單純地提高性能。如果RAID 0陣列中的一個磁盤失效將直接影響到所有數據,所以它不適合應用于數據安全性高的場合。
RAID 1
通常被稱為RAID鏡像,是通過磁盤數據鏡像實現數據冗余,在成對的獨立磁盤上產生互為備份的數據,即所有數據都進行百分之百的備份。當原始數據繁忙時,可直接從鏡像磁盤上讀寫,而不需要重組失效數據。
對于使用RAID 1結構的設備來說,RAID控制器必須能夠同時對2個盤進行讀操作和對兩個鏡像盤進行寫操作。因為鏡像結構在一組盤出現問題時,可以使用鏡像,提高系統的容錯能力。每讀一次盤只能讀出一塊數據,也就是說數據塊傳送速率與單獨的盤的讀取速率相同,因為RAID 1的校驗十分完備,對系統的處理能力有很大的影響,適用于對安全性要求極高但容量要求不高的系統。
RAID 5
一種分布式奇偶校驗的獨立磁盤結構, 是目前應用最廣泛的RAID技術;也是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。它把數據和相對應的奇偶校驗信息存儲到組成RAID 5的各個磁盤上,并且奇偶校驗信息和相對應的數據分別存儲在不同磁盤上。它使用一種特殊算法,可以計算出任何一個區域校驗塊的存儲位置。這樣就可以確保對校驗塊的任何讀寫操作都會在所有RAID磁盤中均衡進行,從而消除產生瓶頸的可能。
由N塊硬盤構建的RAID 5陣列可以有N-1塊硬盤的容量,存儲空間利用率非常高。因為奇偶校驗碼在不同的磁盤上,所以提高了可靠性。它的讀效率很高,但是每一次寫操作,將產生4個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息,塊式的集體訪問效率不錯。當陣列中的1塊硬盤發生故障,系統可以使用保存在其它硬盤上的奇偶校驗信息恢復故障硬盤的數據,繼續進行正常工作,但整個系統的性能將大大降低。
RAID 6
RAID 6是在RAID 5基礎上,為了進一步加強數據保護而設計的一種RAID方式,實際上是一種擴展RAID 5級別。與RAID 5相比,它增加了第二個獨立的奇偶校驗信息塊,除了每個硬盤上都有同級數據XOR校驗區外,還有一個針對每個數據塊的XOR校驗區。兩個獨立的奇偶校驗系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。
RAID 6的數據冗余性能非常好。但是,由于增加了一個校驗,所以寫入的效率較RAID 5還差,并且損失了兩塊有效的存儲空間。表1對RAID 0、RAID 1、RAID 5、RAID 6性能進行比較。
RAID磁盤陣列出現異常的原因有很多,突然斷電、重構RAID、磁盤順序混亂、誤刪除、誤格式化、誤分區、病毒損壞、硬盤出現壞道或損壞等情況都可能導致RAID信息的異常。
網絡管理員可以在使用專業數據恢復軟件之前做一些常規的判斷與處理。先行關閉計算機的電源,檢查硬盤電源的連接,以及數據線是否與硬盤和RAID控制卡連接正常再重新開機。如果仍不能解決,可能是硬盤的故障,針對不同級別的RAID進行不同的處理。
RAID 0的異常處理。
不能簡單地使用一塊同規格的硬盤進行替換,因為RAID 0的數據是分布到每一塊磁盤上,如果任何一塊盤出現問題,數據就不會完整,從而導致RAID失效。所以硬盤必須按順序做好標號后從RAID控制器中取出來,作為單盤進行重組。再根據標號按順序依次從各個盤數據組成一個鏡像文件,得到完整數據。
RAID 1異常處理
RAID l中的兩塊硬盤互為鏡像。所有數據都是完全一樣的,所以直接就可以用一塊同規格的硬盤替換壞硬盤。
RAID 5、RAID 6異常處理

圖1 異常處理的流程
RAID 5機制支持一塊硬盤offline的情況下保證數據的正常訪問,而RAID 6能夠同時容忍兩塊硬盤offline,數據仍能正常訪問,只不過R A I D的性能將大大減弱,成為降級模式。在RAID 5/RAID 6機制容忍硬盤損壞的范圍內,及時發現并用同一規格的硬盤把壞盤進行替換,RAID將會自動重構,信息數據不受影響。如果硬盤損壞數量超出容忍范圍,陣列便會失效,我們可以通過RAID控制臺將失效的最后一塊硬盤force online(強制上線), 成功后,依次將損壞硬盤換掉;如果不成功就必須對數據進行重組。重組過程與RAID 0過程類似。RAID異常處理的流程見圖1。
(作者單位1為防空兵學院教育技術中心,2為防空兵學院干部處)