RAID5資料恢復及RAID磁碟陣介紹?

RAID磁碟陣列:軟RAID(software-based RAID)是基於軟體的RAID。它可能是最普遍的被使用的RAID陣列,這是由於現在的很多伺服器作業系統都集成了RAID功能。比如 Microsoft Windows NT, Windows 2000, Windows 2003, Novell Netware 和 Linux。

軟體RAID集成於作業系統,有比較低的始投資,但是它的CPU佔用率非常高,並且只有非常有限的陣列操作功能。由於軟體RAID是在作業系統下實現RAID,軟RAID不能保護系統盤。亦即系統分割槽不能參與實現RAID。有些作業系統,RAID的配置資訊存在系統資訊中,而不是存在硬碟上;當系統崩潰,需重新安裝時,RAID的資訊也會丟失。尤其是軟體RAID 5是CPU的增強方式,會導致30%-40%I/O功能的降低, 所以不建議使用軟體RAID在增強的處理器伺服器中。

硬RAID(這裡只討論基於匯流排的RAID)是由內建RAID功能的主機匯流排介面卡(Host bus adapter)控制,直接連線到伺服器的系統總線上的。

匯流排RAID具有較軟RAID更多的功能但是又不會顯著的增加總擁有成本。這樣可以極大節省伺服器系統CPU和作業系統的資源。從而使網路伺服器的效能獲得很大的提高。

支援很多先進功能如:熱插拔,熱備盤,SAF-TE,陣列管理,等等。

並且其價格價格相對較低。它的缺點是要佔用PCI匯流排頻寬,所以PCI I/O 可能變成陣列速度的瓶頸,HostRAID 是一種把初級的RAID功能附加給SCSI或者SATA卡而產生的產品。它是基於硬和軟RAID之間的一種產品。它把軟體RAID功能整合到了產品的韌體上,從而提高了產品的功能和容錯能力。它可以支援RAID 0和RAID 1。

一.RAID定義

RAID(Redundant Array of Independent Disk 獨立冗餘磁碟陣列)技術是加州大學伯克利分校1987年提出,最初是為了組合小的廉價磁碟來代替大的昂貴磁碟,同時希望磁碟失效時不會使對資料的訪問受損失而開發出一定水平的資料保護技術。RAID就是一種由多塊廉價磁碟構成的冗餘陣列,在作業系統下是作為一個獨立的大型儲存裝置出現。RAID可以充分發揮出多塊硬碟的優勢,可以提升硬碟速度,增大容量,提供容錯功能夠確保資料安全性,易於管理的優點,在任何一塊硬碟出現問題的情況下都可以繼續工作,不會受到損壞硬碟的影響。

二、RAID的幾種工作模式

1、RAID0

即Data Stripping資料分條技術。RAID 0可以把多塊硬碟連成一個容量更大的硬碟群,可以提高磁碟的效能和吞吐量。RAID 0沒有冗餘或錯誤修復能力,成本低,要求至少兩個磁碟,一般只是在那些對資料安全性要求不高的情況下才被使用。

(1)、RAID 0最簡單方式

就是把x塊同樣的硬碟用硬體的形式通過智慧磁碟控制器或用作業系統中的磁碟驅動程式以軟體的方式串聯在一起,形成一個獨立的邏輯驅動器,容量是單獨硬碟的x倍,在電腦資料寫時被依次寫入到各磁碟中,當一塊磁碟的空間用盡時,資料就會被自動寫入到下一塊磁碟中,它的好處是可以增加磁碟的容量。速度與其中任何一塊磁碟的速度相同,如果其中的任何一塊磁碟出現故障,整個系統將會受到破壞,可靠性是單獨使用一塊硬碟的1/n。

(2)、RAID 0的另一方式

是用n塊硬碟選擇合理的帶區大小建立帶區集,最好是為每一塊硬碟都配備一個專門的磁碟控制器,在電腦資料讀寫時同時向n塊磁碟讀寫資料,速度提升n倍。提高系統的效能。

2、RAID 1

RAID 1稱為磁碟映象:把一個磁碟的資料映象到另一個磁碟上,在不影響效能情況下最大限度的保證系統的可靠性和可修復性上,具有很高的資料冗餘能力,但磁碟利用率為50%,故成本最高,多用在儲存關鍵性的重要資料的場合。RAID 1有以下特點:

(1)、RAID 1的每一個磁碟都具有一個對應的映象盤,任何時候資料都同步映象,系統可以從一組映象盤中的任何一個磁碟讀取資料。

(2)、磁碟所能使用的空間只有磁碟容量總和的一半,系統成本高。

(3)、只要系統中任何一對映象盤中至少有一塊磁碟可以使用,甚至可以在一半數量的硬碟出現問題時系統都可以正常執行。

(4)、出現硬碟故障的RAID系統不再可靠,應當及時的更換損壞的硬碟,否則剩餘的映象盤也出現問題,那麼整個系統就會崩潰。

(5)、更換新盤後原有資料會需要很長時間同步映象,外界對資料的訪問不會受到影響,只是這時整個系統的效能有所下降。

