国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

一些你不知道的RAID存儲知識解析
2010-02-05   網(wǎng)絡

早在我還是一個服務技術新手的時候,我對系統(tǒng)管理一無所知,我們一直想要了解的話題之一就是RAID——廉價冗磁盤陣列(Redundant Array of Inexpensive Disks)。

它是解決我們所有存儲難題的鑰匙。有了RAID,我們可以擴大文件系統(tǒng),獲得更好的吞吐量甚至是增加冗余性,讓我們幸免于磁盤丟失事件,尤其是在那 些經(jīng)常發(fā)生此類事件的日子里。

隨著NAS和SAN存儲應用的出現(xiàn),使用物理存儲的技巧和利用這些技巧來滿足系統(tǒng)需求快速地消失了。這并不是一件好事。因為我們將存儲卸載到外置設 備上的做法并沒有改變這樣一個事實,我們需要從根本上了解我們的存儲情況,通過配置存儲來滿足系統(tǒng)的特定需求。

最近五到十年似乎出現(xiàn)這樣一種誤解,認為RAID可以等同于系統(tǒng)備份。而事實并非如此。RAID只是容錯的一種形式。

備份和容錯從概念上來講是完全不同的。備份讓我們可以在災難發(fā)生之后實施恢復。而容錯旨在降低災難發(fā)生的幾率。容錯就像是在懸崖上搭建一個防護網(wǎng), 而備份就像是懸崖下面建造一座醫(yī)院。你恐怕永遠也不像想既沒有防護網(wǎng)也沒有醫(yī)院,但他們是完全不同的兩個事物。

一旦我們?yōu)轵?qū)動器部署了RAID,不管是本地附加還是在存儲網(wǎng)絡中的遠程應用,現(xiàn)在我們有四種主要的RAID解決方案可以用于業(yè)務中:RAID 1(鏡像)、RAID 5(帶校驗的磁盤條帶)、RAID 6(帶雙重校驗的磁盤條帶)以及RAID 10(帶有條帶的鏡像)。

還有其他類型的等解決方案,例如RAID 0,但如果你真正了解你的驅(qū)動器子系統(tǒng)需求,那么你就知道這些只能用于少數(shù)環(huán)境中。另外人們使用的還有RAID 50和RAID 51,但是更加少見,而且效率并不那么高。十年前,RAID 1和RAID 5是很常見的,但是今天我們已經(jīng)有了更多的選擇。

下面讓我們來逐個分析這些選擇并討論一些基本的數(shù)據(jù)。在我們的例子中,我們將使用“n”來代表陣列中的驅(qū)動器數(shù)量,“s”代表任何單個驅(qū)動器的大 小,以此來表示一個陣列的可用存儲空間,更直觀地進行存儲容量對比。

RAID 1

這種類型的RAID是對驅(qū)動器進行鏡像。你有兩個驅(qū)動器,它們同時在一起做所有事情,因此稱做“鏡像”。因為這個過程非常簡單,所以鏡像是非常穩(wěn)定 的,但是如果你之前從來沒有使用過RAID的話,這就要求你必須購買是實際需要兩倍的驅(qū)動器,因為第二個驅(qū)動器作為冗余之用。

RAID 1的好處在于你可以確保寫入到磁盤中的每個字位都被寫入兩遍以達到保護的目的。因此,使用RAID 1我們的存儲容量應該是(n*s/2)。RAID 1比非RAID驅(qū)動器性能要略高一些,寫入速度接近于非RAID系統(tǒng),而讀取速度幾乎是大多數(shù)情況下的兩倍,因為在讀取操作過程中驅(qū)動器可以并行地進行訪 問,從而提高了吞吐量。RAID 1限制于兩個驅(qū)動器。

RAID 5

帶校驗的磁盤條帶。在這種類型的RAID中,數(shù)據(jù)以復雜條帶的形式寫入到陣列中的所有驅(qū)動器中,同時所有驅(qū)動器中都有分布數(shù)校驗塊。這樣RAID 5就可能使用三個或者更多磁盤組成的任意大小的陣列,只犧牲相當于一個磁盤的存儲容量用于校驗。但是這種校驗是分布式的,并不單獨存在于任何一個物理磁盤 中。

RAID 5由于在大型陣列中犧牲的存儲容量較少,所以它具有成本效益的特點,從而被人們所廣泛使用。與鏡像不同的是,帶有校驗的條帶要求必須在磁盤之間進行針對每 個寫入條帶的計算,這造成了一部分的開銷。因此,吞吐量并不總是一個容易計算的項目,它在很大程度上取決于系統(tǒng)在做校驗計算時候的計算能力。

計算RAID 5的容量非常簡單:就是((n-1)*s)。RAID 5陣列可以避免這列中任何單個磁盤的丟失。

RAID 6

