文件存储方法及系统技术方案

技术编号:36691990 阅读:18 留言:0更新日期:2023-02-27 20:00
本发明专利技术的实施例公开一种文件存储方法及系统。该方法包括:文件存储服务节点接收目标文件,并根据目标文件的文件名确定目标文件是否已存储;若文件存储服务节点确定目标文件是未存储的文件,则将目标文件发送至数据节点;数据节点为目标文件生成文件编号;数据节点将目标文件的文件名和文件编号存储至本地第一索引库,将文件编号和文件存储至本地数据库;数据节点向所述文件存储服务节点发送存储成功信息;文件存储服务节点记录目标文件的文件名,并向索引节点发送目标文件的文件名及数据节点的编号;索引节点将目标文件的文件名及数据节点的编号存储至本地第二索引库。该方法可实现海量文件高性能存储,且易扩容,运维成本低,灵活性高。灵活性高。灵活性高。

【技术实现步骤摘要】
文件存储方法及系统


[0001]本专利技术涉及计算机
,尤其涉及一种文件存储方法及系统。

技术介绍

[0002]互联网时代文件、视频、图片的数量以爆炸式的速度增长,对于如何存储数量骤增的文件是亟需解决的问题。目前,常用开源的分布式文件存储方案对文件进行存储,比如Mi n i o、Ceph等,但这些开源分布式文件存储方案均存在不易扩容,运维成本高,灵活性低的问题。

技术实现思路

[0003]有鉴于此,本专利技术实施例提供一种文件存储方法及系统,可实现海量文件高性能存储,且易扩容,运维成本低,灵活性高。
[0004]在第一方面,本专利技术实施例提供一种文件存储方法,该方法应用于文件存储系统,所述文件存储系统包括:文件存储服务节点、数据节点、索引节点,所述方法包括:
[0005]所述文件存储服务节点接收目标文件,并根据所述目标文件的文件名确定所述目标文件是否已存储;
[0006]若所述文件存储服务节点确定所述目标文件是未存储的文件,则将所述目标文件发送至所述数据节点;
[0007]所述数据节点为所述目标文件生成文件编号;
[0008]所述数据节点将所述目标文件的文件名和所述文件编号存储至本地第一索引库,将所述文件编号和所述文件存储至本地数据库;
[0009]所述数据节点向所述文件存储服务节点发送存储成功信息,所述存储成功信息中包括:所述目标文件的文件名及所述数据节点的编号;
[0010]所述文件存储服务节点记录目标文件的文件名,并向所述索引节点发送所述目标文件的文件名及所述数据节点的编号;
[0011]所述索引节点将所述目标文件的文件名及所述数据节点的编号存储至本地第二索引库。
[0012]优选的,所述数据节点为所述目标文件生成文件编号,具体包括:所述数据节点通过自增数字的方式为所述目标文件生成文件编号。
[0013]优选的,所述数据节点将所述目标文件的文件名和所述文件编号存储至本地第一索引库,将所述文件编号和所述文件存储至本地数据库,具体包括:所述数据节点将所述目标文件的文件名和所述文件编号以key

value方式存储至本地第一索引Leveldb库,将所述文件编号和所述目标文件以key

value方式存储至本地数据Leveldb库。
[0014]优选的,所述索引节点将所述目标文件的文件名及所述数据节点的编号存储至本地第二索引库,具体包括:所述索引节点将所述目标文件的文件名及所述数据节点的编号以key

value方式存储至本地第二索引Leveldb库。
[0015]优选的,所述索引节点将所述目标文件的文件名及所述数据节点的编号以key

value方式存储至本地第二索引Leveldb库,具体包括:所述索引节点确定所述目标文件的文件名及所述数据节点的编号对应的key

value,根据所述第二索引Leveldb库的数量对key做哈希运算取模,将所述key

