[发明专利]一种基于GlusterFS的文件存储方法及系统在审
申请号: | 202110081513.X | 申请日: | 2021-01-21 |
公开(公告)号: | CN112749136A | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 杨晓婕;刘远;郭镔 | 申请(专利权)人: | 北京明略昭辉科技有限公司 |
主分类号: | G06F16/172 | 分类号: | G06F16/172;G06F16/182;G06F16/13;G06F9/50 |
代理公司: | 成都众恒智合专利代理事务所(普通合伙) 51239 | 代理人: | 刘华平 |
地址: | 100089 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 glusterfs 文件 存储 方法 系统 | ||
本发明提出一种基于GlusterFS的文件存储方法及系统,在计算所得的原始哈希卷的存储空间不足以存储大文件时,选取负载最小的节点来存储该文件,当负载较小的哈希卷仍然不能存储该大文件时,可利用P2P系统的负载均衡策略移动已存储的文件来为该大文件腾出空间,这保证了文件存储的完整性,不但解决了分块存储带来的单点故障问题,而且大大缩短了文件读写所需的时间同时降低了系统协调的复杂性。
技术领域
本发明涉及存储技术领域,具体涉及一种基于GlusterFS的文件存储方法及系统。
背景技术
GlusterFS是一种无元数据的分布式存储方法。这种方法不使用元数据存储每个数据对应的存储位置信息,避免了元数据服务器所带来的单点故障问题,即使一个节点故障,集群仍然可用,其他节点存储的文件不受影响。
虽然GlusterFS的数据分布方法避免了单点故障问题,即使一个节点故障,其他节点的数据也不受影响。但是,在一些情况下,由于文件过大同时根据存储节点的负载状况,需要对文件进行分块,属于同一个大文件的不同文件块可能会存储到不同的节点上。所有文件块合在一起可构成一个完整的文件,但若存储某一个文件块的节点发生故障,那么即使其它的文件块依然可用,但是整个文件也不可用了,这样又会带来单点问题。
发明内容
针对GlusterFS存在的单点故障的问题,本发明提供一种基于GlusterFS的文件存储方法及系统。
本发明解决上述技术问题的技术方案如下:
第一方面,本发明提供一种基于GlusterFS的文件存储方法,包括:
计算待存储文件所在的原始哈希卷,并计算所述原始哈希卷能否完整存储所述文件;
响应于计算得到的所述原始哈希卷不能完整存储所述待存储文件,计算所有的节点的负载情况,选出负载最小的节点,并计算所述负载最小的节点能否完整存储所述待存储文件;
响应于所述负载最小的节点不能完整地存储所述待存储文件,应用P2P系统的负载均衡技术,将所述负载最小的节点中的一部分完整文件移动到其他节点中,并在待移动文件所在的目录的扩展属性中加入指向目的文件夹的链接;
将所述待存储文件存入所述负载最小的节点的对应目录下,并在所述原始哈希卷的对应目录的扩展属性中加入指向所述待存储文件所在文件夹的链接。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述方法还包括:
响应于所述负载最小的节点可以完整地存储所述待存储文件,将待存储文件存储到所述负载最小节点的对应目录下,并在所述原始哈希卷的对应目录的扩展属性中加入指向所述待存储文件所在文件夹的链接。
进一步,所述方法还包括:
响应于计算得到的所述原始哈希卷能完整存储所述待存储文件,将所述待存储文件存储到所述原始哈希卷的对应目录中。
进一步,所述计算待存储文件所在的原始哈希卷,具体包括:
将待存储文件的文件路径及文件名输入Davies-Meyer哈希算法,计算得到哈希值,根据父目录扩展属性中记录的哈希区间划分确定所述待存储文件所在的原始哈希卷。
第二方面,本发明还提供一种基于GlusterFS的文件存储系统,包括:
第一计算模块,用于计算待存储文件所在的原始哈希卷,并计算所述原始哈希卷能否完整存储所述文件;
第二计算模块,用于响应于计算得到的所述原始哈希卷不能完整存储所述待存储文件,计算所有的节点的负载情况,选出负载最小的节点,并计算所述负载最小的节点能否完整存储所述待存储文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明略昭辉科技有限公司,未经北京明略昭辉科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110081513.X/2.html,转载请声明来源钻瓜专利网。