標籤:linux 檔案系統 raid
一、什麼是RAID
從上個世紀80年代起,主流的硬碟介面主要有兩類:
A.IDE:用於案頭系統
B.SCSI:用於工業系統(因為轉速高,平均巡道時間短,效能較IDE好)
SCSI的效能雖然優於IDE,但其成本約是IDE的五倍以上,故無法廣泛應用。人們為了節省成本的同時保持效能,於是設計出了一種方案,即將很多廉價的IDE裝置聯合起來,當做一塊硬碟使用。這種將多塊廉價IDE裝置並行聯合使用的模式就是RAID——廉價冗餘磁碟陣列(Redundent Array ofInexpensive Disk)。
RAID能夠讓多塊廉價的硬碟並行工作,在一定程度上提供了高效、可靠的特點。但它需要在IDE控制器之上再提供一種邏輯更高的控制器,這種控制器即為RAID控制器。IDE裝置雖然廉價,但是RAID控制器本身非常昂貴,且RAID模式所提供的可靠性不足以滿足人們的需要,所以後來在工業層級的應用上,人們將SCSI聯合起來組成了RAID,這種RAID得到了更廣泛的應用。此時RAID廉價的特性已經不明顯了,於是其含義變成了:RedundentArray of Independent Disk——獨立冗餘磁碟陣列。當讓無論RAID的名稱如何變化,它體現的思想都是一致的,即將底層的物理磁碟在更高層次的架構上組織起來,使它們能像一塊完整的物理裝置那樣工作。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/3F/wKioL1Pk5mDRG9I0AABDa5dX6s4735.png" title="Capture.PNG" alt="wKioL1Pk5mDRG9I0AABDa5dX6s4735.png" />
在沒有RADI之前,每一個單獨的裝置,其控制器是直接連接到主板的匯流排上的,這個控制器可以和CPU及其他裝置進行通訊;而有了RAID層級的概念之後,需要在原有控制器之上附加一個更進階別的總控制器,該控制器會對其他低層級的控制器進行集中控制,然後再串連到記憶體、CPU或其他裝置的匯流排上。
在沒有使用RAID之前,CUP會將每一個裝置識別為一個單獨的個體,而有了RAID之後,CPU會認為這幾個裝置是一個整體,即由RAID控制器抽象出來的裝置。對RAID的管理,就是對總控制器(RAID的晶片)的管理,這個晶片可能是內嵌在主板上的,也可能是個獨立的卡片——適配器,通過PCI-E的插槽串連到一個存放裝置上,該存放裝置稱為DAS裝置(直接附加存放裝置)。
二、RAID的層級
RAID的目的主要有兩個方面:
A、高效能:所謂高效能指的是讀寫效能,有的情境要求讀效能高,有的情境要求寫效能高,還有一些情境需要同時兼顧讀寫的效能
B、可靠性(冗餘):頻繁的讀寫操作容易損壞磁碟,可靠性就意味著即使某一塊磁碟壞掉了,也不會影響資料的使用(有備份硬碟),這種概念即為冗餘。
為了滿足不同高效能和可靠性的需求,RAID提供了不同的層級,而區分不同RAID層級的方式,就是在RAID後面加上不同的數字,即從Raid0,Raid1,...Raid7這8種;而後來隨著RAID的進一步發展,產生了不同的RAID層級的組合方式,即Raid10,Raid50等等。
RAID的層級本身沒有高低上下之分,也就意味著Raid1並不會優於Raid0,它們只是用來描述多塊磁碟的組合方式。下面來逐一介紹不同RAID層級的組合方式:
(1)Raid0
Raid0也稱為條帶裝置,即將多塊裝置並聯起來提供高效能的方式。RAID0以條帶的形式將資料均勻分布在陣列的各個磁碟上,D0、D1...個資料區塊並不是指的Block,資料區塊要大得多。每個資料區塊會按照順序分別儲存到對應的硬碟資料區塊上,故在RAID0上儲存資料,是將資料平均分布到磁碟上,從而實現了並行存取,因此(讀寫)效能得到了極大的提升。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/3F/wKiom1Pk5a6jVvCMAAHqmdTBPPs152.jpg" title="1.png" alt="wKiom1Pk5a6jVvCMAAHqmdTBPPs152.jpg" />
RAID0的特性
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/3F/wKioL1Pk5zyj4KCxAABOI74ZrkM515.png" title="2.PNG" alt="wKioL1Pk5zyj4KCxAABOI74ZrkM515.png" />
(2)Raid1
Raid1也稱為鏡像,鏡像顧名思義就是將一份資料存放區多份,以鏡像為冗餘方式,對虛擬磁碟上的資料做多份拷貝,放在成員磁碟上。如果一塊物理磁碟壞了,另一塊還能繼續提供服務。對於Raid1來說,它仍然需要將資料切割為資料區塊。對於鏡像裝置來說,兩個或多個磁碟上的位(扇區),都是一一對應的。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/3F/wKioL1Pk54Kzjf0MAADh6csH7lY925.jpg" title="3.png" alt="wKioL1Pk54Kzjf0MAADh6csH7lY925.jpg" />
如果其中一塊磁碟壞掉了,將由另一塊磁碟繼續提供服務;為了防止備份磁碟也壞掉,就需要馬上將已經壞掉的磁碟用一塊好的新盤替換掉,而當新磁碟替換上來後,它會馬上和正在工作的磁碟做一次同步(Sync),即和原有磁碟建立對應關係,並將原有磁碟上的資料按位複製過來。所以做鏡像服務的磁碟,需要時時監控。現在有很多RAID1提供熱備份,即在鏡像磁碟之外還有一塊熱備份磁碟,時時監控正在工作的鏡像磁碟,一旦發現其中任何一塊磁碟壞了,就自動頂替上來,從而保證可靠性。
RAID1的特性
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/40/wKioL1Pk58STXg24AABMoWXKa9I259.png" title="4.PNG" alt="wKioL1Pk58STXg24AABMoWXKa9I259.png" />
(3)Raid2
Raid0效能高,但沒有可靠性;Raid1提供了可靠性,但是犧牲了部分效能,因此為了兼顧效能和可靠,出現了Raid2。Raid2採用校正冗餘:
1. 把資料分散為位或塊,加入漢明碼,間隔寫入到磁碟陣列的每個磁碟中。它採用異或運算(兩者相同為假,不同為真,可以用來還原資料),假設一個磁碟塊上存的是1,另一個磁碟塊上存的是0,那麼其中一塊壞了,可以根據好磁碟上的資料,和異或結果推斷出壞磁碟上的資料。Raid2就是通過3塊硬碟來實現校正冗餘。
2. 在成員磁碟上的地址都一樣
3. 採用了並行存取方式
4. 花費大,成本昂貴
Raid2在實際中使用不多。
(4)Raid3
在RAID3中,資料區塊再次分割為更小的塊並行傳輸到各個成員磁碟上,同時計算異或校正資料,存放到專用的校正磁碟上,它和RAID2差距並不大,其儲存方式比較複雜,使用也不多。
RAID3的特性
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/3F/wKiom1Pk5xPSmsTcAABUs-exJzk283.png" title="5.PNG" alt="wKiom1Pk5xPSmsTcAABUs-exJzk283.png" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/3F/wKiom1Pk5zXCZohNAAHBBChkvTM311.jpg" title="6.png" alt="wKiom1Pk5zXCZohNAAHBBChkvTM311.jpg" />
(5)Raid4
在Raid4中,資料被分為更大的塊,並行傳輸到各個成員磁碟上,同時計算異或校正資料,存放到專用的校正磁碟上。RAID4採用獨立存取方式,將條帶由RAID3的小資料區塊改為更大的資料區塊,這是RAID4和RAID3最大的不同。
RAID4的校正較為迅速,可以獲得相對於RAID3更高的讀取速度,但寫入速度極差,控制器的設計更加複雜,故也不常用。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/40/wKioL1Pk6NfTj3UvAAIUtyXbhA0563.jpg" title="7.png" alt="wKioL1Pk6NfTj3UvAAIUtyXbhA0563.jpg" />
(6)Raid5
RAID5採用獨立存取的陣列方式,校正資訊被均勻的分散到陣列的各個磁碟上,沒有哪一塊磁碟是專門用來存放校正資訊的,所以單個校正資料不會成為輸送量的瓶頸。因此RAID5融合了RAID4的優點,同時避免了RAID4的缺陷,使用較為廣泛。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/3F/wKiom1Pk5_TAqsGnAAJOLbvUhrs876.jpg" title="8.png" alt="wKiom1Pk5_TAqsGnAAJOLbvUhrs876.jpg" />RAID5的特性
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/40/wKioL1Pk6UOD5eB7AABH4F_bwqA256.png" title="9.PNG" alt="wKioL1Pk6UOD5eB7AABH4F_bwqA256.png" />
(7)Raid6
RAID6是指帶有兩種分布儲存的檢驗資訊的磁碟陣列,它是對RAID5的擴充,主要是用於要求資料絕對不能出錯的場合,使用了二種同位方法,需要N+2個磁碟。
常用的RAID6技術:
A. RAID6 P+Q:根據公式計算出P和Q的值,當有兩個資料同時丟失時,仍可以計算出原資料
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/45/3F/wKiom1Pk6GaCg8DbAABRxihiMnQ123.png" title="10.PNG" alt="wKiom1Pk6GaCg8DbAABRxihiMnQ123.png" /> B. RAID6 DP:DP中的DP指Double Parity,它在RAID4的基礎上不僅有行的校正,還增加了一個用來存放斜向校正資訊的磁碟
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/3F/wKiom1Pk6LOiJpWpAABLmb6mBZU551.png" title="11.PNG" alt="wKiom1Pk6LOiJpWpAABLmb6mBZU551.png" />
(8)Raid7
RAID7是一種新的RAID標準,它與以前見到的RAID層級有明顯的區別,可以理解成一個獨立的“儲存電腦”。RAID7自身帶有智能化即時作業系統和用於儲存管理的軟體工具,可以完全獨立與主機運行,不佔用主機CPU資源。
本文出自 “重劍無鋒 大巧不工” 部落格,請務必保留此出處http://wuyelan.blog.51cto.com/6118147/1537647