在2016年9月刊出的iThome封面故事「RAID 2.0興起」中,我們曾指出,傳統RAID架構已無法滿足大容量磁碟的資料保護要求,必須改以新一代的分散式RAID來因應。
經過整整6年的時間之後,面對持續提高的磁碟容量,傳統RAID顯得更加無力,也使得分散式RAID的導入更加迫在眉睫。
事實上,在過去短短6、7年來,磁碟容量便提高了2倍以上,在2016年當時,市售硬碟容量最大不過10 TB,而到了今日,市售硬碟容量早已突破20TB。SSD領域也是如此,15 TB等級SSD是在2015年時進入市場,容量加倍的30 TB SSD僅僅在3年多之後便問世。
然而,在磁碟容量大幅提高的背後,依靠RAID機制來提供資料保護的各式儲存設備,也面臨資料重建時間大幅延長,以致對安全性與可用性的確保都帶來了隱患。
傳統RAID的重建速度瓶頸
影響RAID重建速度的因素,包括:磁碟群組的磁碟容量,RAID群組包含的磁碟數量,重建作業在儲存陣列系統中的優先等級,LUN實際切割的容量,以及RAID的型式等等,不過,決定性的因素,是熱備用(Hot Spare)磁碟的寫入效能。
傳統RAID架構是指派磁碟群組中特定的1或2臺硬碟,作為閒置的備用硬碟,負責提供資料重建所需的備用容量,但這也意味著,RAID重建資料時的寫入負載,也就集中在這臺備援硬碟上。
無論RAID群組採用哪種RAID型式、匯聚了多少臺磁碟,以及儲存陣列分派多少資源供重建作業使用,最終都還是必須依靠備用磁碟來寫入重建資料,因而備用磁碟的寫入速度,也就決定了資料重建時間的長短。
一般而言,當前機械式硬碟產品的持續傳輸速率大多都在200 MB/s上下,但是,在實際的大量資料持續寫入情境下,寫入速率往往只能達到80至100 MB/s左右。而這樣的持續傳輸速率,也同時決定了RAID重建速度上限。
大容量磁碟帶來的資料重建衝擊
由於硬碟寫入速度的限制,所以硬碟本身的儲存容量越大,RAID重建所需時間也越長。假設重建速度為100 MB/s,則重建1臺4TB硬碟所需時間為10.5小時左右,似乎還在可接受的範圍內,但若換成10 TB硬碟,重建時間就會拉長到26.5小時,換成20 TB硬碟,所需時間更是加倍、達到53小時。而且,這還是儲存陣列無其他工作負載,所有資源都用於重建作業的理想情況。
在多數情況下,儲存陣列在重建期間仍需繼續維持服務,會優先因應前端主機的存取負載需求,重建作業被預設為最低的優先等級,在RAID重建期間的系統降級(degraded)狀態下,儲存陣列通常仍要求為前端主機提供60至70%效能,資料重建作業只能使用一部份效能,因此,系統重建實際耗用時間,將是硬碟傳輸率理論值的3至4倍或更多。
因而在實際的應用環境中,重建1臺10 TB硬碟可能要等待60至70小時以上,重建1臺20 TB硬碟的時間,則會拉長到100至150小時或更長。
這也意味著,當使用10TB、20TB這樣的大容量硬碟組成RAID時,硬碟一旦失效而帶來的資料重建作業,影響時間往往會長達一週以上。
遑論企業端,即便是消費端使用者,也很難忍受這樣長的重建時間衝擊。在等待重建作業完成的漫長期間,不僅儲存陣列的效能受到明顯影響(相當一部分系統效能消耗在重建作業上),而且,整個儲存系統會處於保護能力下降或失去保護能力的降級狀態,此時如果不幸再出現磁碟失效的狀況,可能將會造成無法挽回的情況。
所以,在硬碟容量動輒10 TB、20 TB的今日,傳統RAID架構受限於重建速度瓶頸,已不再能勝任磁碟資料保護機制的角色。
克服重建速度問題的方法
傳統RAID的重建效能瓶頸,基本上,是由下列兩個因素所共同導致:
(1)資料重建的寫入負載,集中於單一備用磁碟上,以及(2)機械式硬碟的寫入速度有限,隨著磁碟容量提高,須耗費相當長的時間才能完成重建資料寫入作業。
因而若要解決這個問題,我們可以有兩種解決思路:
一為硬體式的解決方案,也就是導入SSD,憑藉SSD的高寫入速度,克服機械式硬碟寫入速度過慢的問題。
二為軟體式解決方案,捨棄傳統RAID架構,改用分散式RAID架構,將資料重建負載分散到多臺磁碟上。
對於當前的企業級SSD來說,寫入速度至少是機械式硬碟的10倍以上,高階的NVMe SSD寫入速度,甚至堪比20倍於機械式硬碟。這意味著,若以SSD取代機械式硬碟組成RAID,重建速度便能提高10倍、20倍,原本需要耗費數十小時才能完成的重建作業,將能縮短到幾十分鐘到幾小時,大幅減輕資料重建對於系統的衝擊。
因而對於全快閃儲存陣列來說,憑藉SSD的高寫入速度,RAID重建速度不致於成為太大的困擾。
問題在於,對於整體應用環境來說,考量建置與總體持有成本,任何用戶都難以實現儲存環境的全面SSD化,只有部分關鍵應用能採用全快閃儲存陣列,多數資料還是不得不儲存於基於機械式硬碟的儲存陣列上,因而仍然必須面對RAID重建速度的問題。
所以,更合理的解決方法,是改用分散式RAID架構。
分散式RAID是一種軟體架構,即便儲存陣列的硬體組態完全不變,單單是以分散式RAID取代傳統RAID,也能在效能與重建速度方面得到顯著改善。其次,分散式RAID無論對於機械式硬碟還是全快閃儲存陣列,都能發揮效果,適用性更廣。
分散式RAID的效益
分散式RAID是建立在區塊虛擬化技術的基礎上,利用區塊虛擬化技術,將磁碟群組中所有實體磁碟的空間,切分為一個個虛擬區塊,然後橫跨群組中所有實體磁碟的虛擬區塊,組成提供給用戶端的Volume儲存區,同時,也利用散布在所有磁碟上的虛擬區塊,來作為資料重建的備用空間。
透過這種基於虛擬區塊的分散式架構,既可提高存取效能,同時也能解決重建速度的瓶頸。
分散式RAID的效能優勢
分散式RAID架構是利用磁碟群組中所有實體磁碟的虛擬區塊,來組成提供給用戶端的Volume,因而用戶端對Volume的每筆存取,等同於同時存取磁碟群組中所有磁碟,藉此可大幅提高效能。
傳統RAID架構雖然也能透過Stripe機制,結合多臺磁碟來提高存取效能,但RAID群組所包含的磁碟數量,不過十多臺到二十多臺。而分散式RAID架構則允許將上百臺磁碟、甚至數百臺磁碟組成群組,從而匯聚極大量磁碟的效能,非傳統RAID所能比擬。
分散式RAID的重建速度優勢
分散式RAID是由散佈在磁碟群組所有磁碟上的虛擬區塊,來共同提供備用空間,因而在重建時,資料也將分散寫入所有磁碟預留的備用空間區塊上。也就是說,分散式RAID透過區塊虛擬化技術,將資料重建的寫入作業,從傳統RAID的「多對一」寫入,轉變成「多對多」寫入,磁碟群組中的所有磁碟都將共同參與重建寫入作業,
這也意味著,分散式RAID的重建作業,是由磁碟群組中多達上百臺、甚至數百臺磁碟來共同承擔,因而可以獲得遠高於傳統RAID的重建速度。
更進一步,分散式RAID是以虛擬區塊為單位,當群組中任一磁碟失效時,只須重建該磁碟包含的虛擬區塊即可,而無須重建整臺磁碟的空間,也有助於縮短重建時間。
依照各廠商提供的資料,相較於類似硬體組態的傳統RAID架構,分散式RAID的重建速度至少快了10倍以上。
以Dell在PowerVault ME4白皮書公布的資料為例,以傳統8+2 RAID 6架構重建1臺10 TB硬碟,需要等待55.5小時之久,而PowerVault 採用的ADAPT分散式RAID架構,若以24臺硬碟組成ADAPT群組,只需24小時就能完成重建,節省近60%時間,若將ADAPT群組擴大到48臺與128臺硬碟,重建時間可減至11小時與4小時,節省80%與95%重建時間。
NetApp的DDP分散式RAID架構,也有相似的效果。在傳統10+2 RAID 6架構下,重建1臺3TB硬碟需51小時,重建2臺則需要100小時。若換成DDP架構,分別只需要8小時與12小時,節省了80%到90%時間。
分散式RAID對全快閃儲存陣列的效益
即便是全快閃儲存陣列,在RAID資料重建方面也並非高枕無憂。首先,隨著SSD容量的提高,重建時間同樣也跟著增加。其次,全快閃儲存陣列通常承擔關鍵應用,對於RAID重建導致的效能衝擊,容忍的餘裕也更小,所以,重建的所需時間越短越好。
因而全快閃儲存陣列若能結合分散式RAID技術,進一步縮短重建時間,對於改善可用性,也有相當大的助益。
舉例來說,Dell的PowerMax全快閃儲存陣列原本就有相當快的重建速度,但近期導入稱為Flex RAID的分散式RAID架構後,又進一步將重建速度提高50%以上。
除此之外,在分散式RAID架構下,無論是一般存取寫入或資料重建寫入,都是分散到群組中的所有磁碟上,對全快閃儲存陣列來說,等同於提供了一種跨磁碟的寫入損耗均衡機制,可避免寫入損耗集中在特定SSD上,有助於改善SSD的壽命。
進入全面普及階段的分散式RAID
在資料重建問題的推動下,分散式RAID這幾年來正在各廠商的儲存陣列產品當中迅速普及。
我們上次是在2016年中報導分散式RAID技術,當時儲存陣列市場只有HPE、IBM、NetApp、華為等廠商的少數產品線,導入分散式RAID技術。
時隔6年,分散式RAID技術的應用已較先前普及許多,無論應用的廣度還是深度,都有重要的進展。
就應用的廣度來說,已有更多的廠商與產品導入分散式RAID,關鍵的指標,是身為業界龍頭的Dell,這幾年內陸續為旗下主力儲存陣列產品線,全面引進分散式RAID架構。聯想(Lenovo)與富士通等廠商,也透過OEM型式,為自身產品引進分散式RAID功能。
除此之外,分散式RAID也滲透到更多類型的儲存陣列產品,除了用在作為第一線生產應用的主儲存陣列,一些針對備份、規檔等靜態儲存應用的第二線儲存陣列產品,如Quantum的DXi系列,IBM的TS7700虛擬磁帶櫃等,也導入分散式RAID。
就應用的深度來說,分散式RAID已經取代傳統RAID,成為許多一線大廠主力儲存陣列產品的主要保護機制,例如Dell的PowerMax、PowerStore等主力產品線,都只提供分散式RAID,而不再支援傳統RAID。類似的,HPE、華為的主力產品線,也都是基於分散式RAID,這也顯示,分散式RAID已逐步成為儲存陣列主流架構。
我們可以相當樂觀地預期,近期內還會有更多產品導入分散式RAID,並在不久的將來取代傳統RAID,成為儲存設備資料保護機制的必備基礎。
資料重建:傳統RAID vs. 分散式RAID
傳統RAID由群組中特定磁碟擔任備用磁碟角色,資料重建時的寫入是「多對一」型式,重建的寫入負載集中在備用磁碟上,形成效能瓶頸。分散式RAID則是透過區塊虛擬化技術,使用散佈在所有磁碟上的虛擬區塊作為備用空間,重建時的資料寫入是「多對多」型式,寫入負載分散到所有磁碟上。
分散式RAID vs. Erasure Coding
除了發展已有一段時間的分散式RAID,Erasure Coding也是近年來常被用於取代傳統RAID的資料保護技術。
Erasure Coding有許多類似傳統RAID 5、RAID 6與分散式RAID的特性,其存取同樣結合了Stripe與Parity機制,將寫入資料切分為小的分段並計算Parity,然後分散存放在磁碟群組的不同磁碟上,但可透過Reed-Solomen等編碼技術,獲得比傳統RAID更強大、更有彈性的保護能力。Erasure Coding擁有可調整的N個資料區塊+M個校驗區塊的保護力,建立容錯能力更大的磁碟群組,例如12+4、20+6、17+3等,可承受群組中出現更多臺磁碟失效的礦況,而且,儲存空間利用率更高,這是傳統或分散式RAID都辦不到的。
另一方面,Erasure Coding的備用空間則和分散式RAID一樣,利用散布於各節點的可用儲存空間來重建資料,因而也沒有傳統RAID的重建效能瓶頸。
不過,Erasure Coding的資料存取都須經過更複雜的編碼運算,處理器所面臨的負荷相當大,會影響存取延遲。而且,Erasure Coding雖然能建構出容錯能力超過傳統RAID或分散式RAID的保護架構,但與其搭配的硬體門檻也更高。
所以,Erasure Coding更適合節點數量較大、處理器規格更高的叢集式儲存架構,在這種情境下,可以發揮容錯能力與空間利用率的優勢。至於小規模儲存叢集,或是一般單、雙控制器的儲存設備,則是以分散式RAID較為適合。
熱門新聞
2024-12-10
2024-12-08
2024-12-10
2024-12-10
2024-12-10
2024-11-29