王者荣耀妲己cos高清
圖片
圖片
新聞詳情
 
圖片
文章搜索
 
 
文章正文
動態硬盤池技術發展帶領RAID重生
作者:管理員    發布于:2014-04-12 21:42:06    文字:【】【】【
摘要:許多人認為RAID已經死了,但是它可能像鳳凰一樣,借助一些新的技術浴火重生。這些新技術中最新的,最值得人們研究的就是NetApp的動態硬盤池技術(DDP)。借助這項技術,人們可以解決RAID長久以來的問題,使它在未來獲得更好的發展。

RAID的問題

RAID是一種最常見的存儲技術。它可以讓用戶把存儲媒介連接成組,從而獲得更大的容量,提升性能或減少硬盤失效帶來的損失。對于大部分RAID來說,我們要損失一點總容量,因為要存儲冗余的校驗信息,或者建立一個鏡像。

可是,就像人一樣,RAID也垂垂老矣了。

使用RAID-5RAID-6,你也許會失去一個硬盤,但是不會丟失任何數據。在RAID-5RAID-6中,如果一塊硬盤出現故障,借助剩余的硬盤或冗余校驗信息,數據可被重新建立,借助其它硬盤進行讀取。

舉個例子,如果你在一個RAID組中(比如RAID-5RAID-6)安裝了103TB的硬盤,你不得不讀取剩下的9塊硬盤中每個硬盤單一的塊。可以說這是利用27TB的數據去重建3TB的數據,讀取這么多數據可能會花費很長的時間。剩余的9塊硬盤都將寫入到一個目標空間,但是性能不會被重建。而且,當這樣的重建進行時,RAID組還在使用中,重建速度會更慢。另外,如果我們使用的是RAID-5,再損失一塊硬盤我們就不能復原任何數據了(使用RAID-6的話再損失一塊硬盤我們勉強還能承受)

現在,我們使用的硬盤容量都是3TB4TB,甚至能達到5TB6TB。在RAID-5RAID-6中,如果我們有106TB的硬盤,當一塊硬盤出現故障時,我們需要讀取修復的數據總量為9*654TB的數據,這樣才能復原6TB數據的損失。請注意,硬盤的速度沒有變快,所以讀取這些硬盤的總時間要比現在長得多(就像是,讀取性能不變,但是要讀取的數據總量增加了)

而且,用戶還很有可能遇到URE(不可恢復讀取錯誤)問題,URE表示的是讀取之前出現讀取錯誤的數據總量(比如說,控制器無法讀取特殊的塊)。當RAID重建開始時,這個問題非常重要,因為RAID組中剩余硬盤所有的容量都要被讀取——即使在塊中沒有數據。

在某些情況下,出現URE的概率非常大(比如說出現不可讀取的塊),這意味著重建會失敗。如果使用的是RAID-5,這意味著重建已經失敗了,數據不得不從備份中提取。即使你使用RAID-6,現在你也有兩個失敗點了——第一個是失效的硬盤,第二個是出現URE的硬盤。RAID-6重建可以繼續,但是已經失去保護了。如果再出現一個錯誤,RAID組就完了,數據要從備份中讀取了。

當然,存儲公司們已經意識到了這個傳統的RAID問題,它們推出了許多技術保證重建進程的順利實施,即使出現了URE,也可以提供保護。舉個例子,在RAID-6中,一塊硬盤出現故障了,如果你有一塊冗余硬盤,那即使出現了URE,重建也不會被終止。這可使管理員繼續進行RAID組的重建,但是這只是應用到RAID-6(可以承受兩塊硬盤出現故障)

還有一個方法,我還沒有見過,但是應該存在,就是在重建過程中跳過出現URE的塊,陣列會完成重建但是無法告知用戶哪個塊出現了問題。當然,與出現問題的塊相關的文件沒有被完全重建,但是這可以使用戶重建其它的數據。這種方法要比從備份或副本中重新讀取54TB的數據要好得多,因為從理論上來看,你只需要讀取被損壞塊影響的文檔就可以了。

