分布式存儲的技術趨勢(二):雙重RAID機制
為了解決三副本分布式存儲面臨的性能問題、穩(wěn)定性及可靠性等缺陷,道熵的鐵力士分布式存儲采用雙重RAID保護機制,在前文中我們探討了分布式存儲的基本原理,分析了三副本分布式存儲的潛在隱患:
- 性能問題:三副本分布式存儲受到IO分布不均勻和木桶效應的影響,導致大延遲和響應遲鈍的現(xiàn)象;
- 穩(wěn)定性問題:頻繁的數(shù)據(jù)重建會導致用戶業(yè)務受到影響、甚至業(yè)務中斷;
- 數(shù)據(jù)丟失風險:尤其是,當硬件老化,或出現(xiàn)大規(guī)模掉電或節(jié)點意外宕機時,可能會導致多個機械硬盤同時出現(xiàn)損壞,危及三副本分布式存儲的數(shù)據(jù)安全。
為了解決三副本分布式存儲面臨的性能問題、穩(wěn)定性及可靠性等缺陷,道熵的鐵力士分布式存儲采用雙重RAID保護機制,除了繼承網(wǎng)絡RAID(節(jié)點間副本、跨節(jié)點糾刪碼)和一致性哈希隨機分布數(shù)據(jù)的特點,鐵力士將磁盤陣列特有的節(jié)點內RAID技術和存儲虛擬化(池化)管理技術, 即Storage Virtualization Manager (SVM),與分布式技術相結合,如圖2所示。

圖 2 OneStack分布式存儲雙重Raid機制
網(wǎng)絡Raid技術
在鐵力士分布式存儲中,每個數(shù)據(jù)塊按照一致性哈希算法,隨機選擇兩個不同存儲節(jié)點來保存數(shù)據(jù)的兩個副本,保證當任何一個節(jié)點宕機時,仍有一個數(shù)據(jù)副本保證讀寫操作,確保業(yè)務高可用和數(shù)據(jù)安全。
節(jié)點內Raid技術
在鐵力士分布式存儲的每個節(jié)點內,通過SVM存儲虛擬化技術實現(xiàn)節(jié)點內的RAID數(shù)據(jù)保護,RAID級別選擇可以是鏡像,也可以是存儲效率更高的RAID5或6。節(jié)點內RAID保護可抵御單個或多個硬盤損壞,故障修復限制在節(jié)點內部,無需觸發(fā)網(wǎng)絡數(shù)據(jù)重建,有效地避免了網(wǎng)絡重建風暴。
節(jié)點內RAID結合網(wǎng)絡Raid(跨節(jié)點的副本/EC碼)技術,鐵力士實現(xiàn)了雙重RAID數(shù)據(jù)保護。在三副本架構中,一旦同時出現(xiàn)三塊磁盤故障或受損,數(shù)據(jù)就可能丟失;而在雙重RAID架構中,即使每個節(jié)點同時出現(xiàn)一塊磁盤故障,數(shù)據(jù)仍然無憂,業(yè)務仍然持續(xù)。考慮到分布式存儲可能包含數(shù)十個甚至上百個存儲節(jié)點,雙重RAID的數(shù)據(jù)可靠性明顯超過三副本架構。
存儲虛擬化技術
鐵力士在每個存儲節(jié)點運行在存儲虛擬化管理軟件(SVM)上,把該節(jié)點的存儲資源整合為一個統(tǒng)一管理的存儲池,為分布式系統(tǒng)提供vOSD資源。SVM采用寬條帶機制(見圖3),將每個vOSD的工作負載均勻分布在節(jié)點的每個磁盤上,大幅提高了單個vOSD的IOPS能力,可有效抵御三副本分布式存儲中的IO分布不均勻現(xiàn)象。
圖 3 節(jié)點內Raid條帶機制
SVM存儲池由節(jié)點內多個RAID小組構成,通過虛擬卷為上層分布式系統(tǒng)提供vOSD存儲服務。每個vOSD對應于三副本中由物理HDD承載的OSD。由分布式一致性哈希算法分配來的數(shù)據(jù)塊,將寫入SVM存儲池中、由虛擬卷支撐的vOSD,而非直接寫入物理硬盤。SVM 利用寬條帶技術,將vOSD的工作負載均勻分布在各個物理磁盤上:每個大小為4MB的vOSD 對象數(shù)據(jù)塊,被分割為32KB的數(shù)據(jù)塊,依次被安排在RAID組的邏輯地址空間中;SVM 對各個RAID小組的邏輯地址空間采取順序寫優(yōu)化策略:首次寫按各個小組的邏輯地址分配地址空間,按順序寫入數(shù)據(jù);后續(xù)重寫,則優(yōu)先填滿空閑地址空間,盡可能實現(xiàn)硬盤順序尋址,最大限度降低機械硬盤較慢的尋址操作次數(shù),利用機械硬盤順序寫較快的特點來提升IO性能。
二級DRAM+Flash 緩存加速
磁盤陣列中常見的性能加速手段是共享緩存加速,中高端磁盤陣列與低端磁盤陣列的在性能方面的一個重大區(qū)別,除了控制器個數(shù),就是緩存加速的能力。典型的中高端磁盤陣列能支持的共享緩存加速在512GB到1TB上下。鐵力士借鑒了磁盤陣列的設計,通過SVM虛擬化實現(xiàn)DRAM與Flash相結合的二級緩存加速:通過自適應算法,自動識別動態(tài)或靜態(tài)熱數(shù)據(jù)(高頻率讀寫或最近讀寫數(shù)據(jù)),將最熱的數(shù)據(jù)保存在延遲最小的DRAM中,而將次熱的數(shù)據(jù)保存在更大容量、基于Flash的固態(tài)硬盤上;并由于分布式技術的加持,形成一個容量巨大的分布式二級緩存系統(tǒng)。與中高端磁盤陣列相比較,鐵力士分布式存儲系統(tǒng)支持數(shù)10TB、甚至100TB以上的分布式緩存,相當于其10倍、甚至100倍的緩存容量。
數(shù)據(jù)完整性校驗與數(shù)據(jù)自修復
SVM存儲虛擬化管理借鑒了WAFL(NetApp) 、Btrfs(SuSE)、ZFS(Oracle)、Storage Spaces(微軟)等文件系統(tǒng)的先進經驗,對底層存儲的每個數(shù)據(jù)塊增加一個256比特的校驗碼,并單獨保存在一對固態(tài)硬盤鏡像中,用于快速實現(xiàn)在線數(shù)據(jù)完整性校驗。一旦校驗碼檢查到數(shù)據(jù)受損,通過節(jié)點內RAID功能實現(xiàn)數(shù)據(jù)自修復。該功能可快速定位硬件故障,并實現(xiàn)硬件故障自動隔離。
關于雙重RAID更多信息,請關注分布式存儲的技術趨勢(三):雙重Raid與三副本對比。

























