[发明专利]一种分布式文件系统的存储方法及装置有效
申请号: | 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.vipzhuanli.com/pat/books/201310046645.4/2.html,转载请声明来源钻瓜专利网。