天天看點

RAID的三個技術

RAID 中主要有三個關鍵概念和技術:鏡像( Mirroring )、資料條帶( Data Stripping )和資料校驗( Data parity ) 。

鏡像

        将資料複制到多個磁盤,一方面可以提高可靠性,另一方面可并發從兩個或多個副本讀取資料來提高讀性能。顯而易見,鏡像的寫性能要稍低, 確定資料正确地寫到多個磁盤需要更多的時間消耗。

        鏡像是一種備援技術,為磁盤提供保護功能,防止磁盤發生故障而造成資料丢失。對于 RAID 而言,采用鏡像技術 典型地 将會同時在陣列中産生兩個完全相同的資料副本,分布在兩個不同的磁盤驅動器組上。鏡像提供了完全的資料備援能力,當一個資料副本失效不可用時,外部系統仍可正常通路另一副本,不會對應用系統運作和性能産生影響。而且,鏡像不需要額外的計算和校驗,故障修複非常快,直接複制即可。鏡像技術可以從多個副本進行并發讀取資料,提供更高的讀 I/O 性能,但不能并行寫資料,寫多個副本會會導緻一定的 I/O 性能降低。

  鏡像技術提供了非常高的資料安全性,其代價也是非常昂貴的,需要至少雙倍的存儲空間。高成本限制了鏡像的廣泛應用,主要應用于至關重要的資料保護,這種場合下資料丢失會造成巨大的損失。另外,鏡像通過“ 拆分 ”能獲得特定時間點的上資料快照,進而可以實作一種備份視窗幾乎為零的資料備份技術。

資料條帶

       将資料分片儲存在多個不同的磁盤,多個資料分片共同組成一個完整資料副本,這與鏡像的多個副本是不同的,它通常用于性能考慮。資料條帶具有更高的并發粒度,當通路資料時,可以同時對位于不同磁盤上資料進行讀寫操作, 進而獲得非常可觀的 I/O 性能提升 。

        磁盤存儲的性能瓶頸在于磁頭尋道定位,它是一種慢速機械運動,無法與高速的 CPU 比對。再者,單個磁盤驅動器性能存在實體極限, I/O 性能非常有限。 RAID 由多塊磁盤組成,資料條帶技術将資料以塊的方式分布存儲在多個磁盤中,進而可以對資料進行并發處理。這樣寫入和讀取資料就可以在多個磁盤上同時進行,并發産生非常高的聚合 I/O ,有效提高了整體 I/O 性能,而且具有良好的線性擴充性。這對大容量資料尤其顯著,如果不分塊,資料隻能按順序存儲在磁盤陣列的磁盤上,需要時再按順序讀取。而通過條帶技術,可獲得數倍與順序通路的性能提升。

  資料條帶技術的分塊大小選擇非常關鍵。條帶粒度可以是一個位元組至幾 KB 大小,分塊越小,并行處理能力就越強,資料存取速度就越高,但同時就會增加塊存取的随機性和塊尋址時間。實際應用中,要根據資料特征和需求來選擇合适的分塊大小,在資料存取随機性和并發處理能力之間進行平衡,以争取盡可能高的整體性能。

        資料條帶是基于提高 I/O 性能而提出的,也就是說它隻關注性能, 而對資料可靠性、可用性沒有任何改善。實際上,其中任何一個資料條帶損壞都會導緻整個資料不可用,采用資料條帶技術反而增加了資料發生丢失的概念率。

資料校驗

        利用備援資料進行資料錯誤檢測和修複,備援資料通常采用海明碼、異或操作等算法來計算獲得。利用校驗功能,可以很大程度上提高磁盤陣列的可靠性、魯棒性和容錯能力。不過,資料校驗需要從多處讀取資料并進行計算和對比,會影響系統性能。 不同等級的 RAID 采用一個或多個以上的三種技術,來獲得不同的資料可靠性、可用性和 I/O 性能。至于設計何種 RAID (甚至新的等級或類型)或采用何種模式的 RAID ,需要在深入了解系統需求的前提下進行合理選擇,綜合評估可靠性、性能和成本來進行折中的選擇。

       鏡像具有高安全性、高讀性能,但備援開銷太昂貴。資料條帶通過并發性來大幅提高性能,然而對資料安全性、可靠性未作考慮。資料校驗是一種備援技術,它用校驗資料來提供資料的安全,可以檢測資料錯誤,并在能力允許的前提下進行資料重構。相對鏡像,資料校驗大幅縮減了備援開銷,用較小的代價換取了極佳的資料完整性和可靠性。資料條帶技術提供高性能,資料校驗提供資料安全性, RAID 不同等級往往同時結合使用這兩種技術。

  采用資料校驗時, RAID 要在寫入資料同時進行校驗計算,并将得到的校驗資料存儲在 RAID 成員磁盤中。校驗資料可以集中儲存在某個磁盤或分散存儲在多個不同磁盤中,甚至校驗資料也可以分塊,不同 RAID 等級實作各不相同。當其中一部分資料出錯時,就可以對剩餘資料和校驗資料進行反校驗計算重建丢失的資料。校驗技術相對于鏡像技術的優勢在于節省大量開銷,但由于每次資料讀寫都要進行大量的校驗運算,對計算機的運算速度要求很高,必須使用硬體 RAID 控制器。在資料重建恢複方面,檢驗技術比鏡像技術複雜得多且慢得多。

  海明校驗碼和 異或校驗是兩種最為常用的 資料校驗算法。海明校驗碼是由理查德.海明提出的,不僅能檢測錯誤,還能給出錯誤位置并自動糾正。海明校驗的基本思想是:将有效資訊按照某種規律分成若幹組,對每一個組作奇偶測試并安排一個校驗位,進而能提供多位檢錯資訊,以定位錯誤點并糾正。可見海明校驗實質上是一種多重奇偶校驗。異或校驗通過異或邏輯運算産生,将一個有效資訊與一個給定的初始值進行異或運算,會得到校驗資訊。如果有效資訊出現錯誤,通過校驗資訊與初始值的異或運算能還原正确的有效資訊。

繼續閱讀