[发明专利]容量获取方法和文件数据分配方法在审
申请号: | 201310659390.9 | 申请日: | 2011-12-27 |
公开(公告)号: | CN103678562A | 公开(公告)日: | 2014-03-26 |
发明(设计)人: | 赵健博;洪亮 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F3/06 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 容量 获取 方法 文件 数据 分配 | ||
本发明专利申请是申请日为2011年12月27日、申请号为201110444072.1、名称为“分布式文件系统中的容量获取方法及容量获取系统”的中国发明专利申请的分案申请。
技术领域
本申请涉及计算机存储技术,特别是涉及一种容量获取方法及系统。
背景技术
HDFS(Hadoop Distributed File System)是一个分布式文件系统,有着高容错性的特点,并且提供高吞吐量来访问应用程序的数据,适合有着超大数据集的应用程序,可以解决海量数据存储的问题。
HDFS的主节点(NameNode)通过与存储节点(DataNode)进行周期性的心跳通信,来获取各个存储节点的容量信息,进而获取整个集群的容量信息。而每一个存储节点包含多个磁盘,因此存储节点采用du命令方式获取每一个磁盘的空间占用量,进而获取本地的空间占用量。
du命令方式获取每一个磁盘的空间占用量的具体做法是,循环遍历存储节点包含的每一个磁盘,并对于每一个磁盘执行如下操作:从磁盘存储数据的根目录(例如,参数dfs.data.dir配置的目录)开始,以此根目录为根节点按照深度优先的方式遍历这个目录树。若遇到中间节点,即该节点对应是子目录,则继续遍历子目录,直到遇到叶子节点,即该节点对应的是文件,则获取对应的文件元数据,从文件元数据中获取文件的大小信息。然后将某个中间节点对应的所有叶子节点文件的大小信息累加求和后作为给中间节点对应子目录的大小。然后逐层累加直到所述目录树遍历完成,获取了整个目录树中所有文件的空间占用量,即获得到了该磁盘的空间占用量,然后返回给du命令。
上述的过程中需要扫描磁盘中的所有文件,因此通常会产生大量的IO(Input/Output,输入/输出)消耗,此过程导致磁盘利用率饱和,即磁盘利用率达到了100%,这对系统造成了很大的负担,甚至在某些情况下会影响HDFS的性能。
发明内容
本申请提供了一种容量获取方法及系统,以解决获取容量中IO消耗过大对系统造成负担的问题。
为了解决上述问题,本申请公开了一种容量获取方法,包括:
向磁盘的文件系统发送调用磁盘元数据的请求;
接收返回的磁盘元数据,所述磁盘元数据包括磁盘中存储块的总量和存储块的空闲量;
通过对所述磁盘中存储块的总量和存储块的空闲量的计算,获得磁盘的容量信息。
优选的,所述容量信息包括空间总量、空间剩余量和空间占用量。
优选的,每个存储块的容量是固定的,所述通过对所述磁盘中存储块的总量和存储块的空闲量的计算,获得磁盘的容量信息,包括:
将所述存储块的容量与所述磁盘中存储块的总量相乘,计算结果作为磁盘的空间总量;
将所述存储块的容量与所述磁盘中存储块的空闲量相乘,计算结果作为磁盘的空间剩余量。
优选的,将磁盘的空间总量减去磁盘的空间剩余量,计算结果磁盘的空间占用量。
优选的,获得磁盘的容量信息之后,还包括:
将磁盘的容量信息返回给df命令。
优选的,存储节点调用df命令以获取每个磁盘的容量信息,并将所有磁盘的容量信息相加的和作为该存储节点的容量信息。
优选的,类DF用于实现调用df命令,所述存储节点通过执行df命令以获取每个磁盘的空间占用量,包括:
存储节点通过调用FSDataset类的getDfsUsed方法,最终调用FSVolume类的getDfsUsed方法;
所述FSVolume类的getDfsUsed方法通过类DF实现调用df命令,以获取磁盘的容量信息。
优选的,存储节点周期性的调用df命令以获取对应的容量信息,并将所述容量信息周期性的传输给主节点。
优选的,存储节点以各个磁盘的容量信息为基准,在对应的磁盘中分配并保存数据。
相应的,本申请还公开了一种容量获取系统,包括:
发送请求模块,用于向磁盘的文件系统发送调用磁盘元数据的请求;
接收元数据模块,用于接收返回的磁盘元数据,所述磁盘元数据包括磁盘中存储块的总量和存储块的空闲量;
计算容量模块,用于通过对所述磁盘中存储块的总量和存储块的空闲量的计算,获得磁盘的容量信息。
优选的,所述容量信息包括空间总量、空间剩余量和空间占用量。
优选的,每个存储块的容量是固定的,所述计算容量模块,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310659390.9/2.html,转载请声明来源钻瓜专利网。