(6)、RAID 1磁碟控制器的負載相當大,用多個磁碟控制器可以提高資料的安全性和可用性。

3、RAID0+1

把RAID0和RAID1技術結合起來,資料除分佈在多個盤上外,每個盤都有其物理映象盤,提供全冗餘能力,允許一個以下磁碟故障,而不影響資料可用性,並具有快速讀/寫能力。RAID0+1要在磁碟映象中建立帶區集至少4個硬碟。

4、RAID2

電腦在寫入資料時在一個磁碟上儲存資料的各個位,同時把一個數據不同的位運算得到的海明校驗碼儲存另一組磁碟上,由於海明碼可以在資料發生錯誤的情況下將錯誤校正,以保證輸出的正確。但海明碼使用資料冗餘技術,使得輸出資料的速率取決於驅動器組中速度最慢的磁碟。RAID2控制器的設計簡單。

5、RAID3:帶奇偶校驗碼的並行傳送

RAID 3使用一個專門的磁碟存放所有的校驗資料,而在剩餘的磁碟中建立帶區集分散資料的讀寫操作。當一個完好的RAID 3系統中讀取資料,只需要在資料儲存盤中找到相應的資料塊進行讀取操作即可。但當向RAID 3寫入資料時,必須計算與該資料塊同處一個帶區的所有資料塊的校驗值,並將新值重新寫入到校驗塊中,這樣無形雖增加系統開銷。當一塊磁碟失效時,該磁碟上的所有資料塊必須使用校驗資訊重新建立,如果所要讀取的資料塊正好位於已經損壞的磁碟,則必須同時讀取同一帶區中的所有其它資料塊,並根據校驗值重建丟失的資料,這使系統減慢。當更換了損壞的磁碟後,系統必須一個數據塊一個數據塊的重建壞盤中的資料,整個系統的效能會受到嚴重的影響。RAID 3最大不足是校驗盤很容易成為整個系統的瓶頸,對於經常大量寫入操作的應用會導致整個RAID系統性能的下降。RAID 3適合用於資料庫和WEB伺服器等。

6、 RAID4

RAID4即帶奇偶校驗碼的獨立磁碟結構,RAID4和RAID3很象,它對資料的訪問是按資料塊進行的,也就是按磁碟進行的,每次是一個盤,RAID4的特點和RAID3也挺象,不過在失敗恢復時,它的難度可要比RAID3大得多了,控制器的設計難度也要大許多,而且訪問資料的效率不怎麼好。

7、 RAID5

RAID 5把校驗塊分散到所有的資料盤中。RAID 5使用了一種特殊的演算法,可以計算出任何一個帶區校驗塊的存放位置。這樣就可以確保任何對校驗塊進行的讀寫操作都會在所有的RAID磁碟中進行均衡,從而消除了產生瓶頸的可能。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。RAID 5提高了系統可靠性,但對資料傳輸的並行性解決不好,而且控制器的設計也相當困難。

三、RAID5資料恢復

雖然複雜的raid 系統有著特定的結構保護你的資料,但由於誤操作和硬體故障引起的資料丟失還是頻繁地發 生。大多數raid使用者看重的就是 raid的容錯功能, 然而很多誤導宣傳也使使用者誤以為raid是不容易出故障或出 現故障時raid本身有處理容錯的應變機制,所以沒有認真地作備份, 因而忽視了raid潛在危險,所以每當raid故障時都是一場大的災難。
raid系統在出現故障是如果處理得當,在大多數情況下資料都是可以恢復的。在這裡向大家介紹一種raid的資料恢復方法。為此我先介紹兩個非常好用的工具軟體,它們是 runtime software公司的getdataback 和raid reconstructor, 其中 getdataback 用於恢復資料,raid reconstructor 用於恢復 raid 5的磁碟陣列。

raid 5 磁碟陣列的資料的方法

下面我就向大家介紹一種恢復 raid 5 磁碟陣列的資料的方法。

我們以一個只有3 塊硬碟的 raid 5陣列為例。

下面是raid reconstructor 的使用者介面:

runtime 的 raid reconstructor 幫助我們從損壞的raid 5 陣列中恢復資料. 即使我們不知道 raid 引數,比如磁碟次序, 塊大小和旋轉方向, raid reconstructor 能自動分析和確定正確的值,然後使我們能夠重新構造一個raid 映象檔案或物理驅動器的拷貝。一旦我們建立了一個映象檔案, 就可以使用 runtime 的getdataback或其它資料恢復軟體進行處理. 如果我們把這個映象建立在一個物理驅動器上, 我們既可以用資料恢復軟體處理它,也有可能直接從它上面啟動系統。
因為 raid 5 冗餘性, 如果原陣列裡的磁碟數為n ,raid reconstructor 通過n-1 個磁碟也能重新計算出原來的資料。

RAID5資料恢復及RAID磁碟陣介紹

使用raid reconstructor的三個簡單的步驟:

