本發(fā)明涉及Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)領(lǐng)域,尤其涉及一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法及裝置。
背景技術(shù):
自大數(shù)據(jù)技術(shù)和Hadoop平臺出現(xiàn)以來,已經(jīng)成為各種業(yè)務(wù)平臺(如教育云、醫(yī)療云、數(shù)據(jù)云等等)構(gòu)建的核心技術(shù)。其中,HDFS是Hadoop大數(shù)據(jù)平臺的核心系統(tǒng),具有高容錯性、高可擴(kuò)展性等眾多優(yōu)點(diǎn)。
現(xiàn)有技術(shù)中,HDFS的架構(gòu)包括一個元數(shù)據(jù)節(jié)點(diǎn)(Namenode)、多個數(shù)據(jù)節(jié)點(diǎn)(Datanode)以及客戶端(Client),其中,元數(shù)據(jù)節(jié)點(diǎn)用于存儲和管理元數(shù)據(jù),該元數(shù)據(jù)包括文件系統(tǒng)目錄樹信息、文件和數(shù)據(jù)塊(Block)的對應(yīng)關(guān)系信息以及數(shù)據(jù)塊的位置信息;客戶端用于提供與元數(shù)據(jù)節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)進(jìn)行交互的應(yīng)用程序編程接口(Application Programming Interface,API),周期性的向元數(shù)據(jù)節(jié)點(diǎn)回報存儲的數(shù)據(jù)塊信息;數(shù)據(jù)節(jié)點(diǎn)用于存儲數(shù)據(jù),元數(shù)據(jù)節(jié)點(diǎn)或客戶端可以向數(shù)據(jù)節(jié)點(diǎn)請求寫入或讀出數(shù)據(jù)塊。
當(dāng)HDFS中有大量數(shù)據(jù)分布時,尤其是在有新的數(shù)據(jù)節(jié)點(diǎn)加入或有數(shù)據(jù)節(jié)點(diǎn)退出時,會出現(xiàn)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)分布不均衡的問題。為解決該問題,在HDFS內(nèi)部集成數(shù)據(jù)分布調(diào)整模塊,該數(shù)據(jù)分布調(diào)整模塊可以有效地將數(shù)據(jù)分布到新的數(shù)據(jù)節(jié)點(diǎn)或其他數(shù)據(jù)節(jié)點(diǎn)上,實現(xiàn)數(shù)據(jù)的均衡化分布。在分布過程中其考慮每個數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的大小和數(shù)量,盡可能的讓每個數(shù)據(jù)節(jié)點(diǎn)中的數(shù)據(jù)塊和大小平均分布。
然而,對于一些對輸入/輸出(Input/Output,I/O)負(fù)載存在不同需求的業(yè)務(wù),就存在較多的問題,尤其是在整體I/O系統(tǒng)性能上。如下為教育云的主要 負(fù)載表現(xiàn):
(1)一段時間內(nèi)某個數(shù)據(jù)塊是熱點(diǎn)數(shù)據(jù)塊,而其他數(shù)據(jù)塊的使用較少;熱點(diǎn)數(shù)據(jù)塊的讀寫頻度非常高,而其他數(shù)據(jù)塊的讀寫頻度就很低;
(2)一般情況下,對數(shù)據(jù)塊的讀操作很多,而寫操作較少,但在寫操作的時候,數(shù)據(jù)量較大,而HDFS對大塊數(shù)據(jù)的寫操作為順序?qū)懀沟貌糠謹(jǐn)?shù)據(jù)節(jié)點(diǎn)的寫入數(shù)據(jù)塊的頻度非常高,而其他數(shù)據(jù)節(jié)點(diǎn)的寫入數(shù)據(jù)塊的頻度就很低。
上述負(fù)載表現(xiàn)就導(dǎo)致各個數(shù)據(jù)塊的I/O負(fù)載不均衡,有的數(shù)據(jù)塊讀寫頻度非常高,I/O負(fù)載大;有的數(shù)據(jù)塊讀寫頻度很低,I/O負(fù)載小;這樣有高頻率讀寫數(shù)據(jù)塊的數(shù)據(jù)節(jié)點(diǎn)就會出現(xiàn)I/O負(fù)載過多、I/O性能整體快速下降、客戶響應(yīng)時間下降等問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例期望提供一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法及裝置,可以達(dá)到數(shù)據(jù)節(jié)點(diǎn)輸入/輸出負(fù)載均衡的目的。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
本發(fā)明提供了一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法,所述方法包括:
計算各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度,獲取節(jié)點(diǎn)冷熱度最大的最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號和節(jié)點(diǎn)冷熱度最小的最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號;
計算所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度,獲取塊冷熱度最大的最熱數(shù)據(jù)塊的位置信息;
獲取所述最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息,根據(jù)所述備份數(shù)據(jù)塊的位置信息以及所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,將所述備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi);
向元數(shù)據(jù)節(jié)點(diǎn)發(fā)送主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示。
上述方案中,所述計算各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度,包括:
按照以下公式計算獲得各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度B:
B=M*(M2/M1)*(N2/N1);
其中,所述M為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的輸入/輸出負(fù)載總量;所述M1為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的讀操作數(shù);所述M2為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的寫操作數(shù);所述N1為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的讀數(shù)據(jù)塊總量;所述N2為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的寫數(shù)據(jù)塊總量。
上述方案中,所述計算所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度,包括:
按照以下公式計算獲得所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度N:
N=X*(T1-T2);
其中,所述X為數(shù)據(jù)塊在單位時間內(nèi)的讀寫操作總數(shù);所述T1為最近訪問時間;所述T2為預(yù)設(shè)的基準(zhǔn)訪問時間。
上述方案中,所述根據(jù)所述備份數(shù)據(jù)塊的位置信息以及所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,將所述備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi),包括:
計算各個所述備份數(shù)據(jù)塊的塊冷熱度,獲得塊冷熱度最小的最冷備份數(shù)據(jù)塊的位置信息;
根據(jù)所述最冷備份數(shù)據(jù)塊的位置信息以及所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,確定所述最冷備份數(shù)據(jù)塊在所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)時,不進(jìn)行遷移;確定所述最冷備份數(shù)據(jù)塊不在所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)時,將所述最冷備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)。
本發(fā)明還提供了一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法,所述方法包括:
接收調(diào)整裝置發(fā)送的主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示;
根據(jù)所述主備標(biāo)識修改請求,將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的 主標(biāo)識修改為備用標(biāo)識。
本發(fā)明提供了一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整裝置,所述裝置包括:
計算單元,用于計算各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度,獲取節(jié)點(diǎn)冷熱度最大的最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號和節(jié)點(diǎn)冷熱度最小的最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號;并計算所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度,獲取塊冷熱度最大的最熱數(shù)據(jù)塊的位置信息;
位置獲取單元,用于獲取所述計算單元計算出的塊冷熱度最大的最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息;
遷移單元,用于根據(jù)所述位置獲取單元獲取的所述備份數(shù)據(jù)塊的位置信息以及所述計算單元獲取的所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,將所述備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi);
發(fā)送單元,用于向元數(shù)據(jù)節(jié)點(diǎn)發(fā)送主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將由所述遷移單元遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將所述計算單元獲取的所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示。
上述方案中,所述計算單元,具體用于按照以下公式計算獲得各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度B:
B=M*(M2/M1)*(N2/N1);
其中,所述M為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的輸入/輸出負(fù)載總量;所述M1為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的讀操作數(shù);所述M2為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的寫操作數(shù);所述N1為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的讀數(shù)據(jù)塊總量;所述N2為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的寫數(shù)據(jù)塊總量。
上述方案中,所述計算單元,具體用于按照以下公式計算獲得所述位置獲取單元獲取到的所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度N:
N=X*(T1-T2);
其中,所述X為數(shù)據(jù)塊在單位時間內(nèi)的讀寫操作總數(shù);所述T1為最近訪問 時間;所述T2為預(yù)設(shè)的基準(zhǔn)訪問時間。
上述方案中,所述計算單元,還用于計算所述位置獲取單元獲取的各個所述備份數(shù)據(jù)塊的塊冷熱度,獲得塊冷熱度最小的最冷備份數(shù)據(jù)塊的位置信息;
所述遷移單元,具體用于根據(jù)所述計算單元獲取的所述最冷備份數(shù)據(jù)塊的位置信息以及所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,確定所述最冷備份數(shù)據(jù)塊在所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)時,不進(jìn)行遷移;確定所述最冷備份數(shù)據(jù)塊不在所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)時,將所述最冷備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)。
本發(fā)明提供了一種元數(shù)據(jù)節(jié)點(diǎn),所述元數(shù)據(jù)節(jié)點(diǎn)包括:
接收單元,用于接收調(diào)整裝置發(fā)送的主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示;
修改單元,用于根據(jù)所述接收單元接收到的所述主備標(biāo)識修改請求,將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識。
本發(fā)明實施例提供了一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法及裝置,該裝置首先計算各個數(shù)據(jù)節(jié)點(diǎn)的冷熱度,獲取節(jié)點(diǎn)冷熱度最大的最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號和節(jié)點(diǎn)冷熱度最小的最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號;然后計算所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度,獲取塊冷熱度最大的最熱數(shù)據(jù)塊的位置信息;接下來,獲取所述最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息,將所述備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)。這樣,將所述最熱數(shù)據(jù)節(jié)點(diǎn)中最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊遷移至所述最冷數(shù)據(jù)節(jié)點(diǎn)中,降低了所述最熱數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載,提高了所述最冷數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載,均衡各數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載,提高這個系統(tǒng)的I/O性能,縮短了客戶響應(yīng)時間。
附圖說明
圖1為本發(fā)明實施例提供的一種分布式文件系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例提供的一種應(yīng)用于調(diào)整裝置一側(cè)的分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法的流程示意圖;
圖3為本發(fā)明實施例提供的一種應(yīng)用于元數(shù)據(jù)節(jié)點(diǎn)一側(cè)的分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法的流程示意圖;
圖4為本發(fā)明實施例提供的一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的一種元數(shù)據(jù)節(jié)點(diǎn)的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
本發(fā)明實施例提供了一種分布式文件系統(tǒng),該分布式文件系統(tǒng)基于HDFS,如圖1所示,所述系統(tǒng)包括:元數(shù)據(jù)節(jié)點(diǎn)101、數(shù)據(jù)節(jié)點(diǎn)102、客戶端103以及調(diào)整裝置104;其中,
所述元數(shù)據(jù)節(jié)點(diǎn)101,用于管理元數(shù)據(jù);所述元數(shù)據(jù)包括文件系統(tǒng)目錄樹信息、文件和數(shù)據(jù)塊的對應(yīng)關(guān)系信息以及數(shù)據(jù)塊的位置信息,通常,所述元數(shù)據(jù)節(jié)點(diǎn)101的個數(shù)為一個;
所述數(shù)據(jù)節(jié)點(diǎn)102,用于存儲數(shù)據(jù),響應(yīng)來自所述元數(shù)據(jù)節(jié)點(diǎn)101的創(chuàng)建、刪除和復(fù)制數(shù)據(jù)塊的命令,還響應(yīng)來自所述客戶端103寫入或讀出數(shù)據(jù)塊的請求,HDFS中默認(rèn)的基本存儲單位是大小為64M的數(shù)據(jù)塊;
所述客戶端103是HDFS的外部接口功能模塊,用于提供與所述元數(shù)據(jù)節(jié)點(diǎn)101和所述數(shù)據(jù)節(jié)點(diǎn)102進(jìn)行交互的應(yīng)用程序編程接口,周期性的向所述元數(shù)據(jù)節(jié)點(diǎn)101回報存儲的數(shù)據(jù)塊信息;
所述調(diào)整裝置104具有I/O負(fù)載調(diào)整功能,用于在所述數(shù)據(jù)節(jié)點(diǎn)102的I/O負(fù)載分布不均衡時調(diào)整I/O負(fù)載的分布,其可通過所述客戶端103與所述元數(shù)據(jù)節(jié)點(diǎn)101進(jìn)行交互,也可直接與所述數(shù)據(jù)節(jié)點(diǎn)102進(jìn)行交互來調(diào)整數(shù)據(jù)節(jié)點(diǎn)102中的I/O負(fù)載。
在本實施例中,所述元數(shù)據(jù)節(jié)點(diǎn)101、每個所述數(shù)據(jù)節(jié)點(diǎn)102、所述調(diào)整裝置104均可為單獨(dú)的服務(wù)器,當(dāng)然,還可以為其它設(shè)備,本發(fā)明中不做具體限定。
本發(fā)明實施例提供了一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法,應(yīng)用于調(diào)整裝置一側(cè),如圖2所示,本實施例方法的處理流程包括以下步驟:
步驟201、計算各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度,獲取節(jié)點(diǎn)冷熱度最大的最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號和節(jié)點(diǎn)冷熱度最小的最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號。
HDFS啟動的同時,調(diào)整裝置也開始工作,所述調(diào)整裝置周期性的計算本HDFS中各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度,也就是各個數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載情況。在某個周期,部分?jǐn)?shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載過多而部分?jǐn)?shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載過少,就會造成數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載不均衡,特別是I/O負(fù)載最多的數(shù)據(jù)節(jié)點(diǎn)與I/O負(fù)載最少的數(shù)據(jù)節(jié)點(diǎn)之間,I/O負(fù)載分布不均衡尤為突出,這時,所述調(diào)整裝置就可以計算得出各個數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載情況,及時調(diào)整數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載分布,避免由于數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載不均衡造成的I/O性能快速下降、客戶響應(yīng)時間下降等問題的發(fā)生。
具體來說,所述調(diào)整裝置計算各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度時,是按照以下公式計算獲得各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度B:
B=M*(M2/M1)*(N2/N1)(1)
其中,所述M為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的輸入/輸出負(fù)載總量;所述M1為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的讀操作數(shù);所述M2為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的寫操作數(shù);所述N1為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的數(shù)據(jù)塊讀出總量;所述N2為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的數(shù)據(jù)塊寫入總量。
由公式(1)可知,數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度B越大,表明所述數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載越高;反之,數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度B越小,表明所述數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載越低。
由此可見,在計算出各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度B之后,節(jié)點(diǎn)冷熱度最大的數(shù)據(jù)節(jié)點(diǎn),也就是最熱數(shù)據(jù)節(jié)點(diǎn),其I/O負(fù)載最多,而節(jié)點(diǎn)冷熱度最小的數(shù) 據(jù)節(jié)點(diǎn),也就是最冷數(shù)據(jù)節(jié)點(diǎn),其I/O負(fù)載最少。為了實現(xiàn)數(shù)據(jù)節(jié)點(diǎn)間I/O負(fù)載均衡,就需要降低所述最熱數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載并提高所述最冷數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載,此時,所述調(diào)整裝置就需要獲取所述最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號和所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號以重新調(diào)整數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的分布。
本實施例方法中所述各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度B的計算公式(1)中的各個參數(shù)是通過以下步驟獲取的:
步驟A1、所述調(diào)整裝置發(fā)送獲取數(shù)據(jù)節(jié)點(diǎn)數(shù)目的第一請求給客戶端;
步驟A2、所述客戶端將所述第一請求轉(zhuǎn)發(fā)給元數(shù)據(jù)節(jié)點(diǎn);
步驟A3、所述元數(shù)據(jù)節(jié)點(diǎn)獲取數(shù)據(jù)節(jié)點(diǎn)總數(shù)并發(fā)送給所述客戶端;
步驟A4、所述客戶端將所述數(shù)據(jù)節(jié)點(diǎn)總數(shù)返回給所述調(diào)整裝置;
步驟A5、所述調(diào)整裝置發(fā)送獲取第i個數(shù)據(jù)節(jié)點(diǎn)節(jié)點(diǎn)號以及參數(shù)值的第二請求給所述客戶端;其中,所述i為自然數(shù),初始值為1;所述參數(shù)值包括第i個數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的輸入/輸出負(fù)載總量M、讀操作數(shù)M1、寫操作數(shù)M2、數(shù)據(jù)塊讀出總量N1和數(shù)據(jù)塊寫入總量N2;
步驟A6、所述客戶端將所述第二請求轉(zhuǎn)發(fā)給所述元數(shù)據(jù)節(jié)點(diǎn);
步驟A7、所述元數(shù)據(jù)節(jié)點(diǎn)獲取第i個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,并以所述第i個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號為索引獲取第i個數(shù)據(jù)節(jié)點(diǎn)的參數(shù)值,將所述第i個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號以及參數(shù)值發(fā)送給所述客戶端;
步驟A8、所述客戶端將所述第i個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號以及參數(shù)值返回給所述調(diào)整裝置;
步驟A9、所述調(diào)整裝置判斷i是否小于所述數(shù)據(jù)節(jié)點(diǎn)總數(shù);如果是,則i=i+1,返回執(zhí)行步驟A5;否則,執(zhí)行步驟A10;
步驟A10、所述調(diào)整裝置將得到的所有數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號以及各個參數(shù)值進(jìn)行存儲,退出流程。
通常,所述元數(shù)據(jù)節(jié)點(diǎn)中記錄有HDFS中數(shù)據(jù)節(jié)點(diǎn)總數(shù)、各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號、以及在單位時間內(nèi)的輸入/輸出負(fù)載總量、讀操作數(shù)、寫操作數(shù)、數(shù)據(jù)塊讀出總量和數(shù)據(jù)塊寫入總量等參數(shù)值,而所述調(diào)整裝置不能直接與所述元數(shù) 據(jù)節(jié)點(diǎn)進(jìn)行交互,需要通過所述客戶端間接的與所述元數(shù)據(jù)節(jié)點(diǎn)進(jìn)行交互才能獲得數(shù)據(jù)節(jié)點(diǎn)的數(shù)目、各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號以及參數(shù)值,在所述調(diào)整裝置獲得各個數(shù)據(jù)節(jié)點(diǎn)的參數(shù)值之后,可利用節(jié)點(diǎn)冷熱度B的計算公式(1)分別計算出各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度,獲取節(jié)點(diǎn)冷熱度最大的最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號和節(jié)點(diǎn)冷熱度最小的最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號。
步驟202、計算所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度,獲取塊冷熱度最大的最熱數(shù)據(jù)塊的位置信息。
由于所述最熱數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載最多,其中各個數(shù)據(jù)塊的讀寫頻率都很高,所述調(diào)整裝置需要及時將最熱數(shù)據(jù)節(jié)點(diǎn)中讀寫頻率最高的數(shù)據(jù)塊進(jìn)行調(diào)整,進(jìn)而降低所述最熱數(shù)據(jù)節(jié)點(diǎn)的讀寫頻率,減少所述最熱數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載。
因此,所述調(diào)整裝置需要進(jìn)一步計算獲得所述最熱數(shù)據(jù)節(jié)點(diǎn)中讀寫頻率最高即塊冷熱度最大的數(shù)據(jù)塊,所述計算所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度,具體包括:
按照以下公式計算獲得所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度N:
N=X*(T1-T2)(2)
其中,所述X為數(shù)據(jù)塊在單位時間內(nèi)的讀寫操作總數(shù);所述T1為最近訪問時間;所述T2為預(yù)設(shè)的基準(zhǔn)訪問時間。
由公式(2)可知,所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度N越大,表明其I/O負(fù)載越大;反之,所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度N越小,表明其I/O負(fù)載越小。為了均衡數(shù)據(jù)塊上的I/O負(fù)載分布,本實施例方法中的所述調(diào)整裝置需要對所述最熱數(shù)據(jù)節(jié)點(diǎn)中塊冷熱度最高的最熱數(shù)據(jù)塊進(jìn)行調(diào)整,故需要獲取所述最熱數(shù)據(jù)塊的位置信息,所述最熱數(shù)據(jù)塊的位置信息為所述最熱數(shù)據(jù)塊所在的最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號以及其在該最熱數(shù)據(jù)節(jié)點(diǎn)中的位置。
本實施例方法中計算所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度,獲取塊冷熱度最大的最熱數(shù)據(jù)塊的位置信息是通過以下步驟實現(xiàn)的:
步驟B1、所述調(diào)整裝置發(fā)送獲取所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊數(shù)目的第三請求給所述客戶端;
步驟B2、所述客戶端將所述第三請求轉(zhuǎn)發(fā)給所述元數(shù)據(jù)節(jié)點(diǎn);
步驟B3、所述元數(shù)據(jù)節(jié)點(diǎn)獲取所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊總數(shù)并發(fā)送給所述客戶端;
步驟B4、所述客戶端將所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊總數(shù)返回給所述調(diào)整裝置;
步驟B5、所述調(diào)整裝置將所述最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號、獲取所述最熱數(shù)據(jù)節(jié)點(diǎn)中第j塊數(shù)據(jù)塊的位置信息以及單位時間內(nèi)讀寫操作總數(shù)的第四請求發(fā)送給所述客戶端;其中,所述j為自然數(shù),初始值為1;
步驟B6、所述客戶端將所述第四請求轉(zhuǎn)發(fā)給所述元數(shù)據(jù)節(jié)點(diǎn);
步驟B7、所述元數(shù)據(jù)節(jié)點(diǎn)根據(jù)所述最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號獲取第j塊數(shù)據(jù)塊的位置信息,并以所述第j塊數(shù)據(jù)塊的位置信息為索引獲取第j塊數(shù)據(jù)塊單位時間內(nèi)的讀寫操作總數(shù)X,將所述第j塊數(shù)據(jù)塊的位置信息以及單位時間內(nèi)的讀寫操作總數(shù)X發(fā)送給所述客戶端;
步驟B8、所述客戶端將所述第j塊數(shù)據(jù)塊的位置信息以及單位時間內(nèi)數(shù)據(jù)塊的讀寫操作總數(shù)X返回給所述調(diào)整裝置;
步驟B9、所述調(diào)整裝置判斷j是否小于所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊總數(shù);如果是,則j=j(luò)+1,返回執(zhí)行步驟B5;否則,執(zhí)行步驟B10;
步驟B10、所述調(diào)整裝置獲取所述最熱數(shù)據(jù)節(jié)點(diǎn)中所有數(shù)據(jù)塊單位時間內(nèi)的讀寫操作總數(shù)X后,按照塊冷熱度N的計算公式進(jìn)行塊冷熱度計算,比較得到塊冷熱度最大的數(shù)據(jù)塊,即最熱數(shù)據(jù)塊,并將所述最熱數(shù)據(jù)塊的位置信息進(jìn)行存儲,退出流程。
這里,所述調(diào)整裝置通過所述客戶端與所述元數(shù)據(jù)節(jié)點(diǎn)進(jìn)行交互,獲取所述元數(shù)據(jù)節(jié)點(diǎn)中記錄的各個數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊總數(shù)、數(shù)據(jù)塊的位置信息、數(shù)據(jù)塊單位時間內(nèi)的讀寫操作總數(shù)。
步驟203、獲取所述最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息,根據(jù)所述備份數(shù)據(jù)塊的位置信息以及所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,將所述備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)。
為了降低所述最熱數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)塊的讀寫頻率,所述調(diào)整裝置需要對所述最熱數(shù)據(jù)節(jié)點(diǎn)中最熱數(shù)據(jù)塊進(jìn)行調(diào)整,然而,針對所述最熱數(shù)據(jù)塊本身進(jìn)行調(diào)整,容易在調(diào)整過程中出現(xiàn)數(shù)據(jù)塊操作沖突的問題,而在HDFS中,每個數(shù)據(jù)塊均有與該數(shù)據(jù)內(nèi)容相同的備份數(shù)據(jù)塊,并且所述備份數(shù)據(jù)塊存放在不同的數(shù)據(jù)節(jié)點(diǎn)上,因此,所述調(diào)整裝置不對最所述熱數(shù)據(jù)節(jié)點(diǎn)中最熱數(shù)據(jù)塊進(jìn)行調(diào)整,而是對所述最熱數(shù)據(jù)塊的一個備份數(shù)據(jù)塊進(jìn)行調(diào)整,因此所述調(diào)整裝置首先要獲取所述最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息。
本實施例方法中,所述調(diào)整裝置在獲取所述最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息之后,所述調(diào)整裝置可以按照上述的計算最熱數(shù)據(jù)節(jié)點(diǎn)中各個數(shù)據(jù)塊的塊冷熱度的過程計算各個備份數(shù)據(jù)塊的塊冷熱度,獲得塊冷熱度最小的最冷備份數(shù)據(jù)塊的位置信息;然后,所述調(diào)整裝置根據(jù)所述最冷備份數(shù)據(jù)塊的位置信息以及所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,確定所述最冷備份數(shù)據(jù)塊在所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)時,即最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號與所述最冷備份數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號相同,不進(jìn)行遷移,流程結(jié)束;否則,所述調(diào)整裝置將所述最冷備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi);所述調(diào)整裝置獲取所述最冷備份數(shù)據(jù)塊遷移后的位置信息。
這里,所述調(diào)整裝置通過所述客戶端與所述元數(shù)據(jù)節(jié)點(diǎn)進(jìn)行交互,獲取所述元數(shù)據(jù)節(jié)點(diǎn)中記錄的各個數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息,包括所述獲取所述最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息以及所述獲取所述最冷備份數(shù)據(jù)塊遷移后的位置信息;其中,所述備份數(shù)據(jù)塊的位置信息為所述備份數(shù)據(jù)塊所在數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號以及所述備份數(shù)據(jù)塊在該數(shù)據(jù)節(jié)點(diǎn)中的位置;所述最冷備份數(shù)據(jù)塊的位置信息為所述最冷備份數(shù)據(jù)塊所在最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號以及所述最冷備份數(shù)據(jù)塊在所述最冷數(shù)據(jù)節(jié)點(diǎn)中的位置。
在本發(fā)明實施例的分布式文件系統(tǒng)中,默認(rèn)每一個數(shù)據(jù)塊除數(shù)據(jù)塊本身之外還存放2個備份數(shù)據(jù)塊,當(dāng)然,所述備份數(shù)據(jù)塊的數(shù)目也可以根據(jù)需要進(jìn)行設(shè)置,本發(fā)明中不做具體限定。
步驟204、向元數(shù)據(jù)節(jié)點(diǎn)發(fā)送主備標(biāo)識修改請求。
所述主備標(biāo)識修改請求中攜帶有將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示。
本實施例方法中,所述調(diào)整裝置將所述最熱數(shù)據(jù)塊的最冷備份數(shù)據(jù)塊遷移到最冷數(shù)據(jù)節(jié)點(diǎn)上,為了使后續(xù)針對所述最熱數(shù)據(jù)節(jié)點(diǎn)中最熱數(shù)據(jù)塊的讀寫操作指向所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置上,所述調(diào)整裝置還需要向所述元數(shù)據(jù)節(jié)點(diǎn)發(fā)送主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示。包括如下步驟:
步驟C1、所述調(diào)整裝置向所述客戶端發(fā)送主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示;
步驟C2、所述客戶端中斷對所述最熱數(shù)據(jù)塊的所有操作;
步驟C3、所述客戶端將所述主備標(biāo)識修改請求發(fā)送給所述元數(shù)據(jù)節(jié)點(diǎn)。
本發(fā)明實施例還提供了一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法,應(yīng)用于元數(shù)據(jù)節(jié)點(diǎn)一側(cè),如圖3所示,本實施例方法的處理流程包括以下步驟:
步驟301、接收調(diào)整裝置發(fā)送的主備標(biāo)識修改請求。
所述元數(shù)據(jù)節(jié)點(diǎn)接收調(diào)整裝置發(fā)送的主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示。
步驟302、根據(jù)所述主備標(biāo)識修改請求,將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識。
所述元數(shù)據(jù)節(jié)點(diǎn)中存儲有位置信息設(shè)置為主標(biāo)識的數(shù)據(jù)塊位置信息和位置 信息設(shè)置為備用標(biāo)識的數(shù)據(jù)塊位置信息,當(dāng)所述客戶端需要讀出數(shù)據(jù)塊時,所述元數(shù)據(jù)節(jié)點(diǎn)將設(shè)置為主標(biāo)識的數(shù)據(jù)塊的位置信息發(fā)送給所述客戶端,所述客戶端可從該位置信息處讀取數(shù)據(jù)塊。
本實施例方法中,所述元數(shù)據(jù)節(jié)點(diǎn)接收到主備標(biāo)識修改請求后就會根據(jù)所述主備標(biāo)識修改請求,將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識,這樣,所述客戶端在請求讀取相應(yīng)數(shù)據(jù)塊時,就會從所述最冷數(shù)據(jù)節(jié)點(diǎn)的備份數(shù)據(jù)塊的位置信息處讀取。
待所述元數(shù)據(jù)節(jié)點(diǎn)修改完主備標(biāo)識后,會發(fā)送修改完成通知所述客戶端,所述客戶端就可以繼續(xù)對所述最熱數(shù)據(jù)塊進(jìn)行操作;同時所述客戶端將所述修改完成通知轉(zhuǎn)發(fā)給所述調(diào)整裝置;所述調(diào)整模塊接收所述修改完成通知后,知道本次的調(diào)整流程結(jié)束。
這樣,通過以上步驟就可以實現(xiàn)將原來的最熱數(shù)據(jù)塊置換成備份數(shù)據(jù)塊,再將其備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)上后置換成主數(shù)據(jù)塊,一方面降低所述最熱數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載,另一方面提高所述最冷數(shù)據(jù)節(jié)點(diǎn)的I/O負(fù)載,從而達(dá)到數(shù)據(jù)節(jié)點(diǎn)I/O負(fù)載均衡的目的,進(jìn)而提高了I/O性能以及客戶的響應(yīng)時間。
為了測試本發(fā)明實施例中分布式文件系統(tǒng)的I/O負(fù)載性能,模擬系統(tǒng)采用了50臺PC服務(wù)器作為數(shù)據(jù)節(jié)點(diǎn),1臺PC服務(wù)器作為元數(shù)據(jù)節(jié)點(diǎn),1臺PC服務(wù)器運(yùn)行調(diào)整裝置,1個PC服務(wù)器作為客戶端,而采用10臺PC服務(wù)器作為I/O負(fù)載模擬器。
模擬系統(tǒng)測試結(jié)構(gòu)顯示:(1)在上述系統(tǒng)配置情況下,同樣的I/O負(fù)載情況下,讀I/O操作可以提升37%性能,而寫性能可以提高54.3%左右的性能;(2)整體I/O性能大概提升42%左右。
因此,應(yīng)用本發(fā)明分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整方法比原來HDFS具有較大的I/O性能提升,更適合類似教育云這類I/O負(fù)載情況下的數(shù)據(jù)負(fù)載分布調(diào)整。
本發(fā)明實施例還提供一種分布式文件系統(tǒng)的輸入/輸出負(fù)載調(diào)整裝置,如圖4所示,所述調(diào)整裝置包括:計算單元401、位置獲取單元402、遷移單元403以及發(fā)送單元404;其中,
所述計算單元401,用于計算各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度,獲取節(jié)點(diǎn)冷熱度最大的最熱數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號和節(jié)點(diǎn)冷熱度最小的最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號;并計算所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度,獲取塊冷熱度最大的最熱數(shù)據(jù)塊的位置信息;
所述位置獲取單元402,用于獲取所述計算單元401計算出的塊冷熱度最大的最熱數(shù)據(jù)塊的備份數(shù)據(jù)塊的位置信息;
遷移單元403,用于根據(jù)所述位置獲取單元402獲取的所述備份數(shù)據(jù)塊的位置信息以及所述計算單元401獲取的所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,將所述備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi);
發(fā)送單元404,用于向元數(shù)據(jù)節(jié)點(diǎn)發(fā)送主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將由所述遷移單元403遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將所述計算單元401獲取的所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示。
可選的,所述計算單元401,具體用于按照以下公式計算獲得各個數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)冷熱度B:
B=M*(M2/M1)*(N2/N1);
其中,所述M為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的輸入/輸出負(fù)載總量;所述M1為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的讀操作數(shù);所述M2為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的寫操作數(shù);所述N1為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的讀數(shù)據(jù)塊總量;所述N2為數(shù)據(jù)節(jié)點(diǎn)在單位時間內(nèi)的寫數(shù)據(jù)塊總量。
可選的,所述計算單元401,具體用于按照以下公式計算獲得所述位置獲取單元402獲取到的所述最熱數(shù)據(jù)節(jié)點(diǎn)中數(shù)據(jù)塊的塊冷熱度N:
N=X*(T1-T2);
其中,所述X為數(shù)據(jù)塊在單位時間內(nèi)的讀寫操作總數(shù);所述T1為最近訪問 時間;所述T2為預(yù)設(shè)的基準(zhǔn)訪問時間。
可選的,所述計算單元401,還用于計算所述位置獲取單元402獲取的各個所述備份數(shù)據(jù)塊的塊冷熱度,獲得塊冷熱度最小的最冷備份數(shù)據(jù)塊的位置信息;
所述遷移單元403,具體用于根據(jù)所述計算單元401獲取的所述最冷備份數(shù)據(jù)塊的位置信息以及所述最冷數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)號,確定所述最冷備份數(shù)據(jù)塊在所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)時,不進(jìn)行遷移;確定所述最冷備份數(shù)據(jù)塊不在所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)時,將所述最冷備份數(shù)據(jù)塊遷移到所述最冷數(shù)據(jù)節(jié)點(diǎn)內(nèi)。
本發(fā)明實施例還提供一種元數(shù)據(jù)節(jié)點(diǎn),如圖5所示,所述元數(shù)據(jù)節(jié)點(diǎn)包括:接收單元501和修改單元502;其中,
所述接收單元501,用于接收調(diào)整裝置發(fā)送的主備標(biāo)識修改請求,所述主備標(biāo)識修改請求中攜帶有將最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,并將最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識的指示;
所述修改單元502,用于根據(jù)所述接收單元501接收到的所述主備標(biāo)識修改請求,將所述最冷數(shù)據(jù)節(jié)點(diǎn)中的備份數(shù)據(jù)塊的位置信息設(shè)置為主標(biāo)識,將所述最熱數(shù)據(jù)節(jié)點(diǎn)中的最熱數(shù)據(jù)塊的位置信息由原有的主標(biāo)識修改為備用標(biāo)識。
在實際應(yīng)用中,本實施例中所述的計算單元401、位置獲取單元402、遷移單元403、發(fā)送單元404可以由調(diào)整裝置上的中央處理器(CPU)、微處理器(MPU)、數(shù)字信號處理器(DSP)或現(xiàn)場可編程門陣列(FPGA)、調(diào)制解調(diào)器等器件實現(xiàn)等器件實現(xiàn);本實施例中所述的接收單元501、修改單元502可以由元數(shù)據(jù)節(jié)點(diǎn)上的中央處理器(CPU)、微處理器(MPU)、數(shù)字信號處理器(DSP)或現(xiàn)場可編程門陣列(FPGA)、調(diào)制解調(diào)器等器件實現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實施例、軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲 器等)上實施的計算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍。