天天看點

存儲分析:RAID技術走向何方?

自1989年以來,RAID(獨立磁盤備援陣列的縮寫)技術一直是磁盤系統資料保護的标準。在使用者眼中,RAID是一種成熟、可靠的解決方案,也被視為資料存儲的基礎技術。那些基本的RAID概念很多年都不曾改變過,仍然十分流行,也有衆多的使用者。但事實上,RAID技術正在潛移默化的進行着自我更新。

  在深入分析為什麼傳統RAID技術可能被替代之前,我們需要了解一些關于RAID的知識,以及一直以來與這門技術相關的問題。

  進入21世紀之後,傳統RAID技術暴露的問題

  使用RAID是為了在磁盤出現故障的情況下保護資料。當故障發生時,根據使用者使用的RAID類型,(一個或多個)故障磁盤上的資料會通過校驗值計算或者從鏡像盤拷貝的方式重新生成。在各類存儲媒體中,磁盤裝置由于采用了電機驅動,是以故障率最高,平均無故障時間(MTBF)名額也最低,是以磁盤保護技術至關重要。

  根據IDC、Gartner和ESG等市場分析公司的預測,資料存儲的需求在快速增長,每年的增速介于50%到62%之間。是以,企業需要使用大量的磁盤以滿足資料增長的需求。從統計學的角度來說,磁盤數量越多,出現故障的可能性也越高。目前,磁盤裝置制造商仍然在不斷地增加機關存儲密度,現在我們已經有了2 TB的SATA磁盤,而4TB的高容量磁盤也可能在2010年底出現。即便是高性能的SAS和光纖通道磁盤,也在向單盤容量600 GB發展。當使用這些高容量磁盤進行資料重建的時候,傳統RAID的弱點會立即顯現出來。

  每種RAID類型都會在寫性能、讀性能、資料保護級别、資料重建速度、以及磁盤實際可用容量之間尋求平衡。如果優先考慮資料的可用性保證,那麼就需要鏡像或者多重鏡像(RAID 1,10,三重鏡像等等),由于在其他磁盤上有完整的資料副本,是以資料的保護和恢複都比較簡單。當然,使用這種RAID類型需要付出高昂的硬體成本,因為每份鏡像資料都需要消耗與原始資料相同大小的可用空間。此外,每個鏡像都需要消耗系統資源,也會影響I / O性能。現實情況是,大多數企業并不會使用這種昂貴的鏡像保護模式,他們更傾向于使用RAID 5或RAID 6。

  在RAID 5的設定中,當有磁盤出現故障時,備用磁盤會取代故障磁盤的角色,系統随即在備用盤上重建資料。系統會讀取 RAID組中每一塊磁盤上的每一個扇區,來重建資料。在重建的過程中,繁重的讀寫操作很可能引起RAID組中其他磁盤出現錯誤(通常是無法恢複的讀錯誤),而這個機率将比平時高一個數量級,資料出現錯誤的可能性大大增加。在10年或20年之前,那時候磁盤的容量還很小,重建RAID隻需要幾分鐘的時間。但是随着普通磁盤的容量達到TB這個數量級之後,重建RAID可能需要花費幾小時、幾天甚至幾個星期的時間。RAID重建會導緻應用系統整體性能下降,如果使用者不能容忍這一點,而把重建工作的優先級調低的話,重建的時間還将明顯延長。越長的重建時間,也就意味着資料丢失的風險越高。正因為如此,很多存儲系統廠商都在加緊提供對RAID 6的支援。

  RAID 6以雙重條帶校驗的方式來保護資料,即使RAID組中有兩個磁盤損壞或者出現不可恢複的讀錯誤,系統也可以應對。資料丢失的風險大幅降低,但是額外的校驗條帶也将消耗掉更多的可用存儲容量。而且,當一個RAID組中同時有兩塊磁盤需要重建的話,系統性能将受到嚴重的沖擊。更麻煩的是,在RAID 6重建過程中,如果有第三塊磁盤失效或者出現不可恢複的讀錯誤,資料丢失的風險将大大增加。

  傳統RAID還有其他的問題,比如磁盤經過長期的背景輻射、磨損,以及受到灰塵影響等因素,會出現“位元實體衰減”的情況,這也可能導緻資料重建失敗。大多數存儲系統都内建各種類型的背景掃描功能,能夠在不可恢複的錯誤發生之前讀取、校驗并修正“位元實體衰減”,但這需要消耗系統資源。而且,存儲容量越大,也就意味着需要的時間越久。

  還有一個問題是,RAID系統需要為發生故障的那個磁盤記錄一系列的關聯資訊, 包括跟蹤故障磁盤的位置、相關資料、資料位置、資料産生時間等資訊的痕迹,這個時間周期從故障磁盤被拔出那一刻開始,一直到RAID組被修複(或者 RAID組被毀壞)。這是一個冗長乏味的過程,如果是加密的磁盤,則還需要複雜的手工操作。更令人沮喪的是,我們發現絕大多數返廠檢測和維修的“故障”磁盤(比例在67%到90%之間)根本就是完好無損的,或者沒發現有任何的故障。在經曆了一系列令人心煩的操作(系統發現磁盤錯誤,拔出磁盤,資料重建,記錄維護資訊)之後,才發現磁盤根本沒有問題,那真是太糟糕了。

