天天看點

RAID磁盤陣列資料恢複

 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次,現在隻要一次就可以完成。

文章來源:http://www.datahf.net     編輯:北亞資料恢複中心