(1)規定 raid 陣列的組合
輸入原始 raid 5 陣列的硬碟數.然後我們輸入raid的每個物理硬碟或硬碟映象檔案。如果你使用物理硬碟名,這些硬碟必須是可以訪問的。我們可以使用映象檔案代替物理硬碟,這個映象檔案可以是runtime的 getdataback 或diskexplorer建立。

注意:如果在物理驅動器上有壞扇區, 建立磁碟的映象檔案將是我們的首選方法。

如果我們不知道raid 引數, 保留這個值, 不改變塊長度和奇偶校驗的旋轉方向。

例如 raid 5陣列由3塊硬碟組成, 掛在我們的計算機上作為獨立的物理硬碟hd130:, hd131:, hd132:
又例如: raid 5陣列由3個映象檔案組成, 它預先建立在我們的邏輯驅動器 e 上: drive1.img, drive2.img,

drive3.img.
我們也可以混合選擇物理硬碟和映象檔案.
單擊 "open drives" 選擇的每個硬碟或映象的容量會顯示在右邊,同時raid 的總容量將顯示在下面:

注意: 我們輸入的硬碟個數可以小於陣列的長度. 在這個例子中 #drives 仍然是 3 ,但可以保留一個空的驅動器

(2)分析 raid 結構,確定正確的磁碟次序、塊大小和旋轉方向.

如果我們知道正確的引數, 則把它們直接填寫在輸入框裡就可以了, 並可以跳過分析. 否則單擊 "analyze".

這時螢幕上會彈出一個視窗,讓我們選擇一些測試組合。我們可以參考raid 控制器的設定手動改變某些選項。大多數值已經用預設方式選擇了。如果需要,我們可以輸入多個定製的塊長度. 但塊的長度必須 2 的冪數如: (16, 32, 64,...). "number of sectors to probe" 確定動態測試多少扇區,預設是100000, 但如果需要的話你可以根據塊的大小增加這個值,例如, 500000 或 1000000.
單 擊 "next". 根據硬碟個數、檢查條件組合數和測試的扇區數,測試分析時間可能從幾秒鐘到數小時。當分析完成後將生成下面的列表:
最有可能的引數組合列在該表的前端,通常我們都選擇推薦的第一項.在上述例子裡我們看見每種可能的排列都有3 行顯示資料, 它們代表的意思如下:
硬碟次序 (drive order),可能的情況是 (1-2-3), (1-3-2), (2-1-3), (2-3-1), (3-1-2) 或 (3-2-1), 共有 6 種可能的組合.

塊長度 (block size)選擇了 4 種可能的組合16, 32, 64 或 128.奇偶校驗塊的旋轉方向(parity rotations to probe):有向前(forward)、向後(backward) 2種情況。所以在列表上一共列出了48 (6*4*2) 種可能的組合。如果結果資料有意義, 每個組合都將被檢測. 每個檢測都有一個平均值,這個值叫 "entropy"(平均值). 著個值越小表示越接近正確的 raid 引數值。
"os:" 的值在 0—5 之間, 1到4 代表的意義如下:

os:1) 扇區 63 有一個 boot 記錄標記 (xaa55).

os:2) 扇區 63 是一個合法的 ntfs、 fat32 或 fat16 boot 扇區.

os:3) ntfs: 第一個 mft 項被成功裝入, fat: 找到fat1.

os:4) ntfs: 前16 個mft項被成功裝入, fat: 發現fat2 , 並且 fat2 的第一個扇區和 fat1 的一個扇區相同.選擇上面描述的項(最有可能的是第一項)並單擊 完成“finish”. 這樣就把我們選擇的引數拷貝到主螢幕。

(3)拷貝 raid

現在我們就準備把raid 拷貝到另一個映象檔案或另一個驅動器上,當然目標裝置必須有足夠的空間來容納這個raid。
在目的 "target" 框中輸入要拷貝得檔名和路徑. 它可以是物理驅動器名(如"hd132:"), 也可以是映象檔名(如e:\raid.img").在預設的情況下普通映象檔案的副檔名是".img",壓縮映象檔案的副檔名是".imc". 如果我們在 "multi file" 選擇框中打勾, 則映象檔案就會被分割成若干個檔案, 每個650 mb. 這對某些系統(例如 windows 98/95)來說是必要的, 因為它們不支援超大檔案。

其它選項:
奇偶校驗檢查(verify by parity): 拷貝時用奇偶校驗塊對raid的每個帶區塊進行完整性檢查。增加額外扇區(append extra sectors):當物理驅動器的容量大於映象檔案的長度時, 有可能要選擇此項, 這時會把物理驅動器的所有柱面填充滿。這是要模擬整個驅動器,便於以後某些資料恢復軟體能夠對它進行處理(如getdataback).

RAID5資料恢復及RAID磁碟陣介紹

RAID5資料恢復及RAID磁碟陣介紹

單擊 拷貝 "copy". 現在開始重構raid:
我們把這個raid映象拷貝到另一個硬碟或陣列上,就能直接通過作業系統存取這個裝置上的檔案,這樣RAID資料恢復就成功了。

系統, 資料, 功能, 磁碟, 硬碟,
相關問題答案