因此,傳統RAID組的問題是

1.硬盤容量越來越大,RAID組中的硬盤數量會減少(RAID-5RAID-6都是這樣的情況),但是還會出現URE

2.重建時間變得越來越長,因為讀寫性能保持不變,但是RAID組要處理更多的數據了。

這些問題,當然還有其它問題的出現,使得RAID的光明前景變得黯淡無光。硬盤容量越來越大,RAID的未來卻越來越迷茫。許多人還預測幾年之后RAID將終結。但是現在出現了新的技術可以改善這種情況。在這里我想介紹這樣一種技術,動態硬盤池(DDP),這項技術將使RAID重新煥發出生機。

NetApp的動態硬盤池

NetApp提出了名為動態硬盤池的概念,可以改善傳統RAID遇到的問題。這個概念非常簡單——仍然利用RAID,但是不采用整塊硬盤,而是利用更加顆粒化的結構。NetApp還推出了最新版本的SANtricity軟件,這家公司把DDPRAID-6整合起來,應用到更加顆粒化的層面。DDP允許用戶把所有的硬盤連接起來,應用到控制器的后端,建立一個存儲池。這就像經典的RAID-5RAID-6,但是用戶可以在單一的池中使用所有的硬盤,而不用把它們分解到RAID-5RAID-6中再利用邏輯卷管理程序或其它技術把他們連接起來。為了更好的理解這項技術如何工作,我們需要進一步了解DDP的整體結構。

DDP的最低水平被稱為D-Piece。一個D-Piece是一個硬盤中連續的512MB片段,由4096128KB的片段組成。下一個水平被稱為D-Stripe,由10D-Piece組成,因此一個D-Stripe總共有5120MB的原始空間。D-Piece是利用偽隨機算法從存儲池各種硬盤中挑選出來的。每個D-Stripe基本上就是一個RAID-6組,擁有8+2的配置(8個數據和2個冗余塊),這意味著在一個D-Stripe中,我們有8*512MB,即4096MB的可用空間。最終,D-Stripe可以建立一個卷來滿足用戶需要的容量。

DDP中,我們仍然采用了RAID的概念,比如說采用RAID-6。但是不像以前利用整塊硬盤作為RAID-6的塊,DDP打破了硬盤,把它們分成小塊,橫跨所有的硬盤創建了RAID-6的結構。

請看圖一,它闡述了如何由12個硬盤建立一個DDP

在圖一中,每個塊是一個D-Piece(512MB)。相同顏色的D-Piece組成了D-Stripe。舉個例子,所有粉色的D-Piece組成了一個D-Stripe,而淺藍色的D-Piece組成了另外一個D-Stripe,所有黃色的D-Piece形成了第三個D-Stripe,深紅色的D-Piece形成了另外一個D-Stripe,依此類推。

在特別的D-Stripe中的D-Piece是以某種隨機的方式選擇的,所以這種特別的布局無法重復。選擇過程在保持偽隨機布局的同時嘗試平衡各個硬盤的容量。這就保證在兩個D-Stripe上的所有數據的位置在10個硬盤中的位置相同這種純隨機情況不會發生。

在一個運行系統中,一個DDP要被創建首先要確定池中硬盤的數量。然后用戶要根據所需的容量大小來建立一個卷。軟件可在池中橫跨所有的硬盤建立D-Piece,接著創建D-Stripe。卷是由一些D-Stripe建立的,盡可能使用整數單元的D-Stripe,滿足用戶所需的容量。你可以在同一個DDP中創建一些卷,前提是DDP的容量夠用。

下面讓我看一下在DDP中如果一個硬盤出現故障會怎樣。圖二展示了如果6號硬盤出現故障會怎樣。