如果使用者使用SSD固态盤,那麼上述問題會更加嚴重。固态盤具有非常高的性能,它會取代存儲系統中原有的高性能磁盤。NetApp公司首席執行官Tom Georgens最近指出:“需要快速通路的資料将儲存在閃存中,而其它資料放在SATA磁盤裡。”因為容量的原因,我們不得不增加高密度、低性能的磁盤,而且會越來越多。面對這一趨勢,傳統RAID技術暴露的問題越來越多。是以,從某些方面考慮,前期在存儲系統上花費的采購成本和維護成本越低,最終需要付出的維護成本可能越高。

  傳統RAID技術的問題,激發了衆多存儲廠商、學術界人士和企業家們紛紛提出傳統RAID技術的替代方案。我們将這些創新歸為三類:1、以RAID為基礎的創新;2、以RAID為基礎的改進;3、放棄RAID,追求全新的(資料保護)模式。

  以RAID為基礎的創新

  為了解決傳統RAID技術中存在的問題,幾家公司采取了循序漸進的方法,在利用RAID技術可靠性的同時,取消了原來一些的折中設計。 IBM的EVENODD技術(由EMC公司在其Symmetrix DMX系統上實作)和NetApp的RAID – DP技術(由NetApp公司在其FAS和V系列産品上實作)都是通過減少算法開銷的方法,進而提升了RAID 6的性能。

  NEC公司的RAID-TM技術(也稱為三重鏡像技術,在其D系列存儲系統上實作)旨在解決RAID 1的資料丢失風險問題--即RAID1的主磁盤和鏡像磁盤都發生故障或者出現不可恢複的讀錯誤。RAID-TM技術會同時向三個獨立的磁盤寫資料,在三重鏡像磁盤組中,即使有兩個磁盤出現故障或讀錯誤,應用程式仍然可以通路它的資料,而且性能也不會下降,甚至在磁盤重建的時候也是一樣。RAID-TM的優點是性能出色,缺點是需要消耗更多的可用存儲容量。

  RAID-X是IBM XIV存儲系統上的創新技術,它使用“更寬”的條帶(stripe)優化RAID,在性能和資料丢失風險之間尋求新的平衡。RAID-X基本上是RAID 10的一個變種,它使用智能的風險控制算法,将鏡像的資料塊随機分布于整個陣列上。使用這種方法,XIV可以在30分鐘之内完成2TB大容量磁盤的重建資料。如同其他所有的鏡像技術一樣,它的代價也是可用容量損耗比較大。

  Pivot3公司、以及被惠普收購的LeftHand Networks公司在其基于x86叢集平台的iSCSI存儲系統上都提供一種變種的“網絡RAID”技術。“網絡RAID”充分利用了RAID的概念,但它以存儲節點作為基本的組成單元,而不是磁盤。根據不同的“網絡RAID”級别,它能夠以邏輯卷為機關,将一到四份鏡像的資料塊分布于叢集之上。實時的塊級節點狀态檢測自愈功能使得“網絡RAID”可以在節點之間拷貝并修複資料,在錯誤發生之前将隐患排除。這樣做可以降低因磁盤故障或不可恢複的讀錯誤導緻的資料重建的幾率(資料重建操作對系統性能影響非常大)。如同其他所有的鏡像技術一樣,它也減少了存儲系統的實際可用容量。

  上面提到的以RAID為基礎的創新技術僅僅是一部分,其他正在孕育中的技術提案包括RAID 7(三重或多重奇偶校驗)或TSHOVER(三重奇偶校驗)。

  以RAID為基礎的改進

  另一種替代傳統RAID的想法是試圖重新創造一種RAID。他們通常以RAID為基礎,并在上面做一些改進。其概念就是保留RAID技術的優點,并改進其不足。改進型RAID技術包括帶有自愈能力的存儲系統以及BeyondRAID。

  帶有自愈能力的存儲系統:Xiotech公司的Intelligent Storage Elements (ISE)是一個典型的帶有自愈能力的存儲系統。ISE将 RAID和磁盤緊密內建,形成一個單一的存儲單元。

  Xiotech設計的ISE架構,可以避免大多數因RAID重建帶來的問題,因為它可以減少67%到90%的RAID重建次數。首先,ISE通過主動預防/修複的方式在磁盤故障被發現之前完成修複,這可以減少磁盤報錯的次數(這個過程采用的修複算法與在工廠維修過程中使用的算法相同)。ISE還采用了先進的抗震控制系統和稱為DataPacs的密閉系統,以減少外部環境原因引發的磁盤故障。如果仍然有故障發生,DataPacs密閉系統内部的修複單元會自動啟動出廠時定義好的維修程式,通過分析電流的波動、重新校準各單元元件、重新初始化磁盤等方法進行自動維修。

