[發(fā)明專利]一種容量獲取方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 201310659397.0 | 申請日: | 2011-12-27 |
| 公開(公告)號: | CN103678563A | 公開(公告)日: | 2014-03-26 |
| 發(fā)明(設(shè)計)人: | 趙健博;洪亮 | 申請(專利權(quán))人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F3/06 |
| 代理公司: | 北京潤澤恒知識產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 蘇培華 |
| 地址: | 100088 北京市西城區(qū)新*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 容量 獲取 方法 系統(tǒng) | ||
本發(fā)明專利申請是申請日為2011年12月27日、申請?zhí)枮?01110444072.1、名稱為“分布式文件系統(tǒng)中的容量獲取方法及容量獲取系統(tǒng)”的中國發(fā)明專利申請的分案申請。
技術(shù)領(lǐng)域
本申請涉及計算機存儲技術(shù),特別是涉及一種容量獲取方法及系統(tǒng)。
背景技術(shù)
HDFS(Hadoop?Distributed?File?System)是一個分布式文件系統(tǒng),有著高容錯性的特點,并且提供高吞吐量來訪問應(yīng)用程序的數(shù)據(jù),適合有著超大數(shù)據(jù)集的應(yīng)用程序,可以解決海量數(shù)據(jù)存儲的問題。
HDFS的主節(jié)點(NameNode)通過與存儲節(jié)點(DataNode)進行周期性的心跳通信,來獲取各個存儲節(jié)點的容量信息,進而獲取整個集群的容量信息。而每一個存儲節(jié)點包含多個磁盤,因此存儲節(jié)點采用du命令方式獲取每一個磁盤的空間占用量,進而獲取本地的空間占用量。
du命令方式獲取每一個磁盤的空間占用量的具體做法是,循環(huán)遍歷存儲節(jié)點包含的每一個磁盤,并對于每一個磁盤執(zhí)行如下操作:從磁盤存儲數(shù)據(jù)的根目錄(例如,參數(shù)dfs.data.dir配置的目錄)開始,以此根目錄為根節(jié)點按照深度優(yōu)先的方式遍歷這個目錄樹。若遇到中間節(jié)點,即該節(jié)點對應(yīng)是子目錄,則繼續(xù)遍歷子目錄,直到遇到葉子節(jié)點,即該節(jié)點對應(yīng)的是文件,則獲取對應(yīng)的文件元數(shù)據(jù),從文件元數(shù)據(jù)中獲取文件的大小信息。然后將某個中間節(jié)點對應(yīng)的所有葉子節(jié)點文件的大小信息累加求和后作為給中間節(jié)點對應(yīng)子目錄的大小。然后逐層累加直到所述目錄樹遍歷完成,獲取了整個目錄樹中所有文件的空間占用量,即獲得到了該磁盤的空間占用量,然后返回給du命令。
上述的過程中需要掃描磁盤中的所有文件,因此通常會產(chǎn)生大量的IO(Input/Output,輸入/輸出)消耗,此過程導(dǎo)致磁盤利用率飽和,即磁盤利用率達到了100%,這對系統(tǒng)造成了很大的負擔,甚至在某些情況下會影響HDFS的性能。
發(fā)明內(nèi)容
本申請?zhí)峁┝艘环N容量獲取方法及系統(tǒng),以解決獲取容量中IO消耗過大對系統(tǒng)造成負擔的問題。
為了解決上述問題,本申請公開了一種容量獲取方法,包括:
向磁盤的文件系統(tǒng)發(fā)送調(diào)用磁盤元數(shù)據(jù)的請求;
接收返回的磁盤元數(shù)據(jù),所述磁盤元數(shù)據(jù)包括磁盤中存儲塊的總量和存儲塊的空閑量;
通過對所述磁盤中存儲塊的總量和存儲塊的空閑量的計算,獲得磁盤的容量信息。
優(yōu)選的,所述容量信息包括空間總量、空間剩余量和空間占用量。
優(yōu)選的,每個存儲塊的容量是固定的,所述通過對所述磁盤中存儲塊的總量和存儲塊的空閑量的計算,獲得磁盤的容量信息,包括:
將所述存儲塊的容量與所述磁盤中存儲塊的總量相乘,計算結(jié)果作為磁盤的空間總量;
將所述存儲塊的容量與所述磁盤中存儲塊的空閑量相乘,計算結(jié)果作為磁盤的空間剩余量。
優(yōu)選的,將磁盤的空間總量減去磁盤的空間剩余量,計算結(jié)果磁盤的空間占用量。
優(yōu)選的,獲得磁盤的容量信息之后,還包括:
將磁盤的容量信息返回給df命令。
優(yōu)選的,存儲節(jié)點調(diào)用df命令以獲取每個磁盤的容量信息,并將所有磁盤的容量信息相加的和作為該存儲節(jié)點的容量信息。
優(yōu)選的,類DF用于實現(xiàn)調(diào)用df命令,所述存儲節(jié)點通過執(zhí)行df命令以獲取每個磁盤的空間占用量,包括:
存儲節(jié)點通過調(diào)用FSDataset類的getDfsUsed方法,最終調(diào)用FSVolume類的getDfsUsed方法;
所述FSVolume類的getDfsUsed方法通過類DF實現(xiàn)調(diào)用df命令,以獲取磁盤的容量信息。
優(yōu)選的,存儲節(jié)點周期性的調(diào)用df命令以獲取對應(yīng)的容量信息,并將所述容量信息周期性的傳輸給主節(jié)點。
優(yōu)選的,存儲節(jié)點以各個磁盤的容量信息為基準,在對應(yīng)的磁盤中分配并保存數(shù)據(jù)。
相應(yīng)的,本申請還公開了一種容量獲取系統(tǒng),包括:
發(fā)送請求模塊,用于向磁盤的文件系統(tǒng)發(fā)送調(diào)用磁盤元數(shù)據(jù)的請求;
接收元數(shù)據(jù)模塊,用于接收返回的磁盤元數(shù)據(jù),所述磁盤元數(shù)據(jù)包括磁盤中存儲塊的總量和存儲塊的空閑量;
計算容量模塊,用于通過對所述磁盤中存儲塊的總量和存儲塊的空閑量的計算,獲得磁盤的容量信息。
優(yōu)選的,所述容量信息包括空間總量、空間剩余量和空間占用量。
優(yōu)選的,每個存儲塊的容量是固定的,所述計算容量模塊,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經(jīng)北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310659397.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





