圖 1 Reed Solomon Erasure Code 算法

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

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

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

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

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

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

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

圖 2 SDA60000 Erasure Code 策略

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

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

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

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

分享到

sunyingying

相關(guān)推薦