本發(fā)明涉及分布式存儲(chǔ)技術(shù)領(lǐng)域,特別是涉及一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法及裝置。
背景技術(shù):
分布式文件系統(tǒng)中,通常對(duì)于每個(gè)文件來(lái)說(shuō),都在系統(tǒng)內(nèi)的其它數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)有其對(duì)應(yīng)的副本。以副本的形式存放,主要有兩個(gè)優(yōu)勢(shì):首先是提高了系統(tǒng)的可靠性,當(dāng)某一個(gè)數(shù)據(jù)節(jié)點(diǎn)因?yàn)椴豢煽匾蛩囟r(shí),這個(gè)數(shù)據(jù)節(jié)點(diǎn)的文件在其他數(shù)據(jù)節(jié)點(diǎn)上都有備份,從而保證系統(tǒng)中的數(shù)據(jù)從整體來(lái)看仍然是可用的;同時(shí)也提高了數(shù)據(jù)讀取的響應(yīng)速度,即在不同的數(shù)據(jù)節(jié)點(diǎn)存放了同一個(gè)文件的副本,在讀取時(shí)可以選擇當(dāng)前訪問(wèn)速度最快的數(shù)據(jù)節(jié)點(diǎn)來(lái)獲取數(shù)據(jù),從而提高系統(tǒng)整體的響應(yīng)速度。
現(xiàn)有技術(shù)中通常是按照經(jīng)驗(yàn)值對(duì)各文件的副本數(shù)量進(jìn)行統(tǒng)一的規(guī)定。很容易理解的是,從提高系統(tǒng)可靠性的方面來(lái)看,副本的數(shù)量是越多越好,但是副本數(shù)量的增多,也會(huì)導(dǎo)致存儲(chǔ)空間的浪費(fèi)及增加數(shù)據(jù)一致性的維護(hù)代價(jià)。因此,副本數(shù)量較大會(huì)帶來(lái)存儲(chǔ)空間上的壓力,另外,如果副本數(shù)量較小則容易降低系統(tǒng)的可靠性。
因此,如何合理設(shè)置系統(tǒng)內(nèi)文件的副本數(shù)量,既能滿足可靠性的要求,又不會(huì)對(duì)存儲(chǔ)空間造成較大不利影響是本領(lǐng)域技術(shù)人員亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法及裝置,用于合理設(shè)置系統(tǒng)內(nèi)文件的副本數(shù)量,既能滿足可靠性的要求,又不會(huì)對(duì)存儲(chǔ)空間造成較大不利影響。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法,包括:
存儲(chǔ)預(yù)先建立的各文件的等級(jí)分類以及各所述等級(jí)分類對(duì)應(yīng)的可靠性閾值;
當(dāng)獲取到副本存放請(qǐng)求時(shí),根據(jù)所述副本存儲(chǔ)請(qǐng)求獲取對(duì)應(yīng)的文件的目標(biāo)等級(jí)分類以確定所述目標(biāo)等級(jí)分類對(duì)應(yīng)的目標(biāo)可靠性閾值;
根據(jù)預(yù)先建立的可靠性計(jì)算規(guī)則計(jì)算出達(dá)到所述目標(biāo)可靠性閾值所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量;
其中,所述可靠性計(jì)算規(guī)則的參數(shù)包括數(shù)據(jù)節(jié)點(diǎn)的平均無(wú)故障時(shí)間、數(shù)據(jù)節(jié)點(diǎn)的數(shù)量和可靠性時(shí)間,所述文件的副本數(shù)量為所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
優(yōu)選地,所述根據(jù)預(yù)先建立的可靠性計(jì)算規(guī)則計(jì)算出達(dá)到所述目標(biāo)可靠性閾值所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量具體包括:
選取系統(tǒng)中其余的任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)所述文件的副本;
依據(jù)所述可靠性計(jì)算規(guī)則計(jì)算所述文件的當(dāng)前可靠性;
判斷當(dāng)前可靠性是否大于所述目標(biāo)可靠性閾值;
如果否,則返回所述選取系統(tǒng)中其余的任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)所述文件的副本的步驟;
如果是,則所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量為當(dāng)前系統(tǒng)中存儲(chǔ)所述副本的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
優(yōu)選地,所述根據(jù)預(yù)先建立的可靠性計(jì)算規(guī)則計(jì)算出達(dá)到所述目標(biāo)可靠性閾值所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量具體包括:
選取系統(tǒng)中其余的數(shù)據(jù)節(jié)點(diǎn)中可靠性最高的節(jié)點(diǎn)存儲(chǔ)所述文件的副本;
依據(jù)所述可靠性計(jì)算規(guī)則計(jì)算所述文件的當(dāng)前可靠性;
判斷當(dāng)前可靠性是否大于所述目標(biāo)可靠性閾值;
如果否,則返回所述選取系統(tǒng)中其余的數(shù)據(jù)節(jié)點(diǎn)中可靠性最高的節(jié)點(diǎn)存儲(chǔ)所述文件的副本的步驟;
如果是,則所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量為當(dāng)前系統(tǒng)中存儲(chǔ)所述副本的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
優(yōu)選地,所述根據(jù)預(yù)先建立的可靠性計(jì)算規(guī)則計(jì)算出達(dá)到所述目標(biāo)可靠性閾值所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量具體包括:
選取系統(tǒng)中其余的數(shù)據(jù)節(jié)點(diǎn)中負(fù)載率最低的節(jié)點(diǎn)存儲(chǔ)所述文件的副本;
依據(jù)所述可靠性計(jì)算規(guī)則計(jì)算所述文件的當(dāng)前可靠性;
判斷當(dāng)前可靠性是否大于所述目標(biāo)可靠性閾值;
如果否,則返回所述選取系統(tǒng)中其余的數(shù)據(jù)節(jié)點(diǎn)中負(fù)載率最低的節(jié)點(diǎn)存儲(chǔ)所述文件的副本的步驟;
如果是,則所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量為當(dāng)前系統(tǒng)中存儲(chǔ)所述副本的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
優(yōu)選地,所述可靠性計(jì)算規(guī)則具體為:
其中,當(dāng)i=0時(shí),θ0為所述文件存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)n0上的平均無(wú)故障時(shí)間,當(dāng)i=1-k時(shí),θ1-θk表示所述文件的副本分別存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)n1-nk上的平均無(wú)故障時(shí)間,t表示可靠性時(shí)間。
優(yōu)選地,所述等級(jí)分類包括三個(gè)等級(jí),按照等級(jí)的級(jí)別對(duì)應(yīng)的可靠性閾值分別為99.99%、99%、95%。
優(yōu)選地,還包括:
記錄存放所述文件的數(shù)據(jù)節(jié)點(diǎn)以及存放所述文件的副本的數(shù)據(jù)節(jié)點(diǎn)。
優(yōu)選地,還包括:
當(dāng)任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)發(fā)生故障且發(fā)生故障的數(shù)據(jù)節(jié)點(diǎn)在記錄的數(shù)據(jù)節(jié)點(diǎn)內(nèi)時(shí),則更新記錄。
為解決上述技術(shù)問(wèn)題,本發(fā)明還提供一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定裝置,包括:
存儲(chǔ)單元,用于存儲(chǔ)預(yù)先建立的各文件的等級(jí)分類以及各所述等級(jí)分類對(duì)應(yīng)的可靠性閾值;
確定單元,用于當(dāng)獲取到副本存放請(qǐng)求時(shí),根據(jù)所述副本存儲(chǔ)請(qǐng)求獲取對(duì)應(yīng)的文件的目標(biāo)等級(jí)分類以確定所述目標(biāo)等級(jí)分類對(duì)應(yīng)的目標(biāo)可靠性閾值;
計(jì)算單元,用于根據(jù)預(yù)先建立的可靠性計(jì)算規(guī)則計(jì)算出達(dá)到所述目標(biāo)可靠性閾值所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量;
其中,所述可靠性計(jì)算規(guī)則的參數(shù)包括數(shù)據(jù)節(jié)點(diǎn)的平均無(wú)故障時(shí)間、數(shù)據(jù)節(jié)點(diǎn)的數(shù)量和可靠性時(shí)間,所述文件的副本數(shù)量為所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
本發(fā)明所提供的分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法,包括:存儲(chǔ)預(yù)先建立的各文件的等級(jí)分類以及各所述等級(jí)分類對(duì)應(yīng)的可靠性閾值;當(dāng)獲取到副本存放請(qǐng)求時(shí),根據(jù)所述副本存儲(chǔ)請(qǐng)求獲取對(duì)應(yīng)的文件的目標(biāo)等級(jí)分類以確定所述目標(biāo)等級(jí)分類對(duì)應(yīng)的目標(biāo)可靠性閾值;根據(jù)預(yù)先建立的可靠性計(jì)算規(guī)則計(jì)算出達(dá)到所述目標(biāo)可靠性閾值所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量;其中,所述可靠性計(jì)算規(guī)則的參數(shù)包括數(shù)據(jù)節(jié)點(diǎn)的平均無(wú)故障時(shí)間、數(shù)據(jù)節(jié)點(diǎn)的數(shù)量和可靠性時(shí)間,所述文件的副本數(shù)量為所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。本方法是通過(guò)文件的等級(jí)分類和可靠性閾值兩個(gè)參數(shù)共同決定的,并不是文件的副本數(shù)量進(jìn)行統(tǒng)一的規(guī)定。因此,該方法不僅能夠保證重要的文件的可靠性較高,且普通的文件的副本不會(huì)占用太大的存儲(chǔ)空間,既能滿足可靠性的要求,又不會(huì)對(duì)存儲(chǔ)空間造成較大不利影響。此外,本發(fā)明所提供的分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定裝置同樣具有上述有效效果。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例,下面將對(duì)實(shí)施例中所需要使用的附圖做簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的一種步驟s12的流程圖;
圖3為本發(fā)明實(shí)施例提供的另一種步驟s12的流程圖;
圖4為本發(fā)明實(shí)施例提供的另一種步驟s12的流程圖;
圖5為本發(fā)明實(shí)施例提供的另一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法的流程圖;
圖6為本發(fā)明實(shí)施例提供的一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下,所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)范圍。
本發(fā)明的核心是提供一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法及裝置,用于合理設(shè)置系統(tǒng)內(nèi)文件的副本數(shù)量,既能滿足可靠性的要求,又不會(huì)對(duì)存儲(chǔ)空間造成較大不利影響。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
圖1為本發(fā)明實(shí)施例提供的一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法的流程圖。如圖1所示,分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法包括:
s10:存儲(chǔ)預(yù)先建立的各文件的等級(jí)分類以及各等級(jí)分類對(duì)應(yīng)的可靠性閾值。
s11:當(dāng)獲取到副本存放請(qǐng)求時(shí),根據(jù)副本存儲(chǔ)請(qǐng)求獲取對(duì)應(yīng)的文件的目標(biāo)等級(jí)分類以確定目標(biāo)等級(jí)分類對(duì)應(yīng)的目標(biāo)可靠性閾值。
s12:根據(jù)預(yù)先建立的可靠性計(jì)算規(guī)則計(jì)算出達(dá)到目標(biāo)可靠性閾值所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
其中,可靠性計(jì)算規(guī)則的參數(shù)包括數(shù)據(jù)節(jié)點(diǎn)的平均無(wú)故障時(shí)間、數(shù)據(jù)節(jié)點(diǎn)的數(shù)量和可靠性時(shí)間,文件的副本數(shù)量為所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
需要說(shuō)明的是,步驟s10中,文件的等級(jí)分類和可靠性閾值可以根據(jù)系統(tǒng)的實(shí)際情況而定,并沒(méi)有嚴(yán)格的限制。對(duì)于等級(jí)分類的數(shù)量也可以靈活更改。作為優(yōu)選的實(shí)施方式,等級(jí)分類包括三個(gè)等級(jí),按照等級(jí)的級(jí)別對(duì)應(yīng)的可靠性閾值分別為99.99%、99%、95%,如表1所示。
表1
設(shè)某個(gè)數(shù)據(jù)節(jié)點(diǎn)n的平均無(wú)故障時(shí)間為θn小時(shí),則在此數(shù)據(jù)節(jié)點(diǎn)上未來(lái)t小時(shí)內(nèi)發(fā)生故障的可能性服從指數(shù)分布
因此,作為一種優(yōu)選的實(shí)施方式,可靠性計(jì)算規(guī)則具體為:
其中,當(dāng)i=0時(shí),θ0為文件存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)n0上的平均無(wú)故障時(shí)間,當(dāng)i=1-k時(shí),θ1-θk表示文件的副本分別存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)n1-nk上的平均無(wú)故障時(shí)間,t表示可靠性時(shí)間。需要說(shuō)明的是,數(shù)據(jù)節(jié)點(diǎn)n0是存放文件的數(shù)據(jù)節(jié)點(diǎn),而數(shù)據(jù)節(jié)點(diǎn)n1-nk上是存放文件的副本的數(shù)據(jù)節(jié)點(diǎn)。上式表示,在未來(lái)t小時(shí)內(nèi),文件的可靠性的計(jì)算結(jié)果。
存放副本的主要目的還是提高系統(tǒng)中數(shù)據(jù)的可靠性,因此可以根據(jù)存放文件的可靠性屬性來(lái)決定當(dāng)前的文件的副本數(shù)量是否滿足要求。對(duì)于一個(gè)不重要的文件來(lái)說(shuō),存放的副本如果很多,則容易造成存儲(chǔ)壓力過(guò)大,另外,有的數(shù)據(jù)節(jié)點(diǎn)的可靠性非常高,如果將副本存放在這樣的數(shù)據(jù)節(jié)點(diǎn),則該文件的可靠性就非常高,并不需要存放太多的副本。同樣的,存放副本的數(shù)據(jù)節(jié)點(diǎn)的可靠性都很差,則存放再多的副本,這個(gè)文件的可靠性還是較低的。因此,本實(shí)施例中,以存放副本的數(shù)據(jù)節(jié)點(diǎn)的可靠性(平均無(wú)故障時(shí)間)、以及數(shù)據(jù)節(jié)點(diǎn)的數(shù)量和可靠性時(shí)間為參數(shù),來(lái)確定文件的可靠性,進(jìn)而決定文件存放的副本數(shù)量。
之所以選取上述三個(gè)參數(shù)是因?yàn)?,一個(gè)文件的可靠性,與副本數(shù)量成正比,與平均無(wú)故障時(shí)間成正比。也就是說(shuō),副本數(shù)量越多,文件越安全;副本所在的數(shù)據(jù)節(jié)點(diǎn)可靠性越高,文件也越安全。在本實(shí)施例中,并不對(duì)文件的副本數(shù)量進(jìn)行統(tǒng)一的規(guī)定,而是對(duì)文件的等級(jí)類型進(jìn)行劃分,并規(guī)定相應(yīng)的可靠性閾值。因此,上述方法不僅能夠保證重要的文件的可靠性較高,且普通的文件的副本不會(huì)占用太大的存儲(chǔ)空間,既能滿足可靠性的要求,又不會(huì)對(duì)存儲(chǔ)空間造成較大不利影響。
以一個(gè)簡(jiǎn)單的例子進(jìn)行說(shuō)明:如果一個(gè)很重要的文件,其等級(jí)為最高,可靠性閾值為99.99%,將這個(gè)文件的副本存放在10個(gè)數(shù)據(jù)節(jié)點(diǎn)上后,根據(jù)可靠性計(jì)算規(guī)則計(jì)算后,發(fā)現(xiàn)這個(gè)文件的可靠性還沒(méi)有達(dá)到99.99%,因此,還需再剩余的其它數(shù)據(jù)節(jié)點(diǎn)上繼續(xù)存放副本,直到達(dá)到99.99%。例如,第15個(gè)數(shù)據(jù)節(jié)點(diǎn)將這個(gè)文件的副本存放之后,這個(gè)文件的可靠性達(dá)到了99.99%,則說(shuō)明這個(gè)文件的副本只需要這15個(gè)數(shù)據(jù)節(jié)點(diǎn)存放即可,并不需要其他數(shù)據(jù)節(jié)點(diǎn)存放了。如果一個(gè)普通的文件,其等級(jí)為最低,可靠性閾值為95%,將這個(gè)文件的副本存檔在5個(gè)數(shù)據(jù)節(jié)點(diǎn)上后,根據(jù)可靠性計(jì)算規(guī)則計(jì)算后,發(fā)現(xiàn)這個(gè)文件的可靠性已經(jīng)達(dá)到96%,超過(guò)了95%,則說(shuō)明這個(gè)文件的副本只需要這5個(gè)數(shù)據(jù)節(jié)點(diǎn)存放即可,并不需要其他數(shù)據(jù)節(jié)點(diǎn)存放了。
需要強(qiáng)調(diào)的是,由于文件的可靠性是否達(dá)到可靠性閾值與每個(gè)數(shù)據(jù)節(jié)點(diǎn)自身的可靠性是相關(guān)的,如果用不同的數(shù)據(jù)節(jié)點(diǎn)存放副本,則可能可靠性的計(jì)算結(jié)果是不同的。換句話說(shuō),對(duì)于達(dá)到同一個(gè)可靠性閾值,可能選擇5個(gè)可靠性較高的數(shù)據(jù)節(jié)點(diǎn)存放副本即可,或者可能選擇10個(gè)可靠性較低的數(shù)據(jù)節(jié)點(diǎn)存放副本即可。至于如果選取,后續(xù)的實(shí)施例將逐一描述。
本實(shí)施例提供的分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法是通過(guò)文件的等級(jí)分類和可靠性閾值兩個(gè)參數(shù)共同決定的,并不是文件的副本數(shù)量進(jìn)行統(tǒng)一的規(guī)定。因此,該方法不僅能夠保證重要的文件的可靠性較高,且普通的文件的副本不會(huì)占用太大的存儲(chǔ)空間,既能滿足可靠性的要求,又不會(huì)對(duì)存儲(chǔ)空間造成較大不利影響。
圖2為本發(fā)明實(shí)施例提供的一種步驟s12的流程圖。作為優(yōu)選的實(shí)施方式,步驟s12具體包括:
s20:選取系統(tǒng)中其余的任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)文件的副本。
s21:依據(jù)可靠性計(jì)算規(guī)則計(jì)算文件的當(dāng)前可靠性。
s22:判斷當(dāng)前可靠性是否大于目標(biāo)可靠性閾值,如果否,則返回s20,如果是,進(jìn)入步驟s23。
s23:所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量為當(dāng)前系統(tǒng)中存放副本的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
本實(shí)施例中是按照隨機(jī)選取的方式實(shí)現(xiàn)數(shù)據(jù)節(jié)點(diǎn)的選取,可以理解的是,步驟s20中系統(tǒng)中其余的數(shù)據(jù)節(jié)點(diǎn)只是當(dāng)前系統(tǒng)中,沒(méi)有存放文件或該文件的副本的數(shù)據(jù)節(jié)點(diǎn)。例如,有15個(gè)數(shù)據(jù)節(jié)點(diǎn),第1個(gè)數(shù)據(jù)節(jié)點(diǎn)存放了文件,則此時(shí)系統(tǒng)中的其余的數(shù)據(jù)節(jié)點(diǎn)就是第2個(gè)-第15個(gè)數(shù)據(jù)節(jié)點(diǎn),如果將第2個(gè)數(shù)據(jù)節(jié)點(diǎn)存放了該文件的副本,則此時(shí)系統(tǒng)中的其余的數(shù)據(jù)節(jié)點(diǎn)就是第3個(gè)-第15個(gè)數(shù)據(jù)節(jié)點(diǎn),即同一個(gè)數(shù)據(jù)節(jié)點(diǎn)不重復(fù)存放同一個(gè)文件的相關(guān)信息,包括文件本身和副本。
由于是任意選取的數(shù)據(jù)節(jié)點(diǎn),因此能夠節(jié)約存放副本的時(shí)間。但是考慮到在具體實(shí)施中,如果任意的存儲(chǔ),這有可能導(dǎo)致可靠性高的數(shù)據(jù)節(jié)點(diǎn)存放的副本較少,可靠性低的數(shù)據(jù)節(jié)點(diǎn)存放的副本較多,則勢(shì)必會(huì)增加副本的數(shù)量。因此,下一個(gè)實(shí)施例中將會(huì)重點(diǎn)說(shuō)明。
圖3為本發(fā)明實(shí)施例提供的另一種步驟s12的流程圖。作為優(yōu)選的實(shí)施方式,步驟s12具體包括:
s30:選取系統(tǒng)中其余的數(shù)據(jù)節(jié)點(diǎn)中可靠性最高的節(jié)點(diǎn)存儲(chǔ)文件的副本。
s31:依據(jù)可靠性計(jì)算規(guī)則計(jì)算文件的當(dāng)前可靠性。
s32:判斷當(dāng)前可靠性是否大于目標(biāo)可靠性閾值;如果否,則返回s30,如果是,則進(jìn)入s33。
s33:所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量為當(dāng)前系統(tǒng)中存放副本的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
本實(shí)施例中,依據(jù)可靠性的高低作為選取的數(shù)據(jù)節(jié)點(diǎn)的順序,即先選取可靠性較高的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行副本的存放,這樣可以降低副本的數(shù)量。
圖4為本發(fā)明實(shí)施例提供的另一種步驟s12的流程圖。作為優(yōu)選的實(shí)施方式,步驟s12具體包括:
s40:選取系統(tǒng)中其余的數(shù)據(jù)節(jié)點(diǎn)中負(fù)載率最低的節(jié)點(diǎn)存儲(chǔ)文件的副本。
s41:依據(jù)可靠性計(jì)算規(guī)則計(jì)算文件的當(dāng)前可靠性。
s42:判斷當(dāng)前可靠性是否大于目標(biāo)可靠性閾值,如果否,則返回s40,如果是,則進(jìn)入s43。
s43:所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量為當(dāng)前系統(tǒng)中存放副本的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
本實(shí)施例中,依據(jù)負(fù)載率的高低作為選取的數(shù)據(jù)節(jié)點(diǎn)的順序,即先選取負(fù)載率較低的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行副本的存放,這樣可以提供負(fù)載均衡性能,避免某一個(gè)數(shù)據(jù)節(jié)點(diǎn)存放有大量的副本,而有的數(shù)據(jù)節(jié)點(diǎn)存放了很少的副本。
圖5為本發(fā)明實(shí)施例提供的另一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法的流程圖。與上述實(shí)施例相同的步驟本實(shí)施例不再贅述。如圖5所示,分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法還包括:
s50:記錄存放文件的數(shù)據(jù)節(jié)點(diǎn)以及存放文件的副本的數(shù)據(jù)節(jié)點(diǎn)。
在步驟s50之后還包括:
s51:當(dāng)任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)發(fā)生故障且發(fā)生故障的數(shù)據(jù)節(jié)點(diǎn)在記錄的數(shù)據(jù)節(jié)點(diǎn)內(nèi)時(shí),則更新記錄。
通過(guò)步驟s50和步驟s51可以及時(shí)獲取系統(tǒng)內(nèi)數(shù)據(jù)節(jié)點(diǎn)對(duì)于各文件的副本的存放情況。
在上述各實(shí)施例中詳細(xì)描述了分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法,同時(shí),本發(fā)明還提供與上述方法對(duì)應(yīng)的裝置。由于裝置部分的實(shí)施例與方法部分的實(shí)施例相互對(duì)應(yīng),因此裝置部分的實(shí)施例請(qǐng)參見(jiàn)方法部分的實(shí)施例的描述,這里暫不贅述。圖6為本發(fā)明實(shí)施例提供的一種分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定裝置的結(jié)構(gòu)圖。如圖6所示,包括:
存儲(chǔ)單元10,用于存儲(chǔ)預(yù)先建立的各文件的等級(jí)分類以及各等級(jí)分類對(duì)應(yīng)的可靠性閾值;
確定單元11,用于當(dāng)獲取到副本存放請(qǐng)求時(shí),根據(jù)副本存儲(chǔ)請(qǐng)求獲取對(duì)應(yīng)的文件的目標(biāo)等級(jí)分類以確定目標(biāo)等級(jí)分類對(duì)應(yīng)的目標(biāo)可靠性閾值;
計(jì)算單元12,用于根據(jù)預(yù)先建立的可靠性計(jì)算規(guī)則計(jì)算出達(dá)到目標(biāo)可靠性閾值所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量;
其中,可靠性計(jì)算規(guī)則的參數(shù)包括數(shù)據(jù)節(jié)點(diǎn)的平均無(wú)故障時(shí)間、數(shù)據(jù)節(jié)點(diǎn)的數(shù)量和可靠性時(shí)間,文件的副本數(shù)量為所需的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。
以上對(duì)本發(fā)明所提供的分布式存儲(chǔ)系統(tǒng)中文件副本數(shù)量的確定方法及裝置進(jìn)行了詳細(xì)介紹。說(shuō)明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
還需要說(shuō)明的是,在本說(shuō)明書中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。