架構調整是RAID的出路

2021-09-05 06:02:29 字數 1982 閱讀 2805

曾經

raid

技術在儲存領域獨擋一面,為卷管理系統、檔案系統提供高效、可靠的資料儲存服務。但是,如今隨著磁碟容量的不斷增大,

raid

的資料重構時間大為增加,從而導致資料可靠性難以得到保證。為了解決這個問題,我們可以採用冗餘度更高的演算法解決多塊磁碟發生故障的問題。例如,可以採用

rs碼實現三塊盤冗餘演算法。但是,這種提高冗餘度的方法會帶來計算複雜度的問題,本質上還是無法避免單盤資料重構時間過長的問題。

針對資料重構時間過長的問題,我進行了研究,發現資料重構最難解決的效能瓶頸在於重構讀,而不是寫操作。在很多的優化方案中我們可以看到,為了避免

spare

盤的單盤寫瓶頸,我們可以將

spare

盤分布到

working disk

上去,而不採用乙個固定的磁碟作為資料熱備盤。當然,這種解決方案會引入資料遷移,資料再平衡問題。但是,純粹從消除寫瓶頸的角度來看,這種方案是可行的。在實踐中,大家可以發現,上述方案不能很好的提公升資料重構效能,關鍵在於重構讀瓶頸還在。另外,當

spare

盤離散之後,讀寫請求混合,導致單盤讀寫效能劇降,如果設計不好,重構效能不公升反降。大家知道傳統

raid

的資料分布是固定的,並且非常規則。例如,即使乙個儲存系統中存在

100塊盤,乙個

array

中的資料也一定只會分布在某

12塊盤上。所以,在資料重構的過程中,重構讀請求只會落在這

12塊盤上,其他的磁碟不會參與到資料重構過程中去。正因為如此,資料重構的效能被單盤效能侷限住了。無論怎麼去優化,資料重構的效能也不會高於乙個

sas盤的峰值效能

130mb/s

。 通過上述分析,我們可以發現,傳統

raid

的問題在於資料分布,導致這種資料分布的主因是傳統

raid

的架構存在問題。我們現在看到的傳統

raid

架構很簡單,將多塊磁碟聚合成乙個

group

,group

中的磁碟都有很多的磁碟分割槽,

raid

需要做的事情就是將分割槽組合成

array

。乙個array

就是我們通常熟知的

raid-5

或者raid-6

。由於很早以前

raid

不是用來進行資料保護的,只是用這種方法將小磁碟聚合成大儲存空間,也就是

raid0

的做法。後來才發展成了資料保護的功能,並且資料保護成了

raid

乙個最重要的功能。從資料保護的角度來看

raid

架構,的確存在問題。傳統

raid

將資料保護域與物理磁碟管理域揉和在了一起。物理磁碟管理域就是資料保護域。其實,我們通常所說的

raid-5

或者raid-6

是乙個資料保護域,而多塊磁碟聚合成的

group

是乙個物理磁碟管理域。資料保護域是乙個邏輯域,而磁碟管理域是乙個物理域,所以,這兩者是應該分開的。

事實證明這是一種非常不錯的想法。資料保護域和物理磁碟管理域分離是現代

raid

的一種出路。當然,分離兩個域是

raid

架構的一種調整,這種架構調整會引發很多技術上的革新。例如,邏輯域和物理域如何進行對接,即物理資源如何分配給邏輯域?這就涉及到資源分配器設計的問題。優秀的資源分配器根據應用負載的

pattern

模式,將整體效能達到最優,糟糕的資源分配演算法使得

raid

的效能還不如傳統

raid

。所以,資源分配演算法是這種方法的重中之重。

我在備份應用中實現了這種方法,並且可以使得

raid

的資料重構效能急劇提高。重構效能與磁碟數量相關,並呈線性關係,磁碟越多,重構效能越高。實踐論證這是未來

raid

可以走的一條路,當然,這種架構變化的背後還有很多的技術細節和設計藝術。

RAID50是RAID5與RAID0的結合

raid50是raid5與raid0的結合 此配置在raid5的子磁碟組的每個磁碟上進行包括奇偶資訊在內的資料的剝離。每個raid5子磁碟組要求三個硬碟。raid50具備更高的容錯能力,因為它允許某個組內有乙個磁碟出現故障,而不會造成資料丟失。而且因為奇偶位分部於raid5子磁碟組上,故重建速度有很...

簡潔是唯一的出路,是漫長的路

10年快過了四分之一了,簡潔的聲音,一直就沒停過。今天翻看10年第3期的程式設計師雜誌。剛拿到手裡,第一眼覺得封面顏色特別乾淨,因為有很大的部分留白,不像以前七彩虹的封面 第二眼就瞄到了15元,以前第一次自己掏腰包買的時候,找了老半天的 第三眼看到了 p46 p92,精彩課題文章的頁數,以前只是寫精...

什麼是好的架構!

1.目標 我們希望乙個好的架構能夠 1.1.重用 為了避免重複勞動,為了降低成本,我們希望能夠重用之前的 之前的設計。重用是我們不斷追求的目標之一,但事實上,做到這一點可沒有那麼容易。在現實中,人們已經在架構重用上做了很多的工作,工作的成果稱為框架 framework 比如說windows的視窗機制...