【廣告】
磁盤陣列
獨(dú)立磁盤冗余陣列是把相同的數(shù)據(jù)存儲在多個(gè)硬盤的不同的地方的方法。通過把數(shù)據(jù)放在多個(gè)硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能。因?yàn)槎鄠€(gè)硬盤增加了平均故障間隔時(shí)間(MTBF),儲存冗余數(shù)據(jù)也增加了容錯(cuò)。 由加利福尼亞大學(xué)伯克利分校(University of California-Berkeley)在1988年,發(fā)表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。文章中,談到了RAID這個(gè)詞匯,而且定義了RAID的5層級。伯克利大學(xué)研究目的是反映當(dāng)時(shí)CPU快速的性能。CPU效能每年大約成長30~50%,而硬磁機(jī)只能成長約7%。研究小組希望能找出一種新的技術(shù),在短期內(nèi),立即提升效能來平衡計(jì)算機(jī)的運(yùn)算能力。在當(dāng)時(shí),柏克萊研究小組的主要研究目的是效能與成本。 另外,研究小組也設(shè)計(jì)出容錯(cuò)(fault-tolerance),邏輯數(shù)據(jù)備份(logical data redundancy),而產(chǎn)生了RAID理論。研究初期,便宜(Inexpensive)的磁盤也是主要的重點(diǎn),但后來發(fā)現(xiàn),大量便宜磁盤組合并不能適用于現(xiàn)實(shí)的生產(chǎn)環(huán)境,后來Inexpensive被改為independent,許多獨(dú)立的磁盤組
磁盤陣列維護(hù)
加強(qiáng)磁盤陣列的日常管理與維護(hù),是保證磁盤陣列正常工作的重要手段。作為一名存儲的管理人員,日常維護(hù)中應(yīng)該關(guān)注以下: [7] ①設(shè)置熱備源盤將一只硬盤設(shè)置為熱備源盤,會造成一定的浪費(fèi),但從安全角度考慮是值得的。大容量的磁盤陣列使用RAID5,但有一個(gè)硬盤的冗余。如果一個(gè)硬盤損壞,整個(gè)陣列的安全會處于一種臨界狀態(tài),此時(shí)任何一個(gè)硬盤的一點(diǎn)點(diǎn)閃失都會造成災(zāi)難性的后果,使數(shù)據(jù)全部丟失。設(shè)置有熱備源盤,當(dāng)硬盤發(fā)生故障時(shí),系統(tǒng)會自動用熱備源盤去替換故障盤并重建陣列,隨后數(shù)據(jù)又會處于完全保護(hù)之中。 [7] ②重要數(shù)據(jù)勤備份應(yīng)該經(jīng)常對特別重要的數(shù)據(jù)進(jìn)行備份,這樣就不至于將“雞蛋放在一個(gè)籃子里”,即使是安全性較高的磁盤陣列也不會一定安全。 [7] ③建立巡視檢查制度磁盤陣列還能夠工作,并不表示沒有發(fā)生故障。當(dāng)磁盤陣列發(fā)生故障時(shí),磁盤陣列存儲系統(tǒng)的數(shù)據(jù)讀寫通常是正常的。這正是磁盤陣列的一種安全性措施,但往往又讓管理人員產(chǎn)生一種錯(cuò)覺,以為磁盤陣列沒有故障發(fā)生。對磁盤陣列定時(shí)的巡視檢查,既可以發(fā)現(xiàn)已經(jīng)發(fā)生的故障,還可以了解設(shè)備的工作狀態(tài),起到防患于未然的作用。
那么服務(wù)器為啥要做磁盤陣列呢?
主要有兩個(gè)作用:
提供容錯(cuò)功能
普通的磁盤驅(qū)動器是無法提供容錯(cuò)功能的,而磁盤陣列可以通過數(shù)據(jù)校驗(yàn)提供容錯(cuò)功能,服務(wù)器會將數(shù)據(jù)寫入多個(gè)磁盤,如果某個(gè)磁盤發(fā)生故障時(shí),此時(shí)仍能保證信息的可用性,重要數(shù)據(jù)不會丟失,也不會耽誤服務(wù)器的正常運(yùn)轉(zhuǎn)。
提高傳輸速率
磁盤陣列將多個(gè)磁盤組成一個(gè)陣列,當(dāng)做一個(gè)單一的磁盤使用,把數(shù)據(jù)已分段的形式存儲到不同的硬盤之中,發(fā)生數(shù)據(jù)存取變動時(shí),陣列中的相關(guān)磁盤一起工作,這就可以大幅的降低數(shù)據(jù)存儲的時(shí)間,同時(shí)還能擁有更佳的空間和使用率。
RAID的操作步驟
標(biāo)準(zhǔn)的RAID寫操作,需包括以下幾個(gè)步驟:
?。?)以校驗(yàn)盤中讀取數(shù)據(jù)
(2)以目標(biāo)數(shù)據(jù)盤中讀取數(shù)據(jù)
?。?)以舊校驗(yàn)數(shù)據(jù),新數(shù)據(jù)及已存在數(shù)據(jù),生成新的校驗(yàn)數(shù)據(jù)
?。?)將新校驗(yàn)數(shù)據(jù)寫入校驗(yàn)盤
?。?)將新數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)盤
當(dāng)主機(jī)將一個(gè)待寫入陣列RAID組中的數(shù)據(jù)發(fā)送到陣列時(shí),陣列控制器將該數(shù)據(jù)保存在緩存中并立即報(bào)告主機(jī)該數(shù)據(jù)的寫入工作已完成。該數(shù)據(jù)寫入到陣列硬盤的工作由陣列控制器完成,該數(shù)據(jù)可繼續(xù)存放在Cache中直到Cache滿,而且要為新數(shù)據(jù)騰出空間而必須刷新時(shí)或陣列需停機(jī)時(shí),控制器會及時(shí)將該數(shù)據(jù)從Cache寫入陣列硬盤中。
這種緩存回寫技術(shù)使得主機(jī)不必等待RAID校驗(yàn)計(jì)算過程的完成,即可處理下一個(gè)讀寫任務(wù),這樣,主機(jī)的讀寫效率大為增加。當(dāng)主機(jī)命令將一個(gè)數(shù)據(jù)寫入硬盤,則陣列控制器將該數(shù)據(jù)寫入緩存上面的位置,只有新數(shù)據(jù)才會被控制器按Write-Back Cache的方式之后寫入硬盤。