RAID磁盤陣列數(shù)據(jù)恢復(fù)簡(jiǎn)介
時(shí)間:2023年3月1日 20:3:35 點(diǎn)擊量:
1.為什么需要磁盤陣列?
如何增加磁盤的存取(access)速度,如何防止數(shù)據(jù)因磁盤的故障而失落及如何有效的利用磁盤空間,一直是電腦專業(yè)人員和用戶的困擾;而大容量磁盤的價(jià)格非常昂貴,對(duì)用戶形成很大的負(fù)擔(dān)。磁盤陣列技術(shù)的產(chǎn)生一舉解決了這些問題。
過去十幾年來,CPU的處理速度增加了五十倍有多,內(nèi)存(memory)的存取速度亦大幅增加,而數(shù)據(jù)儲(chǔ)存裝置--主要是磁盤(hard disk)--的存取速度只增加了三、四倍,形成電腦系統(tǒng)的瓶頸,拉低了電腦系統(tǒng)的整體性能(through put),若不能有效的提升磁盤的存取速度,CPU、內(nèi)存及磁盤間的不平衡將使CPU及內(nèi)存的改進(jìn)形成浪費(fèi)。
目前改進(jìn)磁盤存取速度的的方式主要有兩種。一是磁盤快取控制(disk cache controller),它將從磁盤讀取的數(shù)據(jù)存在快取內(nèi)存(cache memory)中以減少磁盤存取的次數(shù),數(shù)據(jù)的讀寫都在快取內(nèi)存中進(jìn)行,大幅增加存取的速度,如要讀取的數(shù)據(jù)不在快取內(nèi)存中,或要寫數(shù)據(jù)到磁盤時(shí),才做磁盤的存取動(dòng)作。這種方式在單工環(huán)境(single- tasking envioronment)如DOS之下,對(duì)大量數(shù)據(jù)的存取有很好的性能(量小且頻繁的存取則不然),但在多工(multi-tasking)環(huán)境之下(因?yàn)橐煌5淖鲾?shù)據(jù)交換(swapping) 的動(dòng)作)或數(shù)據(jù)庫(database)的存取(因?yàn)槊恳挥涗浂己苄?就不能顯示其性能。這種方式?jīng)]有任何安全保障。
其二是使用磁盤陣列的技術(shù)。磁盤陣列是把多個(gè)磁盤組成一個(gè)陣列,當(dāng)作單一磁盤使用,它將數(shù)據(jù)以分段(striping)的方式儲(chǔ)存在不同的磁盤中,存取數(shù)據(jù)時(shí),陣列中的相關(guān)磁盤一起動(dòng)作,大幅減低數(shù)據(jù)的存取時(shí)間,同時(shí)有更佳的空間利用率。磁盤陣列所利用的不同的技術(shù),稱為RAID level,不同的level針對(duì)不同的系統(tǒng)及應(yīng)用,以解決數(shù)據(jù)安全
的問題。
一般高性能的磁盤陣列都是以硬件的形式來達(dá)成,進(jìn)一步的把磁盤快取控制及磁盤陣列結(jié)合在一個(gè)控制器(RAID controler或控制卡上,針對(duì)不同的用戶解決人們對(duì)磁盤輸出入系統(tǒng)的四大要求:
(1)增加存取速度,
(2)容錯(cuò)(fault tolerance),即安全性
(3)有效的利用磁盤空間;
(4)盡量的平衡CPU,內(nèi)存及磁盤的性能差異,提高電腦的整體工作性能。
2.磁盤陣列原理
磁盤陣列中針對(duì)不同的應(yīng)用使用的不同技術(shù),稱為RAID level,RAID是Redundent Array of Inexpensive Disks的縮寫,而每一level代表一種技術(shù),目前業(yè)界公認(rèn)的標(biāo)準(zhǔn)是RAID 0~RAID 5。這個(gè)level并不代表技術(shù)的高低,level 5并不高于level 3,level 1也不低過level 4,至于要選擇那一種RAID level的產(chǎn)品,純視用戶的操作環(huán)境(operating environment)及應(yīng)用(application)而定,與level的高低沒有必然的關(guān)系。
RAID 0及RAID 1適用于PC及PC相關(guān)的系統(tǒng)如小型的網(wǎng)絡(luò)服務(wù)器(network server)及需要高磁盤容量與快速磁盤存取的工作站等,比較便宜;RAID 3及RAID 4適用于大型電腦及影像、CAD/CAM等處理;RAID 5多用于OLTP(在線事務(wù)處理),因有金融機(jī)構(gòu)及大型數(shù)據(jù)處理中心的迫切需要,故使用較多而較有名氣, RAID 2較少使用,其他如RAID 6,RAID 7,乃至RAID 10等,都是廠商各做各的,并無一致的標(biāo)準(zhǔn),在此不作說明。介紹各個(gè)RAID level之前, 先看看形成磁盤陣列的兩個(gè)基本技術(shù):
磁盤延伸(Disk Spanning):
譯為磁盤延伸,能確切的表示disk spanning這種技術(shù)的含義。如圖磁盤陣列控制器, 聯(lián)接了四個(gè)磁盤,這四個(gè)磁盤形成一個(gè)陣列(array),而磁盤陣列的控制器(RAID controller)是將此四個(gè)磁盤視為單一的磁盤,如DOS環(huán)境下的C:盤。這是disk spanning的意義,因?yàn)榘研∪萘康拇疟P延伸為大容量的單一磁盤,用戶不必規(guī)劃數(shù)據(jù)在各磁盤的分布,而且提高了磁盤空間的使用率。并使磁盤容量幾乎可作無限的延伸;而各個(gè)磁盤一起作取存的動(dòng)作,比單一磁盤更為快捷。很明顯的,有此陣列的形成而產(chǎn)生RAID的各種技術(shù)。
磁盤或數(shù)據(jù)分段(Disk Striping or Data Striping):
因?yàn)榇疟P陣列是將同一陣列的多個(gè)磁盤視為單一的虛擬磁盤(virtual disk),所以其數(shù)據(jù)是以分段(block or segment)的方式順序存放在磁盤陣列中,數(shù)據(jù)按需要分段,從第一個(gè)磁盤開始放,放到最後一個(gè)磁盤再回到第一個(gè)磁盤放起,直到數(shù)據(jù)分布完畢。至于分段的大小視系統(tǒng)而定,有的系統(tǒng)或以1KB最有效率,或以4KB,或以6KB,甚至是4MB或8MB的,但除非數(shù)據(jù)小于一個(gè)扇區(qū)(sector,即521bytes),否則其分段應(yīng)是512byte的倍數(shù)。因?yàn)榇疟P的讀寫是以一個(gè)扇區(qū)為單位,若數(shù)據(jù)小于512bytes,系統(tǒng)讀取該扇區(qū)后,還要做組合或分組(視讀或?qū)懚?的動(dòng)作,浪費(fèi)時(shí)間。從上圖我們可以看出,數(shù)據(jù)以分段于在不同的磁盤,整個(gè)陣列的各個(gè)磁盤可同時(shí)作讀寫,故數(shù)據(jù)分段使數(shù)據(jù)的存取有最好的效率,理論上本來讀一個(gè)包含四個(gè)分段的數(shù)據(jù)所需要的時(shí)間約=(磁盤的access time+數(shù)據(jù)的tranfer time)X4次,現(xiàn)在只要一次就可以完成。