專利名稱:數(shù)據(jù)塊副本數(shù)量調(diào)整方法及分布式文件系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)塊副本數(shù)量的調(diào)整技術(shù),尤其涉及分布式文件系統(tǒng) 中的數(shù)據(jù)塊副本數(shù)量的調(diào)整方法及應(yīng)用該方法的分布式文件系統(tǒng),屬于數(shù)據(jù) 通信領(lǐng)域。
背景技術(shù):
分布式文件系統(tǒng)是一種基于廉價(jià)計(jì)算機(jī)節(jié)點(diǎn)進(jìn)行本地存儲構(gòu)建的分布 式存儲系統(tǒng)。它通過將不同服務(wù)器上的共享文件夾組織在一起,構(gòu)建成一 個(gè)目錄樹,使用戶只需訪問一個(gè)共享的根目錄即可訪問分布在網(wǎng)絡(luò)上的文 件或文件夾,而不必知道這些文件的實(shí)際物理位置。與傳統(tǒng)的;茲盤陣列和
存域網(wǎng)(Storage Area Network,簡稱SAN)存儲系統(tǒng)相比,有存儲性價(jià) 比高、可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)。
現(xiàn)有的分布式文件系統(tǒng)還可以被互聯(lián)網(wǎng)業(yè)務(wù)提供商,如Google、 Yahoo 等,作為數(shù)據(jù)處理平臺。如圖1所示,現(xiàn)有的分布式文件系統(tǒng)通常由元數(shù)據(jù) 服務(wù)器節(jié)點(diǎn)和多個(gè)數(shù)據(jù)塊節(jié)點(diǎn)組成。其中,元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)用于保存各 個(gè)文件的數(shù)據(jù)分塊情況、各個(gè)數(shù)據(jù)塊所在的數(shù)據(jù)塊節(jié)點(diǎn)的名稱,以及每個(gè) 數(shù)據(jù)塊節(jié)點(diǎn)上包含的數(shù)據(jù)塊的信息等;數(shù)據(jù)塊節(jié)點(diǎn)用于保存實(shí)際的數(shù)據(jù)塊, 通常每個(gè)數(shù)據(jù)塊大小為64MB或128MB。當(dāng)客戶端軟件需要對上述分布式文件 系統(tǒng)進(jìn)行數(shù)據(jù)存取訪問時(shí),首先通過元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)獲取或建立文件的 數(shù)據(jù)塊的位置;然后直接與相應(yīng)數(shù)據(jù)塊所在的數(shù)據(jù)塊節(jié)點(diǎn)進(jìn)行通信,進(jìn)行 讀寫數(shù)據(jù)塊等操作。
現(xiàn)有的分布式文件系統(tǒng)一般采用普通的廉價(jià)計(jì)算機(jī)節(jié)點(diǎn)作為硬件平臺,由于普通的計(jì)算機(jī)節(jié)點(diǎn)可靠性不高,為了提高系統(tǒng)可靠性和數(shù)據(jù)可用 性,分布式文件系統(tǒng)通常采用固定數(shù)量的多副本方式保存數(shù)據(jù)塊,例如對 于同一個(gè)數(shù)據(jù)塊,可以在不同的數(shù)據(jù)塊節(jié)點(diǎn)保存3個(gè)副本。元數(shù)據(jù)服務(wù)器節(jié) 點(diǎn)通過心跳監(jiān)控各數(shù)據(jù)塊節(jié)點(diǎn)的狀態(tài),保證系統(tǒng)中各數(shù)據(jù)塊總是具有固定 的副本數(shù),以便在某個(gè)計(jì)算機(jī)節(jié)點(diǎn)發(fā)生宕機(jī)時(shí),仍然能夠有可用的數(shù)據(jù)副 本,以保證系統(tǒng)的可靠性。
現(xiàn)有技術(shù)的缺陷在于上述分布式文件系統(tǒng)的多副本方式只考慮了數(shù) 據(jù)的可用性而沒有考慮到電信業(yè)務(wù)中不同數(shù)據(jù)訪問的性能參數(shù)的要求不 同。對于不同的數(shù)據(jù),其性能參數(shù)是隨著時(shí)間的遷移而變化的。當(dāng)某些數(shù) 據(jù)的訪問頻率升高或響應(yīng)時(shí)間/傳輸速率下降時(shí),各個(gè)數(shù)據(jù)塊所需的聚合 帶寬增加。然而,由于現(xiàn)有分布式文件系統(tǒng)中對各個(gè)數(shù)據(jù)塊設(shè)定的副本數(shù) 都是固定的,因此難以滿足高性能需要,增加了相應(yīng)數(shù)據(jù)塊的響應(yīng)時(shí)間, 影響了系統(tǒng)應(yīng)用性能的提高。
發(fā)明內(nèi)容
本發(fā)明要解決的問題是采用固定副本數(shù)量的分布式文件系統(tǒng),無法根
據(jù)數(shù)據(jù)塊的性能參數(shù)對副本數(shù)量進(jìn)行調(diào)整,從而影響系統(tǒng)性能的提高。
為了解決上述問題,本發(fā)明的 一 個(gè)實(shí)施例是提供了 一種數(shù)據(jù)塊副本數(shù)
量調(diào)整方法,包括
對數(shù)據(jù)塊節(jié)點(diǎn)中保存的數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì)并得到統(tǒng)計(jì)結(jié)果; 元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)將所述統(tǒng)計(jì)結(jié)果進(jìn)行求和匯總,得到針對一個(gè)數(shù)據(jù)塊
的數(shù)據(jù)塊副本的實(shí)際性能參數(shù);
根據(jù)所述實(shí)際性能參數(shù)與預(yù)設(shè)的參考性能參數(shù)運(yùn)算得到副本調(diào)整數(shù);
根據(jù)所述副本調(diào)整數(shù)對所述數(shù)據(jù)塊副本的副本數(shù)量進(jìn)行調(diào)整。
為了解決上述問題,本發(fā)明的另 一個(gè)實(shí)施例是提供了 一種分布式文件系
統(tǒng),包括元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)和數(shù)據(jù)塊節(jié)點(diǎn),其中包括,統(tǒng)計(jì)模塊,位于所述元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)或數(shù)據(jù)塊節(jié)點(diǎn)中,用于對存儲于
所述數(shù)據(jù)塊節(jié)點(diǎn)中的數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì); 所述數(shù)據(jù)塊節(jié)點(diǎn)包括 存儲模塊,用于保存數(shù)據(jù)塊副本;
調(diào)整模塊,用于根據(jù)來自于元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)的副本調(diào)整指令,在存儲 模塊中添加或刪除相應(yīng)的數(shù)據(jù)塊副本; 所述元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)包括
匯總模塊,用于將所述統(tǒng)計(jì)結(jié)果進(jìn)行求和匯總,得到針對一個(gè)數(shù)據(jù)塊的 數(shù)據(jù)塊副本的實(shí)際性能參數(shù);
運(yùn)算模塊,用于將匯總模塊得到的實(shí)際性能參數(shù)與預(yù)設(shè)的參考性能參數(shù)
進(jìn)行運(yùn)算得到副本調(diào)整數(shù);
指令模塊,用于根據(jù)運(yùn)算模塊得到的副本調(diào)整數(shù)向所述數(shù)據(jù)塊節(jié)點(diǎn)發(fā)送
副本調(diào)整指令。
通過本發(fā)明,根據(jù)各個(gè)數(shù)據(jù)塊副本的性能參數(shù)對副本數(shù)量進(jìn)行了相應(yīng)地 自適應(yīng)調(diào)整,使得響應(yīng)時(shí)間長或訪問頻率高或傳輸速率慢的數(shù)據(jù)塊具有更多 的數(shù)據(jù)塊副本,以提高用戶訪問這些數(shù)據(jù)塊副本的聚合帶寬;并且也使得響 應(yīng)時(shí)間短,或訪問頻率低或傳輸速率快的數(shù)據(jù)塊具有較少的數(shù)據(jù)塊副本,以 便將存儲空間和輸入輸出帶寬留給其他數(shù)據(jù)塊副本。從而在保證數(shù)據(jù)塊副本 的可用性及可靠性的同時(shí),提高了系統(tǒng)資源利用的合理性和利用效率。
下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為現(xiàn)有的分布式文件系統(tǒng)結(jié)構(gòu)示意圖2為本發(fā)明方法實(shí)施例所述數(shù)據(jù)塊副本數(shù)量調(diào)整方法的流程圖3為本發(fā)明系統(tǒng)實(shí)施例所述分布式文件系統(tǒng)的結(jié)構(gòu)示意圖4為本發(fā)明系統(tǒng)實(shí)施例所述元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)的改進(jìn)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明所述方法實(shí)施例
本實(shí)施例提供了一種分布式文件系統(tǒng)數(shù)據(jù)塊副本數(shù)量調(diào)整方法,如圖2 所示,包括
步驟101,對數(shù)據(jù)塊節(jié)點(diǎn)中保存的數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì)。 具體地,數(shù)據(jù)塊節(jié)點(diǎn)可以每隔一段時(shí)間就對本數(shù)據(jù)塊節(jié)點(diǎn)中的各個(gè)數(shù)據(jù) 塊副本的性能參數(shù)進(jìn)行一次統(tǒng)計(jì),并定時(shí)將統(tǒng)計(jì)結(jié)果上報(bào)給元數(shù)據(jù)服務(wù)器節(jié) 點(diǎn)。其中,統(tǒng)計(jì)結(jié)果中包含有每個(gè)數(shù)據(jù)塊副本的性能參數(shù),該性能參數(shù)可以 包括該數(shù)據(jù)塊副本的訪問頻率、響應(yīng)時(shí)間、或傳輸速率,或三者的任意參數(shù) 組合等。具體地,所述性能參數(shù)可以表示為P = f(F, L, T,…)。其中,P 表示性能參數(shù),F(xiàn)表示訪問頻率,T表示響應(yīng)時(shí)間,L表示傳輸速率,f表示 參數(shù)組合關(guān)系式。
此處需要特別指出的是,如果被統(tǒng)計(jì)的性能參數(shù)僅包括數(shù)據(jù)塊副本的訪 問頻率等由元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)可以直接得到的性能參數(shù),則在這種情況下, 不通過數(shù)據(jù)塊節(jié)點(diǎn)而僅由元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)直接對這種性能參數(shù)進(jìn)行統(tǒng)計(jì)也 是可以的。
步驟102,元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)對所述統(tǒng)計(jì)結(jié)果進(jìn)行求和匯總,得到針對一 個(gè)數(shù)據(jù)塊的數(shù)據(jù)塊副本的實(shí)際性能參數(shù)。
具體地,每個(gè)數(shù)據(jù)塊節(jié)點(diǎn)中通常都保存有不同數(shù)據(jù)塊的數(shù)據(jù)塊副本,經(jīng) 步驟101中的數(shù)據(jù)塊節(jié)點(diǎn)進(jìn)行統(tǒng)計(jì)后,得到該數(shù)據(jù)塊節(jié)點(diǎn)中保存的所有數(shù)據(jù) 塊副本的性能參數(shù)。所有這些數(shù)據(jù)塊副本可能分別屬于不同數(shù)據(jù)塊的副本, 因此需要由元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)進(jìn)行求和匯總,即將分別保存于不同數(shù)據(jù)塊節(jié) 點(diǎn)中的針對同 一個(gè)數(shù)據(jù)塊的不同數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行求和,并匯總為 一個(gè)實(shí)際性能參數(shù),該實(shí)際性能參數(shù)是指針對一個(gè)數(shù)據(jù)塊的數(shù)據(jù)塊副本的實(shí) 際性能參數(shù),如數(shù)據(jù)塊副本的訪問頻率,響應(yīng)時(shí)間,或傳輸速率等參數(shù)。另外,為了防止由于實(shí)際性能參數(shù)變化過快而造成的副本數(shù)量的調(diào)整過 于頻繁,因此,可以對得到的實(shí)際性能參數(shù)進(jìn)行平滑處理。具體地,可以在 得到實(shí)際性能參數(shù)之后,根據(jù)公式尸_="/> + (1-")/^進(jìn)行平滑處理。其中,尸, 表示經(jīng)平滑處理后的實(shí)際性能參數(shù),《表示平滑因子,i^表示上一個(gè)統(tǒng)計(jì)周 期經(jīng)平滑處理后的實(shí)際性能參數(shù),P表示未經(jīng)處理的統(tǒng)計(jì)到的實(shí)際性能參數(shù)。
除此之外,在進(jìn)行平滑處理時(shí),還可以先對統(tǒng)計(jì)得到的訪問頻率、響應(yīng)
時(shí)間和傳輸速率分別進(jìn)行平滑處理;然后再對統(tǒng)計(jì)結(jié)果進(jìn)行求和匯總,得到 實(shí)際性能參數(shù)。具體地,對訪問頻率進(jìn)行平滑處理時(shí),可以根據(jù)公式 F^-"F + (l-a)尸。w進(jìn)行,其中,i^表示經(jīng)平滑處理后的訪問頻率,a表示平 滑因子,/^表示上一個(gè)統(tǒng)計(jì)周期經(jīng)平滑處理后的訪問頻率,F(xiàn)表示未經(jīng)平滑 處理的統(tǒng)計(jì)到的訪問頻率。對響應(yīng)時(shí)間進(jìn)行平滑處理時(shí),可以根據(jù)公式 7^="7>(1-")7^進(jìn)行,其中,7^表示經(jīng)平滑處理后的響應(yīng)時(shí)間,《表示平滑
因子,r^表示上一個(gè)統(tǒng)計(jì)周期經(jīng)平滑處理后的響應(yīng)時(shí)間,r表示未經(jīng)平滑處
理的統(tǒng)計(jì)到的響應(yīng)時(shí)間。對傳輸速率進(jìn)行平滑處理時(shí),可以根據(jù)公式
丄_="丄+ (1-")丄。w進(jìn)行,其中,丄^表示經(jīng)平滑處理后的傳輸速率,"表示平
滑因子,4w表示上一個(gè)統(tǒng)計(jì)周期經(jīng)平滑處理后的傳輸速率,丄表示未經(jīng)平滑
處理的統(tǒng)計(jì)到的傳輸速率。
經(jīng)平滑處理后,減小了實(shí)際性能參數(shù)的變化程度,從而避免了當(dāng)發(fā)生大 量的突發(fā)訪問時(shí),副本數(shù)量的調(diào)整過于頻繁的問題。
步驟103,根據(jù)上述實(shí)際性能參數(shù)與預(yù)設(shè)的參考性能參數(shù)進(jìn)行運(yùn)算得到副
本調(diào)整數(shù)。
具體地,副本調(diào)整數(shù)可以采用以下策略公式中的任意一個(gè)進(jìn)行運(yùn)算得到
<formula>formula see original document page 9</formula>i 印=minW吼鵬,「/^/々》,或
其中,Rep表示運(yùn)算得到的副本調(diào)整數(shù);乙表示實(shí)際性能參數(shù);P^表示參考 性能參數(shù),可以根據(jù)系統(tǒng)能夠提供的聚合帶寬等因素進(jìn)行設(shè)置;Rep,表示最 大副本調(diào)整數(shù),可以根據(jù)數(shù)據(jù)塊節(jié)點(diǎn)的存儲容量等因素進(jìn)行設(shè)置;Rep^表示 最小副本調(diào)整數(shù),可以根據(jù)系統(tǒng)的可靠性要求進(jìn)行設(shè)置,例如,可以令一個(gè) 數(shù)據(jù)塊的副本數(shù)量至少為3個(gè),運(yùn)算符L叫表示向下取整,運(yùn)算符「"表示向上 取整。
步驟104,根據(jù)副本調(diào)整數(shù)對數(shù)據(jù)塊副本的副本數(shù)量進(jìn)行調(diào)整。具體地, 可以先將副本調(diào)整數(shù)與數(shù)據(jù)塊副本的原副本數(shù)進(jìn)行比較,當(dāng)副本調(diào)整數(shù)大于 原副本數(shù)時(shí),則執(zhí)行步驟lll;否則如果小于原副本數(shù),則執(zhí)行步驟121。此 處需要說明的是,如果副本調(diào)整數(shù)等于原副本數(shù),則說明不需要對副本數(shù)量 進(jìn)行調(diào)整,對此不再贅述。
步驟lll,在數(shù)據(jù)塊節(jié)點(diǎn)中添加數(shù)據(jù)塊副本。
具體地,可以先根據(jù)副本調(diào)整數(shù)與原副本數(shù)的差值選擇相應(yīng)數(shù)量的數(shù)據(jù) 塊節(jié)點(diǎn),然后在每個(gè)數(shù)據(jù)塊節(jié)點(diǎn)中添加一個(gè)數(shù)據(jù)塊副本。其中,對數(shù)據(jù)塊節(jié) 點(diǎn)進(jìn)行選擇時(shí),可以選擇相應(yīng)數(shù)量的未保存有所述數(shù)據(jù)塊副本的數(shù)據(jù)塊節(jié)點(diǎn), 這是為了保證在每個(gè)數(shù)據(jù)塊節(jié)點(diǎn)中,針對一個(gè)數(shù)據(jù)塊僅保存一個(gè)數(shù)據(jù)塊副本。 以避免當(dāng)該數(shù)據(jù)塊節(jié)點(diǎn)發(fā)生宕機(jī)時(shí),對副本數(shù)量造成很大影響。
另外,優(yōu)選地,由于復(fù)制數(shù)據(jù)塊副本的過程也需要占用一定的系統(tǒng)資源, 為了防止統(tǒng)計(jì)過程中的突發(fā)訪問引起的系統(tǒng)抖動(dòng),在添加數(shù)據(jù)塊副本時(shí),可 以在每個(gè)統(tǒng)計(jì)周期內(nèi)只選擇一個(gè)未保存有所述數(shù)據(jù)塊副本的數(shù)據(jù)塊節(jié)點(diǎn),并 在該數(shù)據(jù)塊節(jié)點(diǎn)中只添加一個(gè)數(shù)據(jù)塊副本。
步驟121,當(dāng)副本調(diào)整數(shù)小于原副本數(shù)時(shí),根據(jù)原副本數(shù)與副本調(diào)整數(shù)的 差值,刪除數(shù)據(jù)塊副本。具體地,在刪除數(shù)據(jù)塊副本時(shí),可以先查找具有最小訪問頻率或最高空 間使用率或最低處理性能或最高帶寬占用率的數(shù)據(jù)塊節(jié)點(diǎn),并刪除該數(shù)據(jù)塊 節(jié)點(diǎn)中的相應(yīng)數(shù)據(jù)塊副本。由于刪除數(shù)據(jù)塊副本的過程也需要占用 一定的系 統(tǒng)資源,為了防止統(tǒng)計(jì)過程中的突發(fā)訪問引起的系統(tǒng)抖動(dòng),在刪除數(shù)據(jù)塊副 本時(shí),最好在每個(gè)統(tǒng)計(jì)周期內(nèi)只刪除一個(gè)數(shù)據(jù)塊副本。其中,統(tǒng)計(jì)周期是指 每相鄰兩次對數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì)的時(shí)間間隔。具體地,如果查 找到的所述數(shù)據(jù)塊節(jié)點(diǎn)為多個(gè)時(shí),只將其中一個(gè)數(shù)據(jù)塊節(jié)點(diǎn)中的相應(yīng)一個(gè)數(shù) 據(jù)塊副本刪除。
如果不考慮突發(fā)訪問的因素,也可以根據(jù)差值刪除相應(yīng)數(shù)量的數(shù)據(jù)塊副 本。具體地,可以采用如上所述方法,再次查找另一凄t據(jù)塊節(jié)點(diǎn),并刪除該 數(shù)據(jù)塊節(jié)點(diǎn)中的相應(yīng)數(shù)據(jù)塊副本,依此類推,使得數(shù)據(jù)塊副本的副本數(shù)量與 副本調(diào)整數(shù)相符合。
通過本實(shí)施例所述方法,根據(jù)各個(gè)數(shù)據(jù)塊副本的性能參數(shù)對副本數(shù)量進(jìn) 行了相應(yīng)地自適應(yīng)調(diào)整,使得響應(yīng)時(shí)間長或訪問頻率高或傳輸速率慢的數(shù)據(jù)
塊具有更多的數(shù)據(jù)塊副本,以提高用戶訪問這些數(shù)據(jù)塊副本的聚合帶寬;并 且也使得響應(yīng)時(shí)間短,或訪問頻率低或傳輸速率快的數(shù)據(jù)塊具有較少的數(shù)據(jù) 塊副本,以便將存儲空間和輸入輸出帶寬留給其他數(shù)據(jù)塊副本。從而在保證 數(shù)據(jù)塊副本的可用性及可靠性的同時(shí),提高了系統(tǒng)資源利用的合理性和利用 效率。
本發(fā)明所述系統(tǒng)實(shí)施例
本實(shí)施例提供了一種分布式文件系統(tǒng),如圖3所示包括元數(shù)據(jù)服務(wù)器
節(jié)點(diǎn)IO和與其相連的多個(gè)數(shù)據(jù)塊節(jié)點(diǎn),由于每個(gè)數(shù)據(jù)塊節(jié)點(diǎn)的工作原理在本
實(shí)施例中相同,因此以下僅以數(shù)據(jù)塊節(jié)點(diǎn)20為例進(jìn)行說明。其中,所述分布
式文件系統(tǒng)中包括有統(tǒng)計(jì)模塊,用于對數(shù)據(jù)塊節(jié)點(diǎn)中的數(shù)據(jù)塊副本的性能參
數(shù)進(jìn)行統(tǒng)計(jì)。該統(tǒng)計(jì)模塊可以位于所述元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)10中;或者也可以
位于數(shù)據(jù)塊節(jié)點(diǎn)20中。為了便于敘述,以下將位于數(shù)據(jù)塊節(jié)點(diǎn)20中的統(tǒng)計(jì)模塊稱為第一統(tǒng)計(jì)模塊;將位于元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)10中的統(tǒng)計(jì)模塊稱為第二 統(tǒng)計(jì)模塊。
具體地,數(shù)據(jù)塊節(jié)點(diǎn)20還包括存儲模塊21,第一統(tǒng)計(jì)模塊22和調(diào)整 模塊23;元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)10還包括匯總模塊11,運(yùn)算模塊12和指令模 塊13。其工作原理如下
數(shù)據(jù)塊節(jié)點(diǎn)20的存儲模塊21中保存有針對不同數(shù)據(jù)塊的數(shù)據(jù)塊副本, 一般地,針對一個(gè)數(shù)據(jù)塊保存有一個(gè)數(shù)據(jù)塊副本。第一統(tǒng)計(jì)模塊22定期對存 儲模塊21中的數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果發(fā)送給元數(shù)據(jù) 服務(wù)器節(jié)點(diǎn)10;元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)10的匯總模塊11將來自于數(shù)據(jù)塊節(jié)點(diǎn)20 的統(tǒng)計(jì)結(jié)果進(jìn)行求和匯總,得到針對一個(gè)數(shù)據(jù)塊的數(shù)據(jù)塊副本的實(shí)際性能參 數(shù);運(yùn)算模塊12將匯總模塊11得到的實(shí)際性能參數(shù)與預(yù)設(shè)的參考性能參數(shù) 進(jìn)行運(yùn)算得到副本調(diào)整數(shù),具體用于運(yùn)算的策略公式可參見本發(fā)明方法實(shí)施 例所述;指令模塊13根據(jù)運(yùn)算模塊12得到的副本調(diào)整數(shù),向數(shù)據(jù)塊節(jié)點(diǎn)20 或其他數(shù)據(jù)塊節(jié)點(diǎn)發(fā)送副本調(diào)整指令。其中,關(guān)于對數(shù)據(jù)塊節(jié)點(diǎn)的選擇等具 體內(nèi)容,可以參見本發(fā)明方法實(shí)施例所述,此處不再贅述。
數(shù)據(jù)塊節(jié)點(diǎn)20的調(diào)整模塊23根據(jù)來自于元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)10的副本調(diào) 整指令,在存儲模塊21中添加或刪除相應(yīng)的數(shù)據(jù)塊副本,使得所有數(shù)據(jù)塊節(jié) 點(diǎn)中相應(yīng)數(shù)據(jù)塊副本的副本數(shù)量與副本調(diào)整數(shù)相符合。
此處需要特別指出的是,如果被統(tǒng)計(jì)的性能參數(shù)僅包括數(shù)據(jù)塊副本的訪 問頻率等由元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)可以直接得到的性能參數(shù),則在這種情況下, 不通過數(shù)據(jù)塊節(jié)點(diǎn)而僅由元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)直接對這種性能參數(shù)進(jìn)行統(tǒng)計(jì)也 是可以的。例如,由于用戶在訪問數(shù)據(jù)塊副本時(shí)會經(jīng)由元數(shù)據(jù)服務(wù)器節(jié)點(diǎn), 因此,元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)能夠不通過數(shù)據(jù)塊節(jié)點(diǎn)而直接進(jìn)行統(tǒng)計(jì),得到統(tǒng)計(jì) 結(jié)果。在這種情況下,也可以不通過數(shù)據(jù)塊節(jié)點(diǎn)的第一統(tǒng)計(jì)模塊22,而是如 圖4所示,在元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)10中設(shè)置第二統(tǒng)計(jì)模塊15,用于對所述數(shù)據(jù) 塊節(jié)點(diǎn)20中保存的數(shù)據(jù)塊副本的訪問頻率進(jìn)行統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果發(fā)送給匯總模塊ll。
另外,為了防止由于實(shí)際性能參數(shù)變化過快而造成的副本數(shù)量的調(diào)整過
于頻繁,如圖4所示,在元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)10中還可以進(jìn)一步設(shè)置一平滑模 塊14,用于對匯總模塊ll得到的實(shí)際性能參數(shù)進(jìn)行平滑處理。具體地,可以 在得到實(shí)際性能參數(shù)后對其進(jìn)行平滑處理;或者也可以先對統(tǒng)計(jì)結(jié)果中的訪 問速率、響應(yīng)時(shí)間和傳輸速率等參數(shù)進(jìn)行平滑處理后再匯總得到實(shí)際性能參 數(shù)。具體的平滑處理方法可以參見本發(fā)明方法實(shí)施例所述,此處不再贅述。 經(jīng)平滑處理后,減小了實(shí)際性能參數(shù)的變化程度,從而避免了當(dāng)發(fā)生大量的 突發(fā)訪問時(shí),副本數(shù)量的調(diào)整過于頻繁的問題。
通過本實(shí)施例所述系統(tǒng),根據(jù)各個(gè)數(shù)據(jù)塊副本的性能參數(shù)對副本數(shù)量進(jìn) 行了相應(yīng)地自適應(yīng)調(diào)整,使得響應(yīng)時(shí)間長或訪問頻率高或傳輸速率慢的數(shù)據(jù) 塊具有更多的數(shù)據(jù)塊副本,以提高用戶訪問這些數(shù)據(jù)塊副本的聚合帶寬;并 且也使得響應(yīng)時(shí)間短,或訪問頻率低或傳輸速率快的數(shù)據(jù)塊具有較少的數(shù)據(jù) 塊副本,以便將存儲空間和輸入輸出帶寬留給其他數(shù)據(jù)塊副本。從而在保證 數(shù)據(jù)塊副本的可用性及可靠性的同時(shí),提高了系統(tǒng)資源利用的合理性和利用 效率。
最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其 限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù) 人員應(yīng)當(dāng)理解其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或 者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技
術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1、一種數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于包括對數(shù)據(jù)塊節(jié)點(diǎn)中保存的數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì)并得到統(tǒng)計(jì)結(jié)果;元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)將所述統(tǒng)計(jì)結(jié)果進(jìn)行求和匯總,得到針對一個(gè)數(shù)據(jù)塊的數(shù)據(jù)塊副本的實(shí)際性能參數(shù);根據(jù)所述實(shí)際性能參數(shù)與預(yù)設(shè)的參考性能參數(shù)運(yùn)算得到副本調(diào)整數(shù);根據(jù)所述副本調(diào)整數(shù)對所述數(shù)據(jù)塊副本的副本數(shù)量進(jìn)行調(diào)整。
2、 根據(jù)權(quán)利要求1所述數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于對所述性 能參數(shù)進(jìn)行統(tǒng)計(jì)包括由所述數(shù)據(jù)塊節(jié)點(diǎn)對所述性能參數(shù)進(jìn)行統(tǒng)計(jì),并將所 述統(tǒng)計(jì)結(jié)果發(fā)送給所述元數(shù)據(jù)服務(wù)器節(jié)點(diǎn);或者由所述元數(shù)據(jù)服務(wù)器對所述 性能參數(shù)進(jìn)行統(tǒng)計(jì)。
3、 根據(jù)權(quán)利要求1所述數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于根據(jù)所述 實(shí)際性能參數(shù)與所述參考性能參數(shù)運(yùn)算得到副本調(diào)整數(shù)包括根據(jù)策略公式i 印^min(i 印纖,max(i ep柚,L尸匿/《ef」}},i 印=min(i 印腿,i^^ +L(Prar —尸腿)/々」},= min(i e/Vx,「4/々》,或 鄉(xiāng)^uL(dV々」,運(yùn)算得到所述副本調(diào)整數(shù),其中,Rep表示運(yùn)算得到的副本調(diào)整數(shù);p匿表示實(shí)際性能參數(shù);P^表示參考性能參數(shù);R印薩表示最大副本調(diào)整數(shù);Rep min表示最小副本調(diào)整數(shù)。
4、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于根據(jù)所 述副本調(diào)整數(shù)對所述數(shù)據(jù)塊副本的副本數(shù)量進(jìn)行調(diào)整包括將所述副本調(diào)整數(shù)與所述數(shù)據(jù)塊副本的原副本數(shù)進(jìn)行比較,當(dāng)所述副本調(diào)整數(shù)大于所述原副 本數(shù)時(shí),在數(shù)據(jù)塊節(jié)點(diǎn)中添加數(shù)據(jù)塊副本。
5、 根據(jù)權(quán)利要求4所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于所述在 數(shù)據(jù)塊節(jié)點(diǎn)中添加數(shù)據(jù)塊副本包括根據(jù)所述副本調(diào)整數(shù)與所述原副本數(shù)的差值,選擇相應(yīng)數(shù)量的未保存有所述數(shù)據(jù)塊副本的數(shù)據(jù)塊節(jié)點(diǎn),在每個(gè)所述 數(shù)據(jù)塊節(jié)點(diǎn)中添加一個(gè)數(shù)據(jù)塊副本。
6、 根據(jù)權(quán)利要求4所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于所述在 數(shù)據(jù)塊節(jié)點(diǎn)中添加數(shù)據(jù)塊副本包括選擇一個(gè)未保存有所述數(shù)據(jù)塊副本的數(shù) 據(jù)塊節(jié)點(diǎn),在該數(shù)據(jù)塊節(jié)點(diǎn)中添加一個(gè)數(shù)據(jù)塊副本。
7、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于根據(jù)所 述副本調(diào)整數(shù)對所述數(shù)據(jù)塊副本的副本數(shù)量進(jìn)行調(diào)整包括將所述副本調(diào)整 數(shù)與所述數(shù)據(jù)塊副本的原副本數(shù)進(jìn)行比較,當(dāng)所述副本調(diào)整數(shù)小于所述原副 本數(shù)時(shí),刪除一個(gè)數(shù)據(jù)塊副本,或者根據(jù)所述原副本數(shù)與所述副本調(diào)整數(shù)的 差值,刪除相應(yīng)數(shù)量的數(shù)據(jù)塊副本。
8、 根據(jù)權(quán)利要求7所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于所述刪 除一個(gè)數(shù)據(jù)塊副本包括查找具有最小訪問頻率或最高空間使用率或最低處理性能或最高帶寬占 用率的數(shù)據(jù)塊節(jié)點(diǎn),并刪除查找到的一個(gè)數(shù)據(jù)塊節(jié)點(diǎn)中的一個(gè)數(shù)據(jù)塊副本。
9、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于所述數(shù) 據(jù)塊副本的性能參數(shù)包括所述數(shù)據(jù)塊副本的訪問頻率、響應(yīng)時(shí)間、或傳輸 速率T,或者三者的任意參數(shù)組合。
10、 根據(jù)權(quán)利要求9所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于運(yùn)算 得到所述實(shí)際性能參數(shù)之后還包括對所述實(shí)際性能參數(shù)進(jìn)行平滑處理。
11、 根據(jù)權(quán)利要求10所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于對 所述實(shí)際性能參數(shù)進(jìn)行平滑處理包括根據(jù)公式4="尸+ (1-")4,對所述實(shí)際性能參數(shù)進(jìn)行平滑處理,其中, P,表示經(jīng)平滑處理后的實(shí)際性能參數(shù),"表示平滑因子,/^表示上一個(gè)統(tǒng)計(jì) 周期經(jīng)平滑處理后的實(shí)際性能參數(shù),P表示未經(jīng)處理的統(tǒng)計(jì)到的實(shí)際性能參數(shù)。
12、 根據(jù)權(quán)利要求9所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于對所 述數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì)之后還包括分別對所述訪問頻率、響應(yīng) 時(shí)間和傳輸速率進(jìn)^f亍平滑處理。
13、 根據(jù)權(quán)利要求12所述的數(shù)據(jù)塊副本數(shù)量調(diào)整方法,其特征在于對所述訪問頻率進(jìn)行平滑處理包括根據(jù)公式F^ = F + (1-a)F。w,對所述訪問頻 率進(jìn)行平滑處理,其中,i^表示經(jīng)平滑處理后的訪問頻率,"表示平滑因子, F。w表示上一個(gè)統(tǒng)計(jì)周期經(jīng)平滑處理后的訪問頻率,F(xiàn)表示未經(jīng)平滑處理的統(tǒng)計(jì)到的訪問頻率;或根據(jù)公式7_="7 + (1-")r。w,對所述響應(yīng)時(shí)間進(jìn)行平滑處 理,其中,r^表示經(jīng)平滑處理后的響應(yīng)時(shí)間,"表示平滑因子,r^表示上一 個(gè)統(tǒng)計(jì)周期經(jīng)平滑處理后的響應(yīng)時(shí)間,r表示未經(jīng)平滑處理的統(tǒng)計(jì)到的響應(yīng)時(shí) 間;或根據(jù)公式i^-"丄+ (i-")i^,對所述傳輸速率進(jìn)行平滑處理,其中,丄 , 表示經(jīng)平滑處理后的傳輸速率,"表示平滑因子,丄。,,表示上一個(gè)統(tǒng)計(jì)周期經(jīng)平滑處理后的傳輸速率,z表示未經(jīng)平滑處理的統(tǒng)計(jì)到的傳輸速率。
14、 一種分布式文件系統(tǒng),包括元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)和數(shù)據(jù)塊節(jié)點(diǎn),其特 征在于包括統(tǒng)計(jì)模塊,位于所述元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)或數(shù)據(jù)塊節(jié)點(diǎn)中,用于對存儲于 所述數(shù)據(jù)塊節(jié)點(diǎn)中的數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì); 所述數(shù)據(jù)塊節(jié)點(diǎn)包括 存儲模塊,用于保存數(shù)據(jù)塊副本;調(diào)整模塊,用于根據(jù)來自于元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)的副本調(diào)整指令,在存儲 模塊中添加或刪除相應(yīng)的數(shù)據(jù)塊副本; 所述元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)包括匯總模塊,用于將所述統(tǒng)計(jì)結(jié)果進(jìn)行求和匯總,得到針對一個(gè)數(shù)據(jù)塊的 數(shù)據(jù)塊副本的實(shí)際性能參數(shù);運(yùn)算模塊,用于將匯總模塊得到的實(shí)際性能參數(shù)與預(yù)設(shè)的參考性能參數(shù)進(jìn)行運(yùn)算得到副本調(diào)整數(shù);指令模塊,用于根據(jù)運(yùn)算模塊得到的副本調(diào)整數(shù)向所述數(shù)據(jù)塊節(jié)點(diǎn)發(fā)送副本調(diào)整指令。
15、 根據(jù)權(quán)利要求14所述的分布式文件系統(tǒng),其特征在于所述元數(shù)據(jù) 處理器節(jié)點(diǎn)還包括平滑模塊,用于對匯總模塊得到的實(shí)際性能參數(shù)進(jìn)行平 滑處理。
全文摘要
本發(fā)明涉及一種數(shù)據(jù)塊副本數(shù)量調(diào)整方法及分布式文件系統(tǒng),其中方法包括對數(shù)據(jù)塊節(jié)點(diǎn)中保存的數(shù)據(jù)塊副本的性能參數(shù)進(jìn)行統(tǒng)計(jì)并得到統(tǒng)計(jì)結(jié)果;元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)將所述統(tǒng)計(jì)結(jié)果進(jìn)行求和匯總,得到針對一個(gè)數(shù)據(jù)塊的數(shù)據(jù)塊副本的實(shí)際性能參數(shù);根據(jù)所述實(shí)際性能參數(shù)與預(yù)設(shè)的參考性能參數(shù)運(yùn)算得到副本調(diào)整數(shù);根據(jù)所述副本調(diào)整數(shù)對所述數(shù)據(jù)塊副本的副本數(shù)量進(jìn)行調(diào)整。系統(tǒng)包括元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)和數(shù)據(jù)塊節(jié)點(diǎn)。通過本發(fā)明,根據(jù)各個(gè)數(shù)據(jù)塊副本的性能參數(shù)對副本數(shù)量進(jìn)行了相應(yīng)地自適應(yīng)調(diào)整,在保證數(shù)據(jù)塊副本的可用性及可靠性的同時(shí),提高了系統(tǒng)資源利用的合理性和利用效率。
文檔編號G06F17/30GK101470733SQ20071030471
公開日2009年7月1日 申請日期2007年12月27日 優(yōu)先權(quán)日2007年12月27日
發(fā)明者彬 周, 周文輝, 萌 徐, 羅治國 申請人:中國移動(dòng)通信集團(tuán)公司