各家廠商的分散式RAID技術,運作原理基本上是一致的,我們可以將運作架構區分為三個層級:

第一層是虛擬區塊層,也是最底層,將陣列中所有實體磁碟空間,切割為一個個均等的虛擬化區塊,每臺磁碟都會將一部分虛擬化區塊保留為備用空間。

第二層是虛擬區塊群組組成的RAID層,跨不同磁碟,將多個虛擬化區塊組成具備RAID保護機制的Stripe區段。

第三層是虛擬儲存池層,將虛擬區塊組成的Stripe區段,指派到儲存池中統一管理,再依照用戶端的需求,叢儲存池管理的儲存空間中,建立Volume儲存區,隨後映射為用戶端的LUN儲存區。

雖然各家分散式RAID的基本原理相同,但在技術細節上,有著幾點關鍵區別,包括:虛擬區塊的大小,儲存群組規模與磁碟型式,Stripe區段的RAID型式與stipe寬度,是否結合Volume或LUN虛擬化等,因而也帶來不同的特性。

虛擬區塊的大小

分散式RAID的最底層,將實體磁碟空間畫分為虛擬區塊,而每種分散式RAID技術所採用的虛擬化區塊術語及空間,差異都很大。

例如,HPE從3PAR沿用到Primera與Alletra 9000系列的Fast RAID,採用的虛擬區塊是1GB的Chunklet,而NetApp的Dynamic Disk Pool(DDP)採用512 MB的D-Piece區塊。

相較之下,華為RAID 2.0+用較小的64 MB Chunk區塊,Seagate ADAPT所使用的Chunk 區塊,更只有512 KB大小;最小的則是Infinidat 的InfiniRAID,採用64KB的資料區段(data section)。

就重建速度來說,虛擬區塊越小越有利。因為,當分散式RAID重建資料時,只需要重建失效磁碟所包含的虛擬區塊即可,所以,虛擬區塊的粒度越精細、越小,需要重建的資料量也越少,可在更短的時間內完成重建。

舉例來說,如果同樣都是損壞1臺磁碟,而該磁碟包含1 MB資料,對於HPE FastRAID來說,由於基本運作單位是1GB的Chunklet區塊,因而重建時也必須處理整整1GB的資料量。若換成Infinidat的InfiniRAID,只須重建相當於16個64 KB資料區段的資料即可,耗時也短了許多。

但另一方面,虛擬區塊的粒度如果越精細,以相同容量磁碟空間切分的虛擬區塊數量也會越多,而對應的metadata越多,控制器的需要追蹤、管理的區塊數量隨著增加,管理的負擔也越大,因此,虛擬區塊的粒度並非越精細越好。

分散式RAID的基本架構

先將實體磁碟空間切分為虛擬區塊,再跨多臺實體磁碟將多個虛擬區塊組成具備RAID保護能力的群組,接著將RAID群組配置到虛擬儲存池中統一管理,最後再從儲存池中建立用戶端使用的Volume儲存區。

儲存群組規模與磁碟型式

分散式RAID的主要訴求,是透過分散式架構,讓更多的磁碟參與重建作業,從而大幅加快資料重建寫入速度。

因而分散式RAID架構都允許建立規模十分龐大的儲存群組,將大量磁碟組成1個「重建區域(Rebuild Areas)」。

以Infinidat的InfiniRAID為例,最大可使用480臺磁碟組成儲存群組,若有2臺磁碟失效,其餘478臺磁碟都將共同參與重建,可獲得十分驚人的重建速度。

但另一方面,儲存群組規模越大,安全性的隱患也越大。因為任何硬碟或SSD都存在著一定的失效機率,當群組內的磁碟數量越多,累積出現磁碟失效的機率也越高,更進一步而言,如果出現多臺磁碟同時失效,導致超出系統保護能力,無法重建的風險也隨之升高。

所以,重建區域的磁碟數量並非越多越好,而必須在重建效能與安全性方面尋求平衡。有些分散式RAID機制,如Seagate ADAPT、華為RAID 2.0+、IBM DRAID等,都將儲存群組的磁碟規模上限設定在128臺,以降低同時出現多臺磁碟同時失效的風險。而Dell的Dynamic Pools則更保守,將磁碟群組上限設定在64臺,更是突顯他們對安全性的重視。

除了磁碟群組所能包含的磁碟數量,分散式RAID架構對於磁碟群組內的磁碟類型與容量,也有所要求。

為了確保效能穩定,所有的分散式RAID技術,都要求同一磁碟群組中的磁碟必須是同類型,例如,同樣是SSD,或同樣是7200轉NL-SAS硬碟等,而無法混用不同類型的磁碟。不同類型的磁碟,必須各自組成不同的群組,然後構成分層儲存架構。

而在磁碟容量方面,在一些分散式RAID技術的應用上,廠商會建議同一群組中的磁碟必須是相同容量,若加入更大容量的磁碟,則額外的容量將無法使用。不過,有些較新的分散式RAID技術卻是例外,如Dell的Dynamic Pools、Seagate的ADAPT等,允許同群組混合同類型、但不同容量的磁碟,而且他們的區塊虛擬化技術能使用所有磁碟容量。

RAID區塊群組的選項

為了獲得足夠的存取效能與保護能力,分散式RAID會將多個底層的虛擬區塊,組成具備Stripe與Parity機制的RAID虛擬區塊群組,而RAID區塊群組的組合型式,如不同的Stripe寬度與Parity數量組合,會影響到效能、空間利用率,以及保護能力。

