圖1 Reed Solomon Erasure Code 算法

當前,Microsoft、Google、Facebook、Amazon、淘寶等互聯(lián)網巨頭早已開始研究Erasure code編碼存儲技術,并將其實際應用到各自主流存儲系統(tǒng)中。

Google GFS II中采用了最基本的RS(6,3)編碼,將一個待編碼數(shù)據(jù)單元(Data Unit)分為6個數(shù)據(jù)塊(data block),再添加3個校驗塊(parity block),最多可容包括校驗塊在內的任意3個數(shù)據(jù)塊錯誤。

微軟在其云存儲平臺Windows Azure Storage中將校驗塊分為全局校驗塊、局部校驗塊。當發(fā)生任何一個數(shù)據(jù)塊錯誤時,恢復代價由傳統(tǒng)RS(12,4)編碼的12(通過網絡傳輸?shù)臄?shù)據(jù)塊數(shù)量),變?yōu)?,恢復過程的網絡I/O開銷減半。

Facebook HDFS RAID的早期編碼方式是RS(10,4),為減少數(shù)據(jù)恢復的網絡I/O,F(xiàn)acebook于VLDB 2013發(fā)表名為“XORing Elephants”的LRC編碼方法,除了在原先的10個數(shù)據(jù)塊之后添加4個校驗塊外,還將10個數(shù)據(jù)塊均分為2組,每組單獨計算出一個局部校驗塊,將數(shù)據(jù)恢復代價由原來的10降低為5。

采眾家之長浪潮SDA60000中的Erasure Code

當然,天下沒有免費的午餐,HDFS Erasure Code在提升存儲空間利用率的同時,由于數(shù)據(jù)校驗塊的計算需要額外的CPU時間,加上完整的數(shù)據(jù)塊只有一份,在高并發(fā)讀取時效果不理想。故此,應用Erasure Code需根據(jù)數(shù)據(jù)量和性能需求制定有針對性的策略:對于數(shù)據(jù)量大,存儲空間緊張,訪問頻度低的數(shù)據(jù)采用Erasure Code方式。

浪潮云海大數(shù)據(jù)一體機SDA60000借鑒了各大廠商的研發(fā)和優(yōu)化經驗,采用Erasure code對HDFS的存儲機制進行改良,它采用的RS因子為RS(10,4),即為每10個數(shù)據(jù)塊生成4個校驗塊,每個集群可容忍最多4個節(jié)點失效,數(shù)據(jù)冗余度為1.4。通過Erasure code技術,SDA60000在保證了數(shù)據(jù)容錯的基礎上大幅提升了存儲空間利用率。

圖2 SDA60000 Erasure Code 策略

如圖2所示,浪潮云海大數(shù)據(jù)一體機SDA60000可為HDFS的每一個目錄制定靈活的Erasure Code策略,通過制定RAID間隔,SDA 60000可以實時偵測特定目錄中數(shù)據(jù)的冷熱程度,當系統(tǒng)發(fā)現(xiàn)某些數(shù)據(jù)在很長一段時間沒有被訪問時,自動將底層的存儲機制從默認的三副本轉化為Erasure Code,以提升文件系統(tǒng)的空間利用率。

在實際應用中HDFS Erasure Code功能非常適合海量歷史數(shù)據(jù)的存儲,是圖片視頻數(shù)據(jù),音頻數(shù)據(jù)和日志數(shù)據(jù)理想的動態(tài)歸檔方案,在政府、公安、醫(yī)療和科研等行業(yè)具有廣泛的應用前景。

相對于傳統(tǒng)的業(yè)務系統(tǒng),大數(shù)據(jù)分析系統(tǒng)對于數(shù)據(jù)可用性和數(shù)據(jù)處理性能要求更為苛刻,浪潮云海大數(shù)據(jù)一體機將進一步發(fā)揮其軟硬件一體的優(yōu)勢,一方面,優(yōu)化軟件算法并針對硬件情況調優(yōu)參數(shù),另一方面,借助于浪潮強大的硬件研發(fā)能力,通過FPGA(Field-Programmable Gate Array)加速卡,SSD緩存加速等技術加速編碼速度,提升磁盤IO性能。

浪潮是領先的云數(shù)據(jù)產品及方案供應商,目前已全面涉足軟件定義數(shù)據(jù)中心,強調以硬件重構和軟件定義相結合的融合架構,來實現(xiàn)數(shù)據(jù)中心所有資源的全虛擬化、全自動化,更好的滿足大數(shù)據(jù)、云計算應用對IT基礎架構的要求。浪潮云海大數(shù)據(jù)一體機SDA60000作為一款融合架構產品,將是未來軟件定義數(shù)據(jù)中心支撐平臺的重要選擇之一。

分享到

redsenlin

相關推薦