本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,具體地說(shuō)是一種基于運(yùn)算時(shí)間統(tǒng)計(jì)的糾刪參數(shù)提取方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的高速發(fā)展,數(shù)據(jù)也隨之爆發(fā)式增長(zhǎng)。如何存儲(chǔ)這些數(shù)據(jù)和如何保證數(shù)據(jù)安全成為了各個(gè)互聯(lián)網(wǎng)公司的遇到的一大難題。在這種背景下ceph(分布式存儲(chǔ)系統(tǒng))應(yīng)運(yùn)而生,由于ceph具有高可靠性、可伸縮、分布式、管理簡(jiǎn)單、開(kāi)源等特點(diǎn),迅速成為了各家互聯(lián)網(wǎng)公司爭(zhēng)相使用的大數(shù)據(jù)存儲(chǔ)系統(tǒng)。在ceph存儲(chǔ)系統(tǒng)中數(shù)據(jù)的安全性是通過(guò)數(shù)據(jù)冗余實(shí)現(xiàn)。
目前實(shí)現(xiàn)數(shù)據(jù)冗余有副本方式和糾刪方式兩種方式,副本方式即一份數(shù)據(jù)保存多(n個(gè))副本,當(dāng)一個(gè)副本出現(xiàn)問(wèn)題時(shí)可以通過(guò)讀取其他副本將其恢復(fù);糾刪方式將數(shù)據(jù)分割成一定數(shù)量(k個(gè))的數(shù)據(jù)塊,使用糾刪算法為這些數(shù)據(jù)塊計(jì)算出一定數(shù)量(m個(gè))的校驗(yàn)塊,當(dāng)一個(gè)或多個(gè)(小于等于m)數(shù)據(jù)塊出現(xiàn)問(wèn)題時(shí)可以讀取其他數(shù)據(jù)塊并通過(guò)糾刪算法將其恢復(fù)。由此可見(jiàn)副本方式的數(shù)據(jù)冗余度是n/1,糾刪方式的數(shù)據(jù)冗余度是(k+m)/k,由于通常m遠(yuǎn)小于k。因此不難看出糾刪方式明顯比副本方式節(jié)省空間。隨著數(shù)據(jù)量增大,這一優(yōu)勢(shì)越來(lái)越明顯,越來(lái)越多的用戶選擇糾刪方式作為數(shù)據(jù)存儲(chǔ)方式。
在工程應(yīng)用中測(cè)試發(fā)現(xiàn),利用糾刪方式在不同硬件環(huán)境下不同的k和m以及條帶尺寸的設(shè)置會(huì)導(dǎo)致數(shù)據(jù)讀寫(xiě)的效率有明顯的差別。若隨意選用k、m或條帶尺寸的值不能充分發(fā)揮ceph集群部署的性能,且錯(cuò)誤的ceph部署會(huì)帶來(lái)風(fēng)險(xiǎn)。
技術(shù)實(shí)現(xiàn)要素:
為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的在于提供一種基于運(yùn)算時(shí)間統(tǒng)計(jì)的糾刪參數(shù)提取方法,能夠快速準(zhǔn)確的找到一定硬件環(huán)境下k和m以及條帶尺寸的最優(yōu)值,提高ceph集群部署的性能。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:一種基于運(yùn)算時(shí)間統(tǒng)計(jì)的糾刪參數(shù)提取方法,其特征是:對(duì)不同糾刪參數(shù)組合分別進(jìn)行糾刪運(yùn)算,比較糾刪運(yùn)算所用的時(shí)間,獲得最優(yōu)糾刪參數(shù)組合。
進(jìn)一步地,具體步驟為,
s1,獲取用戶設(shè)置的糾刪算法類(lèi)型;
s2,加載對(duì)應(yīng)的糾刪算法庫(kù);
s3,生成測(cè)試數(shù)據(jù);
s4,取得一組糾刪參數(shù)組合;
s5,根據(jù)取得的糾刪參數(shù)組合對(duì)步驟s3生成的測(cè)試數(shù)據(jù)進(jìn)行糾刪運(yùn)算;
s6,重復(fù)步驟s5的糾刪運(yùn)算n次,并計(jì)算n次運(yùn)算所用時(shí)間的平均值;
s7,調(diào)整糾刪參數(shù)組合并重復(fù)步驟s5和步驟s6,在參數(shù)調(diào)整結(jié)束后轉(zhuǎn)到步驟s8;
s8,輸出不同糾刪參數(shù)組合下的統(tǒng)計(jì)結(jié)果并給出最優(yōu)組合建議。
進(jìn)一步地,步驟s2加載對(duì)應(yīng)的糾刪算法庫(kù)的步驟為,
s21,讀取糾刪類(lèi)型的配置文件,獲取對(duì)應(yīng)糾刪算法庫(kù)的位置;
s22,使用算法主函數(shù)名聲明函數(shù)指針;
s23,使用函數(shù)指針調(diào)用算法。
進(jìn)一步地,步驟s3生成測(cè)試數(shù)據(jù)的大小為1gb。
進(jìn)一步地,糾刪參數(shù)包括數(shù)據(jù)塊值k,糾刪塊值m和糾刪條帶尺寸;數(shù)據(jù)塊k的取值為1~32的整數(shù),糾刪塊值m的取值為1~k的整數(shù),糾刪條帶尺寸的取值為1k~64k的整數(shù)值。
進(jìn)一步地,步驟s6中n的取值為100。
進(jìn)一步地,步驟s7調(diào)整糾刪參數(shù)組合的步驟為,
s71,數(shù)據(jù)塊k的初始取值為1;
s72,判斷數(shù)據(jù)塊k的取值是否小于等于32,如果小于等于32則轉(zhuǎn)到步驟s73,否則結(jié)束參數(shù)的調(diào)整;
s73,設(shè)置校驗(yàn)塊m的值為1;
s74,判斷校驗(yàn)塊m的取值是否小于等于k,如果小于等于k則轉(zhuǎn)到步驟s75,否則使數(shù)據(jù)塊k的取值加1,轉(zhuǎn)到步驟s72;
s75,設(shè)置條帶尺寸初始值為1k;
s76,判斷條帶尺寸是否小于等于64k,如果條帶尺寸小于等于64k則轉(zhuǎn)到步驟s77,否則使校驗(yàn)塊m的取值加1,轉(zhuǎn)到步驟s74;
s77,調(diào)用糾刪算法,對(duì)測(cè)試數(shù)據(jù)進(jìn)行糾刪運(yùn)算;
s78,使條帶尺寸加1k,轉(zhuǎn)到步驟s76。
進(jìn)一步地,步驟s8輸出的統(tǒng)計(jì)結(jié)果為不同糾刪參數(shù)組合進(jìn)行糾刪運(yùn)算所用時(shí)間的平均值。
本發(fā)明的有益效果是:
數(shù)據(jù)塊值k,糾刪塊值m,糾刪條帶尺寸這三個(gè)參數(shù)在ceph集群開(kāi)始存儲(chǔ)數(shù)據(jù)后將無(wú)法再修改,本發(fā)明采用的參數(shù)提取方式在系統(tǒng)部署之前使用戶獲得參數(shù)最優(yōu)值,指導(dǎo)工作人員部署出最優(yōu)的集群,使計(jì)算資源得到充分利用,降低了錯(cuò)誤部署的風(fēng)險(xiǎn);
本發(fā)明的進(jìn)行參數(shù)提取時(shí)自動(dòng)調(diào)整k、m以及糾刪條帶尺寸的值,全程無(wú)人員干預(yù),準(zhǔn)確可靠;
本發(fā)明通過(guò)調(diào)整k、m及糾刪條帶尺寸的值,提取到的參數(shù)組合數(shù)量龐大,最終得到的最優(yōu)參數(shù)組合的可靠性強(qiáng)。
附圖說(shuō)明
圖1是糾刪參數(shù)k、m和條帶的關(guān)系示意圖;
圖2是糾刪參數(shù)提取方法的流程示意圖;
圖3是調(diào)整糾刪參數(shù)組合的流程示意圖。
具體實(shí)施方式
為能清楚說(shuō)明本方案的技術(shù)特點(diǎn),下面通過(guò)具體實(shí)施方式,并結(jié)合其附圖,對(duì)本發(fā)明進(jìn)行詳細(xì)闡述。下文的公開(kāi)提供了許多不同的實(shí)施例或例子用來(lái)實(shí)現(xiàn)本發(fā)明的不同結(jié)構(gòu)。為了簡(jiǎn)化本發(fā)明的公開(kāi),下文中對(duì)特定例子的部件和設(shè)置進(jìn)行描述。此外,本發(fā)明可以在不同例子中重復(fù)參考數(shù)字和/或字母。這種重復(fù)是為了簡(jiǎn)化和清楚的目的,其本身不指示所討論各種實(shí)施例和/或設(shè)置之間的關(guān)系。應(yīng)當(dāng)注意,在附圖中所圖示的部件不一定按比例繪制。本發(fā)明省略了對(duì)公知組件和處理技術(shù)及工藝的描述以避免不必要地限制本發(fā)明。
本發(fā)明經(jīng)過(guò)對(duì)ceph糾刪存儲(chǔ)方式的仔細(xì)研究發(fā)現(xiàn),糾刪存儲(chǔ)的時(shí)間主要消耗在糾刪算法的運(yùn)算過(guò)程中,而糾刪數(shù)據(jù)塊數(shù)(k),校驗(yàn)碼數(shù)(m),糾刪條帶尺寸這三個(gè)參數(shù)對(duì)糾刪算法的性能影響最大。在進(jìn)行ceph的糾刪算法實(shí)現(xiàn)過(guò)程中,將測(cè)試數(shù)據(jù)切割成一定尺寸的條帶,如圖1所示,然后將每個(gè)條帶切割成k塊進(jìn)行糾刪計(jì)算和存儲(chǔ),使用糾刪算法為數(shù)據(jù)塊計(jì)算出一定數(shù)量的校驗(yàn)塊,用m表示校驗(yàn)塊的數(shù)量。
本發(fā)明的糾刪參數(shù)提取方法對(duì)不同參數(shù)組合分別進(jìn)行糾刪運(yùn)算,比較糾刪運(yùn)算所用的時(shí)間,獲得最優(yōu)參數(shù)組合。如圖2所示,方法的具體步驟為:
s1,獲取用戶設(shè)置的糾刪算法類(lèi)型;
s2,加載對(duì)應(yīng)的糾刪算法庫(kù);
s3,生成測(cè)試數(shù)據(jù);
s4,取得一組糾刪參數(shù)組合;
s5,根據(jù)取得的糾刪參數(shù)組合對(duì)步驟s3生成的測(cè)試數(shù)據(jù)進(jìn)行糾刪運(yùn)算;
s6,重復(fù)步驟s5的糾刪運(yùn)算n次,并計(jì)算n次運(yùn)算所用時(shí)間的平均值;
s7,調(diào)整糾刪參數(shù)組合并重復(fù)步驟s5和步驟s6,在參數(shù)調(diào)整結(jié)束后轉(zhuǎn)到步驟s8;
s8,輸出不同糾刪參數(shù)組合下的統(tǒng)計(jì)結(jié)果并給出最優(yōu)組合建議。
步驟s1中,通過(guò)讀取用戶輸入的算法名稱(chēng),獲取用戶需要提取參數(shù)的糾刪算法類(lèi)型,其中糾刪算法類(lèi)型有jerasure算法、isa-l算法或lrc算法等。根據(jù)糾刪算法類(lèi)型動(dòng)態(tài)加載對(duì)應(yīng)的糾刪算法庫(kù),加載的具體步驟為:
s21,讀取糾刪類(lèi)型的配置文件,獲取對(duì)應(yīng)糾刪算法庫(kù)的位置;
s22,使用算法主函數(shù)名聲明函數(shù)指針;
s23,使用函數(shù)指針調(diào)用算法。
由于不同算法庫(kù)的主函數(shù)名相同,因此,無(wú)需針對(duì)不同算法類(lèi)型做特殊設(shè)置。
在本發(fā)明的實(shí)施例中,步驟s3生成的測(cè)試數(shù)據(jù)的大小為1gb;步驟s6糾刪運(yùn)算次數(shù)n取值100。為降低隨機(jī)問(wèn)題對(duì)單次測(cè)試結(jié)果的影響,對(duì)同一糾刪參數(shù)組合反復(fù)執(zhí)行糾刪運(yùn)算100次,并計(jì)算算法執(zhí)行時(shí)間的平均值。
在本發(fā)明的實(shí)施例中,對(duì)糾刪參數(shù)分別取值,其中數(shù)據(jù)塊k的取值為1~32的整數(shù),糾刪塊值m的取值為1~k的整數(shù),糾刪條帶尺寸的取值為1k~64k的整數(shù)值。本發(fā)明的步驟s7中,利用c++作為開(kāi)發(fā)語(yǔ)言,自動(dòng)調(diào)整k、m以及糾刪條帶尺寸的值。調(diào)整的具體流程如圖3所示,具體步驟為,
s71,數(shù)據(jù)塊k的初始取值為1;
s72,判斷數(shù)據(jù)塊k的取值是否小于等于32,如果小于等于32則轉(zhuǎn)到步驟s73,否則結(jié)束參數(shù)的調(diào)整;
s73,設(shè)置校驗(yàn)塊m的值為1;
s74,判斷校驗(yàn)塊m的取值是否小于等于k,如果小于等于k則轉(zhuǎn)到步驟s75,否則使數(shù)據(jù)塊k的取值加1,轉(zhuǎn)到步驟s72;
s75,設(shè)置條帶尺寸初始值為1k;
s76,判斷條帶尺寸是否小于等于64k,如果條帶尺寸小于等于64k則轉(zhuǎn)到步驟s77,否則使校驗(yàn)塊m的取值加1,轉(zhuǎn)到步驟s74;
s77,調(diào)用糾刪算法,對(duì)測(cè)試數(shù)據(jù)進(jìn)行糾刪運(yùn)算;
s78,使條帶尺寸加1k,轉(zhuǎn)到步驟s76。
根據(jù)s71-s78的步驟調(diào)整糾刪參數(shù)的組合,分別改變數(shù)據(jù)塊k、校驗(yàn)塊m和條帶尺寸的值,獲得的參數(shù)組合數(shù)量龐大,因此得到的最優(yōu)參數(shù)組合較可靠。在不同的糾刪參數(shù)組合下分別調(diào)用糾刪算法庫(kù),對(duì)相同規(guī)模的測(cè)試數(shù)據(jù)進(jìn)行計(jì)算,統(tǒng)計(jì)算法執(zhí)行時(shí)間,將不同糾刪參數(shù)組合下的平均值輸出并給出最優(yōu)組合建議。算法執(zhí)行時(shí)間平均值最小的參數(shù)組合即為最優(yōu)參數(shù)。
客戶在進(jìn)行ceph集群部署時(shí),直接選用本發(fā)明提供的最優(yōu)糾刪參數(shù)組合,節(jié)省時(shí)間,降低錯(cuò)誤部署帶來(lái)的風(fēng)險(xiǎn)。
以上所述只是本發(fā)明的優(yōu)選實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也被視為本發(fā)明的保護(hù)范圍。