帶雙重校驗的磁盤條帶。RAID 6與RAID 5非常相似,但它的每個條帶使用兩個校驗塊,而不是一個,這加強了應對磁盤故障的保護能力。

RAID 6是RAID家族中的新成員。RAID 6是其他幾個RAID類型實現(xiàn)標準化幾年之后增加的。RAID 6比較特殊,因為它可以承受陣列中任意兩個驅(qū)動器的故障,同時防止數(shù)據(jù)丟失。但是為了配合額外的冗余度,RAID 6陣列需要犧牲陣列中相當于兩個驅(qū)動器的容量,并要求真列中最少有四個驅(qū)動器。RAID 6的容量可以用((n-2)*s)來計算。

RAID 10

帶條帶的鏡像。從技術上來說,RAID 10是一種混合的RAID,包括存在于一個非校驗條帶(RAID 0)中的一對RAID鏡像。

當一個陣列中只有兩個驅(qū)動器的時候,很多廠商會稱其為RAID 10(或者RAID 10+),但從技術上來說這應該是RAID 1,因為陣列中至少有四個驅(qū)動器才會發(fā)生條帶化。對于RAID 10來說,驅(qū)動器必須是一對一對添加的,因此陣列中的驅(qū)動器數(shù)量只可能是偶數(shù)。

RAID 10可以在丟失近半數(shù)驅(qū)動器組的情況下正常運轉(zhuǎn),同是最多只能承受每個驅(qū)動器中一個驅(qū)動器發(fā)生故障或者丟失。RAID 10不包含校驗計算,這使得它相對RAID 5和RAID 6來說具有一定的性能優(yōu)勢,而且陣列對計算能力的要求也更低。RAID 10提供了超過任何一種常見類型RAID的讀取性能,因為在讀取操作中陣列中的所有驅(qū)動器都可同時使用。但是RAID 10的寫入性能要低很多。RAID 10的容量計算方法和RAID 1相同,都是(n*s/2)。

在當今的企業(yè)中,很少有IT部門有迫切的需要考慮除了上述這四種RAID之外的驅(qū)動器配置,不管他們是否已經(jīng)部署RAID軟件或者硬件。以 前,RAID陣列決策中最主要的一個考慮因素是可用容量。這是因為以前驅(qū)動器不僅昂貴而且容量很小。

現(xiàn)在,驅(qū)動器都很大因此存儲容量基本不是什么問題,至少不再像幾年前那樣,而且成本也大幅度降低,購買更多驅(qū)動器以獲得更高冗余度也不是什么難事。 當容量是主要考慮因素的時候,RAID 5是一個比較受歡迎的選擇,因為相比其他陣列類型來說,RAID 5損失的容量最少。

現(xiàn)在我們還有其他方面的顧慮,主要集中在數(shù)據(jù)安全和性能方面。多花一些錢來加強數(shù)據(jù)保護應該是一個顯而易見的選擇。RAID 5只能接受損失一個驅(qū)動器。對于只有三個驅(qū)動器的陣列來說,這相比RAID 1所提供的保護能力來說還要更危險一些。

我們可以接受三個驅(qū)動器中丟失任何一個驅(qū)動器。與丟失兩個驅(qū)動器中任何一個相比這并沒有那么令人害怕。但如果是一個大型陣列呢,例如16個驅(qū)動器? 能夠安全地損失16個驅(qū)動器中的一個,這的確會讓我們質(zhì)疑可靠性。

這時候RAID 6填補了這一空白。RAID 6常被用于大型陣列中,損失的存儲容量和性能非常小,而且接受丟失任何兩個驅(qū)動器。帶校驗碼的條帶化RAID的支持者經(jīng)常引用這些數(shù)字來安撫管理層,稱 RAID 5/6可以提供足夠“物廉價美”的存儲子系統(tǒng)。但是用戶還有其他因素需要考慮。

RAID 10應用

在談論RAID可靠性(很少被提及的一個話題)中,有一個幾乎被忽略掉的問題,那就是校驗計算可靠性。

對于RAID 1和RAID 10來說,不需要通過計算來創(chuàng)建帶校驗的條帶。數(shù)據(jù)只是以一種穩(wěn)定的方式被寫入。當一個驅(qū)動器發(fā)生故障,它的另一個配對驅(qū)動器就會接過負載,在更換驅(qū)動器 之前驅(qū)動器性能可能會有一些降低。既沒有影響現(xiàn)有驅(qū)動器數(shù)量的重建流程,也沒有校驗條帶的重建。

帶校驗的RAID陣列操作中包括計算出結果是什么以及應該把哪些放到驅(qū)動器上。雖然這種計算很簡單,但是也有可能出錯。

RAID 1或者RAID 10出現(xiàn)陣列控制故障從理論上來說可能是向驅(qū)動器內(nèi)容中寫入壞數(shù)據(jù),但是控制器中并沒有一個能對其本身進行驅(qū)動器更改的流程。因此這種情況發(fā)生的幾率非常 低,因為除了創(chuàng)建鏡像之外系統(tǒng)沒有一個“重建”流程。

