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