在需要時,系統還可以将資料遷移到其他扇區或其他磁盤上儲存,以防丢失。如果故障仍然不能排除,ISE系統會隔離那些不可恢複的扇區,并在這些扇區上重構資料。利用這些技術,RAID需要重建的幾率會小得多。此外,這些修複都是系統自動進行的,不需要管理者插拔故障磁盤進行人工幹預,效果相當于把磁盤直接送回工廠返修。ISE系統的缺點是它的前期成本較高,盡管它可以降低TCO總體擁有成本(Xiotech公司為它的産品提供5年保修)。

  Atrato公司的Velocity 1000(V1000)産品使用了一種叫做FDIR (Fault Detection, Isolation Recovery )的主動修複技術,該技術內建在Atrato的虛拟化引擎(AVE)中。FDIR監測部件和系統的健康狀況,并且具有自我診斷和自愈功能。與 Xiotech的技術不同的是,它不會嘗試直接修複磁盤的錯誤。Atrato的設計是在一個3U大小的系統中放置160塊 2.5英寸SATA磁盤,這個系統被稱作SAID (Self-maintaining array of independent disks),意為具有自主維護能力的磁盤陣列。為了在實際應用環境中判斷磁盤是否存在問題,Atrato将實際監測到的性能同它的ORT(大量SATA 磁盤環境下的業務可靠性測試)性能資料庫做比對,以此來檢驗真實業務環境中SATA磁盤出現的偏差。

  在應對磁盤故障時,Atrato的系統會先嘗試修複出錯的磁盤扇區(盡管這種修複方法達不到工廠的那種級别),如果磁盤故障或不可恢複的讀錯誤無法被修複,系統會隔離這些扇區,隻有受影響的(扇區中的)資料才進行重建并重定向到虛拟的位址空間。如果某個磁盤完全損壞,其上的資料會整體重建并重定向到虛拟的位址空間。Atrato的系統僅僅處理損壞的扇區上的資料,是以可以減少重建的次數和時間。Atrato為他的産品提供三年保修。

  DataDirect Networks公司的S2A産品采用了即時自愈技術。在磁盤完全失效之前,通過多級别的恢複設計,處理出錯的磁盤。它會為每個磁盤維護一個寫記錄檔,跟蹤出現問題的寫操作,在出現問題時嘗試恢複這些操作。如果恢複操作能夠成功,那說明其實隻有一小部分資料需要通過日志資訊恢複。利用這個技術,重建的時間被大大縮短,使用者也沒有必要打電話找人支援了。

  Panasas公司的ActiveScan技術通過連續監視磁盤及其資料内容來發現問題。ActiveScan監視資料對象、RAID 奇偶校驗、磁盤媒體以及磁盤驅動器的屬性。當檢測到可能有問題出現時,系統會将資料遷移到同一個磁盤的空閑塊中。系統通過對SMART(磁盤自我監測分析和報告技術)資訊的統計分析,可以預知潛在的磁盤故障,并提前采取措施保護資料。是以,當預測到磁盤即将發生故障時,系統會根據使用者設定好的政策,提前将資料遷移到其他的磁盤上,以此減緩RAID重建的必要。

  LSI公司和NEC公司的存儲系統都能做到在探測出扇區錯誤的同時,該磁盤仍然可以像RAID組中其他磁盤一樣連續運作。如果能夠配置設定到可替代的扇區,(出錯的)磁盤就可以傳回到運作狀态,進而避免了整個磁盤完全重建。在整個探測及修複的過程中,系統的性能是可以保證的。這是一種功能有限的自我修複技術,但是也可以有效降低重建的次數,并且能夠幫助系統保持較高的性能水準。

  3PAR公司的InSpire存儲系統采用了特殊的架構設計,可以實作較高的重建性能。通過利用進階磁盤錯誤隔離技術,減少了需要重構的資料量。與此同時,充分發揮其大規模并行處理能力的優勢,快速地重建資料(時間通常少于30分鐘)。InSpire系統以“chunklets” (3PAR定義的最小虛拟盤機關)為邏輯單元,采用多對多關系的叢集結構設計。此外,高并發處理能力使得3PAR可以跨多個實體磁盤櫃分離RAID組成員,将資料丢失的風險降到最低,即便是某個機箱整體出現問題也不用擔心。

  BeyondRAID:Data Robotics公司設計了這個概念,BeyondRAID建立在RAID之上,并且對管理者完全透明。決策故障盤離線的過程是傳統RAID的工作機制,而BeyondRAID将其設計思想轉化為動态的線上狀态管理。BeyondRAID在本質上實作了RAID的自主管理。它基于RAID設計是因為任意特定的時間點都需要保護資料,但是人們真正關注它的原因是BeyondRAID可以解決傳統RAID的不足。它可以應對一塊或者兩塊磁盤出錯,并且内建自動的資料自愈功能(非存儲自愈)。資料塊跨所有的磁盤分布,資料重建的速度非常快。由于該系統具有“資料識别”能力,是以磁盤不需要統一容量,磁盤的槽位可以重新排序,重建時間也會根據資料量線性變化。BeyondRAID系統最大隻能管理8個SATA磁盤,雖然隻對中小企業(SMB)來說頗具吸引力,但它是一個真正的不需要管理的存儲系統。

  放棄RAID技術:Erasure codes分布式資料存儲技術

  Erasure codes的設計是将資料分割成多個等長的不能直接讀取的資料塊,并且在每個資料塊上附加中繼資料資訊。一份完整的資料通過全部資料塊中的部分子集就可以複原,也就是說隻要有部分資料塊存在,資料就不會丢失。這些資料塊可以分布在不同的存儲位置,可以是一個資料中心内部,可以跨越城市、跨越一個地區,或者在世界上任何其他地方。

  Erasure codes天生具有資料安全性機制,因為每個獨立資料塊所包含的資訊量都不足以揭示原始資料集的全貌。必須有足夠數量的資料塊集合(可能來自于不同的存儲節點)才能恢複完整的資料,這個數量由附加在每個資料塊上的中繼資料資訊量決定。附加的中繼資料資訊越多,意味着恢複時需要的資料塊就越少。

  Erasure codes在面對自然災難以及技術錯誤時具有很強的生存适應能力,因為隻要有部分資料塊存在,就能複原完整的原始資料。實際上,如果使用Erasure codes技術保護資料,即使用戶端、伺服器、存儲單元,磁盤驅動器或者網絡這一些列環節中同時發生多個故障,我們仍然可以實時通路資料。

  Erasure codes也被叫做正向糾錯(FEC,forward error correction),與RAID的存儲機制完全不同。Erasure codes可以消除上文中我們提到過的所有RAID的不足。這是一項新技術,到目前為止,隻有三個廠商推出了基于Erasure codes技術的産品:Cleversafe公司的dsNet;EMC公司的ATMOS;以及NEC公司的Hydrastor。

  Erasure codes似乎更适合大規模資料存儲環境,而不是小規模存儲。它特别适合于雲存儲或者分布式存儲,因為它根本不需要資料複制,并可以在廣域的多個地理位置分散存儲資料。

  RAID技術的演變

繼續閱讀