硬盤的失效使得有一些D-Piece在損壞硬盤中的D-Stripe無法繼續工作。因此,這些受到影響的D-Stripe需要被重建。一般情況下,DDP會有一些多余空間來應對硬盤失效。也就是說,用戶沒有使用DDP中所有的空間,在卷中留下了一些可能用到的附屬容量,它們將在重建時被使用。需要注意的是DDP中的重建與傳統的RAID重建不一樣,D-PieceD-Stripe要被重新生成,因為硬盤中的平衡被打破,重建需要確保數據分布的偽隨機性。

在一個有10+2布局的“正常”RAID-6中,當一個硬盤出現故障時,只有11個硬盤參與到重建中,它們都寫入到一個單一的空閑硬盤“目標”。但是這樣重建的時間就要受到硬盤數量的限制,還要受到硬盤寫入速度的限制。

在有著相同數量硬盤的DDP中,整個硬盤池都參與到重建中來。這意味著我們可以有更多數量的硬盤為重建服務,還會有更多的讀寫,同時還會進行再生和再平衡,進一步改善性能。所有這些都意味著DDP的重建要比傳統的RAID-6速度快得多。

還有一點與傳統的RAID不同的地方是,DDP的重建只需要讀取受影響的D-Stripe所需要的D-Piece。未受影響的D-Stripe中的D-Piece不需要再次讀取。這意味著我們不需要讀取整塊硬盤,讓用戶遠離URE的危險區域。

在重建過程中,失去兩個D-PieceD-Stripe將獲得優先權,防止再次發生會導致受影響的D-Stripe復原失敗的故障。記住D-Stripe是借助RAID-6建立的,現在兩個RAID-6組都出現問題了,如果第三塊再出現問題,那用戶的數據就會受到損失了。既然數據在控制器中,那兩個D-Piece可以同時進行再生,全面恢復受損的D-Stripe。這使得損失兩個D-PieceD-Stripe再次出現故障的可能性變得非常小。

在一個硬盤出現故障的情況下,有兩個或更多受影響D-PieceD-Stripe的平均數會非常低。這意味著關鍵D-piece的重建會非常快(別忘了它們只有512MB大小)。重建速度太快以至于附屬的硬盤會在幾分鐘內失效,但是不會造成數據損失。這一點值得注意——使用DDP用戶可以損失超過2塊硬盤。所以當RAID-6在更低的層次使用,DDP卻可以承受兩塊或兩塊以上硬盤的損失而不會造成數據丟失。

NetApp表示安裝121TB的硬盤(12塊硬盤是DDP的最小數量),傳統RAID-6(10+2)的重建時間為大約11個小時,而相同配置的的DDP僅用7個小時就可以實現完全的重建。雖然這看上去不像是一個多么重大的進步,但是重建的時間減少了36%

另外,請注意這是完全復原。在一些受影響的D-Stripe中使用RAID-6冗余的速度非常快,可以保護不會再次發生硬盤故障。對于一個傳統的RAID-6來說,用戶不得不等11個小時才能實現完全的RAID-6保護。然而,借助DDP,你可以快速獲得一些受到RAID-6保護的D-Stripe,隨著重建的進行,受到RAID-6保護的D-Stripe數量會不斷增長。

你可以比較一下傳統的RAID-6DDP的復原能力。只要一塊硬盤出現故障,傳統的RAID-6就會在低級模式下運行(只有一塊硬盤進行復原),但是在重建完全完成之前,傳統的RAID-6不能進行完全冗余。DDP重建和再平衡的速度非常快,所以DDP的部件可以隨著時間推移不斷獲得RAID-6保護。

比較一下結果

在未來會出現一些技術,可以讓用戶拓展或代替RAID帶來的收益。現在就有一個例子——NetApp的動態硬盤池,為用戶提供更多的收益。首先,DDP很容易理解,因為它本身就是RAID。可是,它又不是像創建RAID組那樣有固定的硬盤規格。而且,它能擴展潛在的RAID塊,在池中橫跨所有硬盤隨機設定,形成RAID-68+2的模式。