value分散存储至对应数量的第二索引Leveldb库。
[0016]优选的,所述索引节点为索引主节点,所述文件存储系统还包括索引从节点,所述在所述索引节点将所述目标文件的文件名及所述数据节点的编号存储至本地第二索引库之后,所述方法还包括:所述索引主节点将所述目标文件的文件名及所述数据节点的编号通过异步方式发送至索引从节点。
[0017]优选的,所述方法还包括:所述文件存储服务节点接收客户端发送的文件下载请求,所述文件下载请求中携带所述目标文件的文件名;所述文件存储服务节点从所述索引节点获取所述目标文件的文件名对应的数据节点编号;所述文件存储服务节点将所述文件下载请求发送至所述数据节点编号对应的数据节点;所述数据节点从所述第一索引库中查找所述目标文件的文件名对应的文件编号;所述数据节点从所述数据库中查找所述文件编号对应的目标文件;所述数据节点将所述目标文件发送至所述文件存储服务节点;所述文件存储服务节点将所述目标文件发送至所述客户端。
[0018]在第二方面,本专利技术实施例提供一种文件存储系统,该文件存储系统包括:文件存储服务节点、数据节点、索引节点;
[0019]所述文件存储服务节点,用于接收目标文件,并根据所述目标文件的文件名确定所述目标文件是否已存储,若确定所述目标文件是未存储的文件,则将所述目标文件发送至所述数据节点;
[0020]所述数据节点,用于为所述目标文件生成文件编号;
[0021]所述数据节点,还用于将所述目标文件的文件名和所述文件编号存储至本地第一索引库,将所述文件编号和所述文件存储至本地数据库;
[0022]所述数据节点,还用于向所述文件存储服务节点发送存储成功信息,所述存储成功信息中包括:所述目标文件的文件名及所述数据节点的编号;
[0023]所述文件存储服务节点,还用于记录目标文件的文件名,并向所述索引节点发送所述目标文件的文件名及所述数据节点的编号;
[0024]所述索引节点,用于将所述目标文件的文件名及所述数据节点的编号存储至本地第二索引库。
[0025]优选的,所述索引节点为索引主节点,所述文件存储系统还包括索引从节点,所述索引节点还用于:将所述目标文件的文件名及所述数据节点的编号通过异步方式发送至索引从节点。
[0026]优选的,所述文件存储服务节点,还用于接收客户端发送的文件下载请求,所述文件下载请求中携带所述目标文件的文件名;所述文件存储服务节点,还用于从所述索引节点获取所述目标文件的文件名对应的数据节点编号;所述文件存储服务节点,还用于将所述文件下载请求发送至所述数据节点编号对应的数据节点;所述数据节点,还用于从所述第一索引库中查找所述目标文件的文件名对应的文件编号;所述数据节点,还用于从所述数据库中查找所述文件编号对应的目标文件;所述数据节点,还用于将所述目标文件发送至所述文件存储服务节点;所述文件存储服务节点,还用于将所述目标文件发送至所述客
户端。
[0027]本专利技术实施例提供的一种文件存储方法及系统,该文件存储系统包括:文件存储服务节点、数据节点、索引节点。基于该文件存储系统,文件存储服务节点接收目标文件,并根据目标文件的文件名确定目标文件是否已存储;若文件存储服务节点确定目标文件是未存储的文件,则将目标文件发送至数据节点;数据节点为目标文件生成文件编号,并将目标文件的文件名和文件编号存储至本地第一索引库,将文件编号和文件存储至本地数据库;并且,数据节点还向文件存储服务节点发送存储成功信息,文件存储服务节点记录目标文件的文件名,并向索引节点发送目标文件的文件名及该数据节点的编号,之后索引节点将目标文件的文件名及数据节点的编号存储至本地第二索引库。基于此,不仅可以实现海量文件高性能存储,且该文件存储系统易扩容,运维成本低,灵活性高。
附图说明
[0028]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件存储方法,其特征在于,所述方法应用于文件存储系统,所述文件存储系统包括:文件存储服务节点、数据节点、索引节点,所述方法包括:所述文件存储服务节点接收目标文件,并根据所述目标文件的文件名确定所述目标文件是否已存储;若所述文件存储服务节点确定所述目标文件是未存储的文件,则将所述目标文件发送至所述数据节点;所述数据节点为所述目标文件生成文件编号;所述数据节点将所述目标文件的文件名和所述文件编号存储至本地第一索引库,将所述文件编号和所述文件存储至本地数据库;所述数据节点向所述文件存储服务节点发送存储成功信息,所述存储成功信息中包括:所述目标文件的文件名及所述数据节点的编号;所述文件存储服务节点记录目标文件的文件名,并向所述索引节点发送所述目标文件的文件名及所述数据节点的编号;所述索引节点将所述目标文件的文件名及所述数据节点的编号存储至本地第二索引库。2.根据权利要求1所述的方法,其特征在于,所述数据节点为所述目标文件生成文件编号,具体包括:所述数据节点通过自增数字的方式为所述目标文件生成文件编号。3.根据权利要求1所述的方法,其特征在于,所述数据节点将所述目标文件的文件名和所述文件编号存储至本地第一索引库,将所述文件编号和所述文件存储至本地数据库,具体包括:所述数据节点将所述目标文件的文件名和所述文件编号以key

value方式存储至本地第一索引Leveldb库,将所述文件编号和所述目标文件以key

value方式存储至本地数据Leveldb库。4.根据权利要求1所述的方法,其特征在于,所述索引节点将所述目标文件的文件名及所述数据节点的编号存储至本地第二索引库,具体包括:所述索引节点将所述目标文件的文件名及所述数据节点的编号以key

value方式存储至本地第二索引Leveldb库。5.根据权利要求4所述的方法,其特征在于,所述索引节点将所述目标文件的文件名及所述数据节点的编号以key

value方式存储至本地第二索引Leveldb库,具体包括:所述索引节点确定所述目标文件的文件名及所述数据节点的编号对应的key

value,根据所述第二索引Leveldb库的数量对key做哈希运算取模,将所述key

value分散存储至对应数量的第二索引Leveldb库。6.根据权利要求1所述的方法,其特征在于,所述索引节点为索引主节点,所述文件存储系统还包括索引从节点,所述在所述索引节点将所述目标文件的文件名及所述数据节点的编...

【专利技术属性】
技术研发人员:周明波刘新成李石磊肖新光
申请(专利权)人:安天科技集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1