[發(fā)明專利]一種分布式文件系統(tǒng)的存儲方法及裝置有效
| 申請?zhí)枺?/td> | 201310046645.4 | 申請日: | 2013-02-05 |
| 公開(公告)號: | CN103152395A | 公開(公告)日: | 2013-06-12 |
| 發(fā)明(設(shè)計)人: | 郭東東;趙彥榮;趙健博;洪亮 | 申請(專利權(quán))人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;G06F17/30 |
| 代理公司: | 北京潤澤恒知識產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 趙娟 |
| 地址: | 100088 北京市西城區(qū)新*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 文件系統(tǒng) 存儲 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種分布式文件系統(tǒng)的存儲方法,以及,一種分布式文件系統(tǒng)的存儲裝置。
背景技術(shù)
隨著信息系統(tǒng)的快速發(fā)展,海量的信息需要可靠存儲的同時,還能被大量的使用者快速地訪問。傳統(tǒng)的存儲方案已經(jīng)從構(gòu)架上越來越難以適應(yīng)近幾年來的信息系統(tǒng)業(yè)務(wù)的飛速發(fā)展,成為了業(yè)務(wù)發(fā)展的瓶頸和障礙。HDFS(Hadoop?Distributed?File?System,Hadoop分布式文件系統(tǒng))通過一個高效的分布式算法,將數(shù)據(jù)的訪問和存儲分布在大量服務(wù)器之中,在可靠地多備份存儲的同時還能將訪問分布在集群中的各個服務(wù)器之上,是傳統(tǒng)存儲構(gòu)架的一個顛覆性的發(fā)展。
HDFS作為Hadoop中的一個分布式文件系統(tǒng),而且是專門為它的MapReduce(一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算)設(shè)計,所以HDFS除了必須滿足自己作為分布式文件系統(tǒng)的高可靠性外,還必須為MapReduce提供高效的讀寫性能,那么HDFS是如何做到這些的呢?首先,HDFS將每一個文件的數(shù)據(jù)進(jìn)行分塊存儲,同時每一個數(shù)據(jù)塊(Block)又保存有多個副本,一般是3副本。每個副本存儲在獨(dú)立的存儲節(jié)點(diǎn)上。這樣,每個文件的內(nèi)容都被存儲在了多個不同存儲節(jié)點(diǎn)(DataNode)上,一旦個別節(jié)點(diǎn)宕機(jī),整個文件的數(shù)據(jù)仍然可以從存儲該文件的其他副本的存儲節(jié)點(diǎn)上獲取。傳統(tǒng)的Block分配策略如下:
第一份副本:如果Writer不是集群內(nèi)節(jié)點(diǎn),則在全局范圍內(nèi)隨機(jī)選擇一個DataNode;如果節(jié)點(diǎn)是集群內(nèi)存節(jié)點(diǎn),優(yōu)先選擇該節(jié)點(diǎn),否則隨機(jī)選擇。
第二份副本:第一存儲節(jié)點(diǎn)所在的不同機(jī)架上,隨機(jī)選擇一個存儲節(jié)點(diǎn);如果選擇失敗,則全局隨機(jī)選擇DataNode。
第三份副本:第二個副本所在存儲節(jié)點(diǎn)所在的機(jī)架上隨機(jī)選擇一個DataNode;第一個副本所在存儲節(jié)點(diǎn)所在的不同機(jī)架上,隨機(jī)選擇一個存儲節(jié)點(diǎn)。
其他副本位置的選擇:全集群范圍內(nèi)隨機(jī)選擇存儲節(jié)點(diǎn)。
然而,上述的Block分配策略只是考慮了數(shù)據(jù)的可靠性方面及數(shù)據(jù)副本節(jié)省網(wǎng)絡(luò)帶寬方面的效果,很難滿足后續(xù)使用Raid技術(shù)實(shí)現(xiàn)文件存儲可靠性的需求。
因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題是:提出一種分布式文件系統(tǒng)的存儲機(jī)制,用以在考慮后續(xù)使用Raid技術(shù)實(shí)現(xiàn)文件存儲可靠性的需求的情況下使得集群中每個節(jié)點(diǎn)的容量更加均衡,提高集群的穩(wěn)定性。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種分布式文件系統(tǒng)的存儲方法,相應(yīng)的一種分布式文件系統(tǒng)的存儲裝置。
依據(jù)本發(fā)明的一個方面,提供了一種分布式文件系統(tǒng)的存儲方法,包括:
接收客戶端發(fā)送的文件信息,所述文件信息包括組成文件的至少一個條帶,所述條帶包括多個數(shù)據(jù)塊;
確定每個數(shù)據(jù)塊的目標(biāo)存儲節(jié)點(diǎn),所述目標(biāo)存儲節(jié)點(diǎn)包括第一存儲節(jié)點(diǎn)、第二存儲節(jié)點(diǎn)、第三存儲節(jié)點(diǎn),其中,所述第一存儲節(jié)點(diǎn)為客戶端所在的存儲節(jié)點(diǎn)或集群內(nèi)隨機(jī)選取的存儲節(jié)點(diǎn);所述第二存儲節(jié)點(diǎn)為所述數(shù)據(jù)塊所在條帶上的其他數(shù)據(jù)塊沒有分配到的存儲節(jié)點(diǎn)或集群內(nèi)隨機(jī)選取的存儲節(jié)點(diǎn);所述第三存儲節(jié)點(diǎn)為在集群內(nèi)隨機(jī)選取的存儲節(jié)點(diǎn);
將所述數(shù)據(jù)塊依次寫入所述第一存儲節(jié)點(diǎn)、第二存儲節(jié)點(diǎn)、第三存儲節(jié)點(diǎn)中。
可選地,所述確定每個數(shù)據(jù)塊的目標(biāo)存儲節(jié)點(diǎn)的步驟包括:
獲取客戶端所在的存儲節(jié)點(diǎn);若所述客戶端所在的存儲節(jié)點(diǎn)為集群內(nèi)的節(jié)點(diǎn),則將所述客戶端所在的存儲節(jié)點(diǎn)作為第一存儲節(jié)點(diǎn);若所述客戶端所在的存儲節(jié)點(diǎn)不為集群內(nèi)的節(jié)點(diǎn),則在集群內(nèi)隨機(jī)選取一個存儲節(jié)點(diǎn)作為第一存儲節(jié)點(diǎn);
獲取條帶中數(shù)據(jù)塊的個數(shù),以及已經(jīng)寫入的各數(shù)據(jù)塊的存儲地址信息;依據(jù)所述條帶中數(shù)據(jù)塊的個數(shù)以及各數(shù)據(jù)塊的存儲地址信息查找集群中所述條帶的數(shù)據(jù)塊沒有分配到的存儲節(jié)點(diǎn)作為候選存儲節(jié)點(diǎn),隨機(jī)選取一個候選存儲節(jié)點(diǎn)作為第二存儲節(jié)點(diǎn);若所述候選存儲節(jié)點(diǎn)的剩余存儲空間小于所述數(shù)據(jù)塊的大小,則在集群內(nèi)隨機(jī)選擇一個存儲節(jié)點(diǎn)作為第二存儲節(jié)點(diǎn);
獲取集群中的各個存儲節(jié)點(diǎn)的剩余存儲空間,依據(jù)所述各個存儲節(jié)點(diǎn)的剩余存儲空間計算各個存儲節(jié)點(diǎn)在集群中的剩余空間百分比,依據(jù)所述各個存儲節(jié)點(diǎn)在集群中的剩余空間百分比在集群內(nèi)隨機(jī)選取一個存儲節(jié)點(diǎn)作為第三存儲節(jié)點(diǎn)。
可選地,所述將數(shù)據(jù)塊依次寫入所述第一存儲節(jié)點(diǎn)、第二存儲節(jié)點(diǎn)、第三存儲節(jié)點(diǎn)中的步驟包括:
將所述目標(biāo)存儲節(jié)點(diǎn)發(fā)送至客戶端;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經(jīng)北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201310046645.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:多功能廚房掛鉤
- 下一篇:一種節(jié)能飲水機(jī)





