磁盤陣列(Redundant Arrays of Independent Disks,RAID)
簡介
磁盤陣列(Redundant Arrays of Independent Disks,RAID),由加利福尼亞大學伯克利分校(University of California-Berkeley)在1988年,發(fā)表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。文章中,談到了RAID這個詞匯,而且定義了RAID的5層級。伯克利大學研究目的是反映當時CPU快速的性能。CPU效能每年大約成長30~50%,而硬磁機只能成長約7%。研究小組希望能找出一種新的技術,在短期內(nèi),立即提升效能來平衡計算機的運算能力。在當時,柏克萊研究小組的主要研究目的是效能與成本。
另外,研究小組也設計出容錯(fault-tolerance),邏輯數(shù)據(jù)備份(logical data redundancy),而產(chǎn)生了RAID理論。研究初期,便宜(Inexpensive)的磁盤也是主要的重點,但后來發(fā)現(xiàn),大量便宜磁盤組合并不能適用于現(xiàn)實的生產(chǎn)環(huán)境,后來Inexpensive被改為independent,許多獨立的磁盤組。
獨立磁盤冗余陣列(RAID,redundant array of independent disks)是把相同的數(shù)據(jù)存儲在多個硬盤的不同的地方(因此,冗余地)的方法。通過把數(shù)據(jù)放在多個硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能。因為多個硬盤增加了平均故障間隔時間(MTBF),儲存冗余數(shù)據(jù)也增加了容錯。
分類
利用軟件仿真的方式,是指通過網(wǎng)絡操作系統(tǒng)自身提供的磁盤管理功能將連接的普通SCSI卡上的多塊硬盤配置成邏輯盤,組成陣列。軟件陣列可以提供數(shù)據(jù)冗余功能,但是磁盤子系統(tǒng)的性能會有所降低,有的降低幅度還比較大,達30%左右。因此會拖累機器的速度,不適合大數(shù)據(jù)流量的服務器。
原理
在應用中,有部分常用的數(shù)據(jù)是需要經(jīng)常讀取的,磁盤陣列根據(jù)內(nèi)部的算法,查找出這些經(jīng)常讀取的數(shù)據(jù),存儲在緩存中,加快主機讀取這些數(shù)據(jù)的速度,而對于其他緩存中沒有的數(shù)據(jù),主機要讀取,則由陣列從磁盤上直接讀取傳輸給主機。對于主機寫入的數(shù)據(jù),只寫在緩存中,主機可以立即完成寫操作。然后由緩存再慢慢寫入磁盤。