RAID磁盤陣介紹及RAID5數據恢復

RAID磁盤陣介紹及RAID5數據恢復

軟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提高了系統可靠性,但對數據傳輸的並行性解決不好,而且控制器的設計也相當困難。
雖然複雜的raid 系統有着特定的結構保護你的數據,但由於誤操作和硬件故障引起的數據丟失還是頻繁地發 生。大多數raid用戶看重的就是 raid的容錯功能, 然而很多誤導宣傳也使用戶誤以爲raid是不容易出故障或出 現故障時raid本身有處理容錯的應變機制,所以沒有認真地作備份, 因而忽視了raid潛在危險,所以每當raid故障時都是一場大的災難。
raid系統在出現故障是如果處理得當,在大多數情況下數據都是可以恢復的。在這裏向大家介紹一種raid的數據恢復方法。爲此我先介紹兩個非常好用的工具軟件,它們是 runtime software公司的getdataback 和raid reconstructor, 其中 getdataback 用於恢復數據,raid reconstructor 用於恢復 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 個磁盤也能重新計算出原來的數據。
使用raid reconstructor的三個簡單的步驟:
規定 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 ,但可以保留一個空的驅動器
分析 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”. 這樣就把我們選擇的參數拷貝到主屏幕。
拷貝 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).

單擊 拷貝 "copy". 現在開始重構raid:
 
我們把這個raid鏡像拷貝到另一個硬盤或陣列上,就能直接通過操作系統存取這個設備上的文件,這樣RAID數據恢復就成功了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章