因此,我們需要注意的要點有3個,一為能否提供多種RAID群組設定,二為Stripe寬度,三為Parity數量。

RAID層級選擇

大部分的分散式RAID技術都提供多種RAID設定,可選擇不同的Stripe寬度與Parity數量,構成多種RAID層級選項,從而提供給用戶較多的彈性,如Dell PowerMax的FlexRAID、華為RAID 2.0+、IBM DRAID等,都支援多種Stripe寬度與Parity選項組合,從而可提供多樣化的RAID 5、6、10組態組合。

另一些分散式RAID技術,則採用固定的Stripe區段與RAID設定,用戶只有1種選擇,如Infinidat的InfiniRAID為固定的14D+2P,由14個資料區塊與2個Parity區塊組成1個Stripe區段,可提供等同於RAID 6的保護能力。類似的做法也出現在Seagete ADAPT與NetApp DDP,它們也都是固定的8D+2P。

乍看之下,似乎能提供越多RAID層級選項就越好,但考慮到分散式RAID的重建區域往往包含數十臺甚至更多磁碟,以這樣的磁碟規模,必須選用RAID 6,才能提供起碼的保護能力。

相形之下,RAID 5的保護能力不足;至於RAID 10雖然保護能力足夠,但有效容量只有一半,對於包含數十臺磁碟的分散式RAID群組來說,會形成巨大的資源浪費。

因而只提供RAID 6的作法,也是相對合理的選擇。

舉例來說,HPE的Fast RAID在早先的3PAR StoreServ產品,可提供RAID 6、10、50等多種選擇,但這項技術沿用到後來的Primera與Alletra 9000產品線時,就只保留RAID 6的選項。

Parity與Stripe寬度選擇

而就Parity來說,越多則能提供越高的容錯能力,但相關的編碼運算更複雜,Parity也會占用更多空間,會影響效能與空間利用率,目前的分散式RAID技術中,大多最高只提供雙Parity等級保護能力,僅華為RAID 2.0+有三Parity選項。

而Stripe寬度越大,有利於提高效能與有效空間比率,但需要的磁碟數量門檻也越高,以目前的分散式RAID技術來說,Stripe寬度最大的應該是Infinidat InfiniRAID的14D+2P,Dell Dynamic Pools也提供14D+2P的選項,較常見的是8D+2P以下的Stripe寬度。

失效隔離機制

分散式RAID是依靠Stripe區段的Parity機制來提供保護能力,當磁碟群組中出現磁碟失效時,可利用Parity來重建失效區塊的資料。不過,因Stripe區段是散布在磁碟群組所有磁碟上,若失效磁碟同時包含同一Stripe區段的多個虛擬區塊,則可能會超過系統容錯能力的上限,導致無法重建資料。

因而所有的分散式RAID技術,都會透過各自的演算法,將每個Stripe所包含的虛擬區塊,隨機散布到儲存群組中的不同磁碟上,盡可能降低同一個Stripe區段的多個區塊,同時位於同一臺磁碟上的機率,藉此隔離任一磁碟失效所能影響到的Stripe區段範圍。

LUN虛擬化技術

少數的分散式RAID技術是直接使用RAID區塊群組,來組成供用戶端使用的Volume儲存區,例如NetApp的DDP。

而大多數的分散式RAID技術,都會在RAID區塊群組之上,再透過LUN虛擬化技術的中介,組成提供給用戶端的Volume儲存區,然後映射給前端主機成為LUN。如此一來,可在Volume這一層,以更精細的虛擬化區塊組成用戶端使用的儲存區,以配合Thin Provisioning技術改善資源利用率,或是配合不同的用戶端應用程式存取特性,為Volume配置合適的區塊,以改善效能。

例如HPE Fast RAID,便是透過是透過稱做CPG(Common Provisioning Groups)的虛擬儲存池,來集中保管稱作邏輯磁碟機的RAID區塊群組,然後,從CPG建立掛載給前端主機使用的Virtual Volume。最後,再把Virtual Volume映射給主機成為LUN,這些層級各自採用不同管理粒度,最底層從實體硬碟切割的Chunklet區塊大小是1 GB,而Logical Disk的管理粒度是32 MB與128 MB的區域,而到了 Virtual Volume層,一般Volume是使用32 MB的Extent區塊,Thin型式的Volume則是採用16 KB的page。

在類似的作法上,華為的RAID 2.0+是透過儲存池(Storage Pool)來集中管理稱作 Chunk Group的RAID區塊群組,再從儲存池中,以512 KB到64 MB的Extent區塊或是更精細的Grain區塊,來組成提供給用戶端的Volume。

主要分散式RAID技術總覽

在6年前的iThome封面故事報導中,我們介紹當時主要的4種分散式RAID技術,包括HPE的Fast RAID、NetApp的DDP,華為的RAID 2.0+,以及IBM的Distributed RAID(DRAID)。

在這之後,市場上又出現更多分散式RAID,而在接下來的報導,我們將介紹這些較晚問世的技術,包括Dell為旗下產品線發展的多種分散式RAID,Seagate的ADAPT,以及Infinidat的InfiniRAID。

 

 相關報導  分散式RAID躍居主流儲存應用

熱門新聞

Advertisement