傳統RAID技術的瓶頸到底有哪些?
1、背景
在各類存儲介質中,機械磁盤由于采用了電機驅動,故障率***,平均無故障時間(MTBF)指標也***,因此磁盤的數據保護技術至關重要。
加利福尼亞大學伯克利分校(University of California-Berkeley)在1988年,發表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。文章中談到了RAID這個詞匯,而且定義了RAID的5層級。自1989年以來,RAID(獨立磁盤冗余陣列)技術一直是磁盤系統數據保護的標準的和最常用的方式。在絕大部分用戶眼中,RAID是一種成熟、可靠的解決方案,也被視為數據存儲的基礎技術。那些基本的RAID概念很多年都不曾改變過,至今仍然十分流行,也擁有有眾多的用戶。但事實上,傳統的RAID技術正在逐漸被一些新的技術取代。
2、傳統RAID技術的主要瓶頸
當故障發生時,根據用戶使用的RAID類型,(一個或多個)故障磁盤上的數據會通過校驗值計算或者從鏡像盤拷貝的方式重新生成原來的數據。但是:
(1)傳統RAID在數據重建方面表現比較差,以前因為單塊磁盤的容量較小,當磁盤發生故障之后,數據重建需要的時間大部分用戶是可以接受的,但隨著數據量的不斷增大,在許多應用環境中單塊的磁盤容量在4TB或者以上,數據重建可能需要十幾個小時,甚至幾十個小時才能將故障盤中的數據恢復。這樣就有一個比較大的問題,重建時間越久發生二次損壞的概率就越大,一旦發生了二次損壞很有可能會造成數據全部丟失無法恢復;
(2)比如當RAID組中某塊磁盤發生故障以后,處于同一個RAID組中的其他盤將會存在大量的讀操作,去獲取條帶數據,然后生成故障盤上的數據,***寫入熱備磁盤中,這是一個完整的數據重建過程。會造成若干塊磁盤存在讀操作,一塊磁盤存在寫操作。我們很容易的發現,熱備盤是寫操作性能瓶頸點,同時RAID組中的其他磁盤是讀操作性能瓶頸點,大容量磁盤對傳統RAID技術的***挑戰就在于此。
另外在數據重建的過程中,上層文件系統的性能也會受到極大的影響。并且在應用數據壓力的情況下,數據重建的I/O和應用的I/O交錯在一起,導致惡性循環,使得數據重建和應用I/O性能都表現較差;
(3)RAID系統需要為發生故障的那個磁盤記錄一系列的關聯信息, 包括跟蹤故障磁盤的位置、相關數據、數據位置、數據產生時間等信息的痕跡,這個時間周期從故障磁盤被拔出那一刻開始,一直到RAID組被修復(或者RAID組被毀壞)。這是一個冗長乏味的過程,如果是加密的磁盤,則還需要復雜的手工操作。
既然傳統RAID技術有上述的瓶頸,那是不是用SSD硬盤就能徹底解決呢?不容置疑如果不在乎成本的因素,肯定是能解決一些問題的,但不能徹底解決,這源于機制的作用,因為傳統RAID技術的機制已經非常的固化。后期在許多應用場景下可能會廣泛采用混合的機制,比如采用SSD等高速硬盤用來存放熱點數據,需要長期保留的大容量的數據就用大容量的普通硬盤,但同時還是都需要做數據保護的。
3、新的技術
最近幾年業內興起了許多新的技術,我個人覺得其主要思想都是將數據分割成多個等長的不能直接讀取的數據塊,并且在每個數據塊上附加元數據信息。一份完整的數據通過全部數據塊中的部分子集就可以復原,也就是說只要有部分數據塊存在,數據就不會丟失。這些數據塊可以分布在不同的存儲位置,可以是一個數據中心內部,甚至可以跨越城市、跨越一個地區,或者在世界上任何其他地方,形成一個邏輯的資源池。在數據重建時數據寫入操作不再局限在一塊磁盤上面,而在邏輯的存儲池中任意布局,相應的重建需要的數據塊讀操作也不再局限在一個RAID組中了,而且根本不需要數據的復制操作。面對自然災難以及技術錯誤時具有很強的生存適應能力,因為只要有部分數據塊存在,就能復原完整的原始數據。實際上,即使客戶端、服務器、存儲單元,磁盤驅動器或者網絡這一些列環節中同時發生多個故障,我們仍然可以實時訪問數據。與傳統RAID的存儲機制完全不同,可以完全消除和彌補傳統RAID技術的不足。
另外這種機制天生具有數據的私密性,因為每個獨立數據塊所包含的信息量都不足以揭示原始數據集的全貌。必須有足夠數量的數據塊集合(可能來自于不同的存儲節點設備)才能恢復完整的數據,這個數量由附加在每個數據塊上的元數據信息量決定。附加的元數據信息越多,意味著恢復時需要的數據塊就越少。
當然說不定隨著技術的發展會有更好的解決方案出現,讓我們拭目以待吧!

