第二,在出現硬盤失效的情況下,借助DDP,用戶可以讓更多的硬盤加入到重建過程中,它們都可以進行讀寫,消除單一硬盤寫入性能的限制。這將大幅減少恢復時間。

第三,在重建過程中,只有丟失的D-Piece被重建。而在傳統的RAID-6中,用戶需要讀取剩余硬盤的所有空間,即使有的空間并沒有被使用——這將使用戶很容易遇到URE的問題。

而且,在傳統的RAID-6中,如果不進行完重建,用戶就不能獲得RAID-6保護(也就是說,在每樣東西在完成之前,它就不是100%)。而在DDP中,一些D-Stripe可以快速獲得RAID-6的保護。隨著復原的推進,整個池獲得RAID-6保護的比例將不斷增加。所以,這不是一個“要不全部都是,要不一個沒有”的命題。

除此之外,在DDP中很容易創建所需容量的卷,還可以在池中留下多余的容量。當用戶有需要的時候,可以繼續在池中增加卷。而且,DDP可以動態監控潛在容量(當然,你需要擴展文件系統)。使用傳統的RAID,用戶需要創建新的卷,把它增加到現有的池中,在這過程中還要利用一些邏輯卷管理器,還要增加文件系統。

最后,使用DDP意味著用戶可以承受失去兩塊以上的硬盤。如果傳統的RAID-6在一個LUN中失去了2塊以上的硬盤,這個LUN就不能再重建了,數據只能從備份或副本中獲得。在DDP中,一個單一池可以損失多塊硬盤,數據也不會丟失。

但是,每樣事物都有利有弊。在DDP中如果一塊硬盤出現故障,大量的硬盤將參與到重建過程中,這將會對某些性能方面造成不利影響。在NetApp的動態硬盤池中,你可以關掉重建的“優先權”,這樣對性能的影響會小點。或者你也可以打開優先權,讓重建盡快完成。這就取決于你了,你得自己考慮哪方面比較重要。

總結與展望

RAID,目前還起著重要作用,但是也將不久于人世了。硬盤容量在不斷增加,但是硬盤的速度和URE率卻沒有多大變化,傳統的RAID不會存在太長時間了。以后將會出現大量改進版RAID,為用戶提供相似的功能,但是卻免受原來問題的困擾。其中一些方法會非常復雜,非常昂貴,這樣的方法也不會被普遍采用。

在這篇文章中,我介紹了一種方法,利用了RAID的概念,但是卻更加顆粒化。NetApp的動態硬盤池借助RAID的概念創造出了新的解決方案,可以讓用戶以更簡單的方式把硬盤整合到一個單一的池中。它還能允許系統失去兩塊以上的硬盤(正是這個導致了RAID-6的失效)。這個好東西還很容易被理解,所以我們不需要消耗多年的時間重新研究RAID的知識。

硬盤容量不斷增加,數據的數量也呈幾何級不斷增多,像DDP這樣的方式會變得越來越重要。傳統的RAID不得不為其它方式讓路,否則我們將會面臨數據丟失的危險。

 

 

 
腳注信息
版權所有:昆明羽冠科技有限公司  企業郵局
公司地址:云南省昆明市茭菱路創意英國小區維多利亞花園2-2-301    聯系電話:0871-65163566、0871-65163866
王者荣耀妲己cos高清 老时时官网 虚拟篮球投注技巧 重庆时时彩独胆 双色球兑奖查询器 欢乐斗牛看牌抢庄 北京pk10号码预测神器 大乐透2019春节停售时间 重庆时时开奖及走势图 三星包胆玩法技巧 北京pk走势图 腾讯分分彩龙虎合规律 北京快车pk10走势图 精准一肖3码 北京pk10计划开奖 极速赛车pk10 单机通比牛牛下载