當帶有檢驗的陣列執(zhí)行重建操作的時候,他們通常會實施一個復雜的流程,逐步檢查陣列的所有內(nèi)容,將丟失數(shù)據(jù)寫回到被替代的驅(qū)動器上。對其本身來說這 是非常簡單的,而且不需要有什么擔心。

我和其他人首先注意到一個有些不同的場景,由于與陣列的連接器松動所導致的磁盤連接性的丟失。隨著時間的推移,服務器中的驅(qū)動器有可能會松動,尤其 是在一個持續(xù)運行的系統(tǒng)中服務好幾年以后。

在極端的情況下,當陣列控制器認為一個或者多個驅(qū)動器連續(xù)發(fā)生故障,驅(qū)動器的好數(shù)據(jù)會被壞校驗數(shù)據(jù)所覆蓋,然后重新在線并進行重建。在這種情況下, 驅(qū)動器本身并沒有發(fā)生故障,而且也沒有數(shù)據(jù)丟失。理論上來時需要的只是重新調(diào)整驅(qū)動器的位置就可以。

在熱插拔系統(tǒng)中,驅(qū)動器重建管理往往是根據(jù)故障驅(qū)動器的移除或者更換規(guī)則而實現(xiàn)自動化的。因此,這種丟棄和更換驅(qū)動器的流程可以在沒有任何人為干預 的情況下進行。在這個過程中,驅(qū)動器系統(tǒng)面臨風險,如果驅(qū)動器陣列再次發(fā)生這種情況,根據(jù)驅(qū)動器的狀況,系統(tǒng)開始對壞數(shù)據(jù)進行條帶化,覆寫好的文件系統(tǒng)。

對于服務器管理員來說,最令人沮喪的事恐怕是看到?jīng)]有驅(qū)動器故障的系統(tǒng)僅僅因為不必要的重建操作而丟失整個陣列。

從理論上來說,這種情況是不會發(fā)生的,而且有專門的人員會預防這種情況的發(fā)生。但是判斷底層驅(qū)動器控制器當前和過去的情況以及保存數(shù)據(jù)的質(zhì)量并非表 面上看到的那樣容易,而且有可能會發(fā)生錯誤。

雖然不太可能,但是這種情況還是會發(fā)生的,同時也讓RAID 5和RAID 6系統(tǒng)風險計算變得難上加難。除了陣列可以接受驅(qū)動器故障之外,我們必須考慮校驗故障的風險。隨著驅(qū)動器可靠性不斷提高,校驗故障風險的重要性也突顯出 來。

除此之外,因為校驗計算的緣故,RAID 5和RAID 5校驗還給系統(tǒng)帶來更多開銷。校驗計算一般是通過高級RAID硬件來處理的。這種計算給驅(qū)動器子系統(tǒng)帶來了延遲,這種延遲很大程度上取決于硬件和軟件兩個 方面。這使得不同類型RAID之間性能水平對比變得更加困難,因為每一種部署都是獨一無二的。

現(xiàn)在,RAID選擇中一個最大的問題可能就是我們可以方便地獲得存儲效率和驅(qū)動器容錯的測量標準,但是可靠性和性能方面的指標卻非常幾乎沒有。測量 標準所帶來的危險之一就是,人們將重點關注那些很容易測量的項目上,而忽略了那些不方便測量的項目,盡管這些因素可能會有很重要的影響。

雖然現(xiàn)在所有類型的RAID都找到了自己的一席之地,但關鍵的是要結合使用背景以及可接受的風險范圍來進行考慮。我們應該努力將整個行業(yè)從默認 RAID 5引導到默認RAID 10上來。驅(qū)動器很便宜了,但是數(shù)據(jù)丟失的代價很高。

熱詞搜索:

上一篇:甲骨文數(shù)據(jù)庫曝漏洞 黑客可遠程控制權
下一篇:4種固態(tài)存儲補充企業(yè)級存儲系統(tǒng)方法

分享到: 收藏
主站蜘蛛池模板: 澄迈县| 宣威市| 额尔古纳市| 绥中县| 常宁市| 赣榆县| 辛集市| 金塔县| 阿尔山市| 柞水县| 丰宁| 白水县| 九寨沟县| 隆尧县| 海林市| 中超| 锡林浩特市| 呼和浩特市| 郴州市| 德钦县| 扶沟县| 天门市| 马公市| 佛山市| 江口县| 仪征市| 巫溪县| 土默特右旗| 建德市| 浪卡子县| 江达县| 夏邑县| 新巴尔虎右旗| 陵水| 南通市| 明溪县| 沙洋县| 额尔古纳市| 滨海县| 兰坪| 板桥市|