首页> 中国专利> 一种基于IPFS的分布式存储网络构建方法及分布式存储网络

一种基于IPFS的分布式存储网络构建方法及分布式存储网络

摘要

本申请实施例公开了一种基于IPFS的分布式存储网络构建方法及分布式存储网络。用以解决现有的分布式存储系统磁盘利用率低、文件安全性低的问题。方法包括:NAS服务器将星际文件系统IPFS安装文件以及部署脚本发送至待部署节点;其中,所述待部署节点为当前IPFS局域网中的用户终端;所述待部署节点基于所述IPFS安装包,自动安装IPFS客户端;所述待部署节点基于所述部署脚本,设置所述待部署节点的共享存储路径;所述NAS服务器基于所述待部署节点对应的USB KEY中的密钥,验证所述待部署节点的身份;若所述待部署节点的身份合法,则将所述待部署节点确定为IPFS节点,并启动所述IPFS节点。本申请共享用户终端的存储空间,安全性极高、兼容性好、速度快、使用简便。

著录项

  • 公开/公告号CN113835642A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 浪潮卓数大数据产业发展有限公司;

    申请/专利号CN202111149668.9

  • 申请日2021-09-29

  • 分类号G06F3/06(20060101);G06F21/78(20130101);

  • 代理机构11716 北京君慧知识产权代理事务所(普通合伙);

  • 代理人吴绍群

  • 地址 214002 江苏省无锡市无锡经济开发区金融一街15号1101、1102、1103、1104、1105、1106、1107、1108

  • 入库时间 2023-06-19 13:49:36

说明书

技术领域

本申请涉及计算机技术领域,尤其涉及一种基于IPFS的存储网络构建方法及装置。

背景技术

随着社会管理智能化的推进,数据存储需求日益增多,而存储区域网络(StorageArea Network,SAN)系统和网络附加存储(Network Attached Storage,NAS)系统是长期存储和保护数据的较好选择。这两种系统目前已经广泛应用于社区、小型企业、小区与多人口家庭中,为其提供了专业可靠的冷热数据存储解决方案。

但是SAN系统与NAS系统对磁盘阵列(Redundant Arrays of Independent Disks,RAID)的依赖性都比较高,而RAID系统对磁盘的利用率比较低,这就导致了SAN系统与NAS系统的磁盘利用率较低,进而导致存储所需的成本增高。且SAN系统与NAS系统多节点之间的通讯不对用户身份进行认证,存在安全隐患,不能保证文件存储的安全性。

发明内容

本申请实施例提供了一种基于IPFS的存储网络构建方法及装置,用于解决如下技术问题:现有的分布式存储系统磁盘利用率低、文件安全性低。

本申请实施例采用下述技术方案:

一方面,本申请实施例提供了一种基于IPFS的分布式存储网络构建方法,方法包括:NAS服务器将星际文件系统IPFS安装文件以及部署脚本发送至待部署节点;其中,所述待部署节点为需要加入分布式存储网络中的用户终端;所述待部署节点基于所述IPFS安装文件,自动安装IPFS客户端;所述待部署节点基于所述部署脚本,设置所述待部署节点的共享存储路径;所述NAS服务器基于所述待部署节点对应的USB KEY中的密钥,验证所述待部署节点的身份;若所述待部署节点的身份合法,则将所述待部署节点确定为IPFS节点,并启动所述IPFS节点。

在一种可行的实施方式中,所述待部署节点基于所述部署脚本,设置所述待部署节点的共享存储路径,具体包括:所述待部署节点读取所述部署脚本中的存储共享路径名,并将所述存储共享路径名对应的路径设为所述待部署节点的存储共享路径;若所述待部署节点中不存在所述存储共享路径名对应的路径,则根据所述存储共享路径名,创建所述存储共享路径。

在一种可行的实施方式中,所述NAS服务器基于所述待部署节点对应的USB KEY中的密钥,验证所述待部署节点的身份,具体包括:所述待部署节点向所述NAS服务器发送验证请求;所述NAS服务器基于所述验证请求,向所述USB KEY回传一个随机数;所述NAS服务器通过单向散列算法RSA,将所述随机数与预存的第一密钥进行运算,得到第一RSA运算结果;所述USB KEY通过单向散列算法RSA,将所述随机数与预存的第二密钥进行运算,得到对应的第二RSA运算结果;并将所述第二RSA运算结果回传到所述NAS服务器;所述NAS服务器基于所述第一RSA运算结果与所述第二RSA运算结果,判断所述待部署节点的身份是否合法。

在一种可行的实施方式中,所述NAS服务器基于所述第一RSA运算结果与所述第二RSA运算结果,判断所述待部署节点的身份是否合法,具体包括:所述NAS服务器将所述第一RSA运算结果与所述第二RSA运算结果进行对比;若所述第一RSA运算结果与所述第二RSA运算结果相同,则所述NAS服务器确定所述待部署节点的身份合法;若所述第一RSA运算结果与所述第二RSA运算结果不同,则所述NAS服务器确定所述待部署节点的身份不合法。

在一种可行的实施方式中,在将所述待部署节点确定为IPFS节点,并启动所述IPFS节点之后,所述方法还包括:所述NAS服务器将确定的第一个IPFS节点设为bootstrap节点,并将所述bootstrap节点加入IPFS局域网;所述NAS服务器将启动的第二个及后续的待部署节点作为IPFS节点加入所述IPFS局域网,与所述bootstrap节点共同构成分布式存储网络。

在一种可行的实施方式中,在所述NAS服务器将启动的第二个及后续的待部署节点作为IPFS节点加入所述IPFS局域网,与所述bootstrap节点共同构成分布式存储网络之后,所述方法还包括:所述文件服务模块通过默克尔树算法封装所述分布式存储网络的上传接口和下载接口,以对所述文件服务模块上传或下载的数据进行校验;若任一用户终端向所述分布式存储网络发出上传文件请求,文件服务模块基于所述上传文件请求,调用所述分布式存储网络的上传接口;其中,每个用户终端也是一个IPFS节点;所述文件服务模块将所述用户终端上传的原始文件分为若干预设大小的数据块,并将所述数据块通过所述上传接口,分别上传到所述分布式存储网络的若干IPFS节点。

在一种可行的实施方式中,将所述数据块分别上传到所述分布式存储网络的若干IPFS节点之后,所述方法还包括:接收到所述数据块的IPFS节点基于预设哈希函数,计算所述数据块的哈希值,并将所述哈希值发送到所述文件服务模块;所述文件服务模块将接收到的若干哈希值存储在所述用户终端对应的分布式哈希表中。

在一种可行的实施方式中,所述文件服务模块将接收到的若干哈希值存储在所述用户终端对应的分布式哈希表中之后,所述方法还包括:所述用户终端向所述文件服务模块发送下载文件请求;所述文件服务模块根据所述下载文件请求,在所述分布式哈希表中查找每个数据块所在的IPFS节点;并调用所述分布式存储网络的下载接口,在对应的IPFS节点中获取所述数据块,并对下载的数据进行完整性校验;将获取的所述数据块拼接为所述原始文件,发送到所述用户终端。

另一方面,本申请实施例还提供了一种基于IPFS的分布式存储网络,包括:NAS服务器,用于将IPFS安装文件以及部署脚本发送至待部署节点;以及基于所述待部署节点对应的USB KEY中的密钥,验证所述待部署节点的身份;若干IPFS节点,用于存储文件;其中,所述IPFS节点也是一个用户终端。

在一种可行的实施方式中,所述分布式存储网络还包括:文件服务模块,用于基于用户终端的上传文件请求,调用分布式存储网络的上传接口;以及,将所述用户终端上传的文件分为若干预设大小的数据块,并将所述数据块分别上传到若干IPFS节点;将若干IPFS节点回传的若干哈希值存储在所述用户终端的分布式哈希表中;所述文件服务模块还用于,根据用户终端的下载文件请求,在所述分布式哈希表中查找对应的IPFS节点,并调用所述分布式存储网络的下载接口,在对应的IPFS节点中获取所述数据块,并对下载的数据进行完整性校验;将获取的所述数据块拼接为原始文件,发送到所述用户终端。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

1.使用USB KEY外设做节点互信工具,预存在USB KEY中的密钥不可被读取,理论上发生伪造的概率大约为2的80次方分之一,安全性极高、兼容性好、速度快、使用简便。

2.充分使用了IPFS网络的特性,安全构建局域网络,提升各节点的磁盘使用率。

3.有效降低了NAS的使用成本,在NAS服务器磁盘的基础上,共享用户终端的存储空间,将用户终端作为IPFS节点加入存储网络中,提升了存储空间的延展性。

4.文件服务模块能够支撑大并发场景,使大文件可以分片传输,充分占满网络带宽,提高节点之间的文件传输效率。

5.由NAS服务器向各节点发送统一的安装包和部署脚本,各节点自动安装IPFS客户端以及自动运行部署脚本,极大的降低部署IPFS局域网络的成本。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本申请实施例提供的一种基于IPFS的分布式存储网络构建方法流程图;

图2为本申请实施例提供的一种基于IPFS的分布式存储网络示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本申请实施例提供了一种基于IPFS的分布式存储网络构建方法,如图1所示,基于IPFS的分布式存储网络构建方法具体包括步骤S101-S106:

S101、NAS服务器将IPFS安装文件以及部署脚本发送至待部署节点。

具体地,首先在一台NAS服务器上部署IPFS服务与文件服务,并预存一个密钥,用于后续的节点身份验证。将部署好的这台NAS服务器用作分布式存储网络的主节点。

进一步地,通过NAS服务器将IPFS安装文件解压后,与部署脚本一起打包发送至各待部署节点中。其中,部署脚本为shell脚本,待部署节点为需要构建在分布式存储网络中的用户终端。

例如,需要将用户终端1、2、3、4构建在分布式存储网络中,那么就通过NAS服务器将IPFS安装文件和部署脚本发送到用户终端1、2、3、4。

作为一种可行的实施方式,待部署节点可以是服务器、小型机、个人电脑、微型存储设备等终端,且IPFS环境在Windows系统、各发行版本的minimallinux系统、群晖等厂商根据linux内核自研的操作系统中均可部署。

S102、待部署节点基于IPFS安装文件,自动安装IPFS客户端,基于部署脚本,设置待部署节点的共享存储路径。

具体地,待部署节点接收到NAS服务器发送的IPFS安装文件和部署脚本后,自动通过IPFS安装文件安装IPFS客户端。

进一步地,待部署节点安装完客户端后,读取部署脚本中的存储共享路径名,并将存储共享路径名对应的路径设为待部署节点的存储共享路径。若待部署节点中不存在该存储共享路径名对应的路径,则根据存储共享路径名,创建一个存储共享路径。NAS服务器通过在部署脚本中指定存储共享路径,将各个用户终端中的一部分存储空间设为分布式存储网络的存储空间,从而共享用户的存储空间,提升了NAS存储空间的延展性。

例如,某个用户终端在收到部署脚本后,读出存储共享路径为C:\gongxiang,首先检索自己的C盘是否存在gongxiang这个文件夹,若存在,则将这个文件夹作为共享存储空间,若没有,则自动在C盘新建一个gongxiang文件夹,作为共享存储空间。

需要说明的是,部署脚本中还有其他对于待部署节点环境的部署要求,本申请中不作为重点阐述,在实际应用中可根据实际需求编写部署脚本。

S103、NAS服务器基于待部署节点对应的USB KEY中的密钥,验证待部署节点的身份。

具体地,待部署节点在部署完成后,可以人工向该待部署节点插入USB KEY,USBKEY中预存了与NAS服务器中相同的密钥。

然后待部署节点向NAS服务器发送验证请求,NAS服务器接收到验证请求后,向插在该待部署节点上的USB KEY回传一个随机数。同时,NAS服务器通过RSA算法,将这个随机数与自己预存的密钥(即第一密钥)进行运算,得到第一RSA运算结果。

同时,USB KEY收到这个随机数之后,通过RSA算法,将这个随机数与USB KEY预存的密钥(即第二密钥)进行运算,得到对应的第二RSA运算结果。然后将第二RSA运算结果回传到NAS服务器。

进一步地,NAS服务器基于第一RSA运算结果与第二RSA运算结果,判断待部署节点的身份是否合法。具体为:NAS服务器将第一RSA运算结果与第二RSA运算结果进行对比,若第一RSA运算结果与第二RSA运算结果相同,则确定待部署节点的身份合法;若第一RSA运算结果与第二RSA运算结果不同,则确定待部署节点的身份不合法。

S104、若待部署节点的身份合法,则将待部署节点确定为IPFS节点,并启动该IPFS节点。

具体地,若确定了待部署节点的身份合法,则说明该待部署节点是可以信任的节点,因此将该待部署节点作为IPFS节点进行启动。

若待部署节点的身份不合法,则不启动该待部署节点。

S105、NAS服务器将确定的第一个IPFS节点设为bootstrap节点,将第二个及后续启动的待部署节点作为IPFS节点加入IPFS局域网,与bootstrap节点共同构成分布式存储网络。

具体地,NAS服务器将确定的第一个IPFS节点设为bootstrap节点,并将bootstrap节点加入IPFS局域网,将第二个及以后启动的待部署节点作为普通IPFS节点加入IPFS局域网,与bootstrap节点共同构成分布式存储网络。

在一个实施例中,由于第一个启动的IPFS节点为NAS服务器,因此,一般情况下,NAS服务器为分布式存储网络的bootstrap节点。

S106、文件服务模块通过分布式哈希表,在分布式存储网络中进行文件上传和文件下载。

具体地,在NAS服务器中部署文件服务时,通过默克尔树算法封装NAS服务器的上传接口和下载接口,以对上传或下载的数据进行校验。

在分布式存储网络构建成功后,若任一用户终端向分布式存储网络发出上传文件请求,文件服务模块会基于上传文件请求,调用分布式存储网络中NAS服务器的上传接口。

然后文件服务模块将用户终端上传的原始文件分为若干预设大小的数据块,并将数据块通过上传接口,分别上传到分布式存储网络的若干IPFS节点。接收到数据块的IPFS节点基于预设的哈希函数,计算接收到的数据块的哈希值,并将哈希值发送到文件服务模块。

进一步地,文件服务模块将接收到的若干哈希值存储在该用户终端对应的分布式哈希表中。

在一个实施例中,若用户终端1向分布式存储网络发出上传文件请求,那么文件服务模块会将用户终端1上传的文件分为相同或不同大小的4个数据块,然后将每个数据块分别存储到IPFS节点1、2、3、4中,同时,IPFS节点1、2、3、4分别计算接收到的数据块对应的哈希值,然后将计算出的哈希值返回给文件服务模块。文件服务模块则将这些哈希值保存在分布式哈希表中。例如,IPFS节点1计算出的的哈希值为KEY1,IPFS节点2计算出的的哈希值为KEY2,IPFS节点3计算出的的哈希值为KEY3,IPFS节点4计算出的的哈希值为KEY4,那么分布式哈希表中的内容为:

,,,

其中,将每个数据块分别存储到IPFS节点1、2、3、4中,就是将每个数据块分别存储到用户终端1、2、3、4的共享存储路径中。将用户终端作为IPFS节点进行分布式存储,即方便用户的大文件的存储,也充分利用了用户终端的存储空间。

进一步地,在该用户终端向文件服务模块发送下载文件请求时,文件服务模块根据下载文件请求,在分布式哈希表中查找每个数据块所在的IPFS节点,并调用分布式存储网络的下载接口,在对应的IPFS节点中获取对应的数据块。由于下载接口封装了默克尔树算法,因此可以对下载的数据进行完整性校验。

进一步地,文件服务模块将获取的数据块拼接为原始文件,发送到用户终端。

在一个实施例中,若用户终端1向分布式存储网络发出下载文件请求,那么文件服务模块会根据用户终端1的分布式哈希表,依次查找每个数据块所在的IPFS节点,然后在各个IPFS节点中将数据块下载下来,最后再拼接成一个完整的文件。分片存储的好处是当下载的一个数据块出现错误后,不需要再下载全部文件,只需要下载出错的那个数据块即可,大大节省了下载时间。

另外,本申请还提供了一种基于IPFS的分布式存储网络,如图2所示,基于IPFS的分布式存储网络200包括:NAS服务器210、若干IPFS节点220以及文件服务模块230。

其中,NAS服务器210用于将IPFS安装文件以及部署脚本发送至待部署节点,以及基于待部署节点对应的USB KEY中的密钥,验证待部署节点的身份。

若干IPFS节点220包括很多个IPFS节点,例如图2中的IPFS节点1、IPFS节点2等。每个IPFS节点都可以存储文件。且每个IPFS节点也是一个用户终端,如图2所示,用户终端1即为IPFS节点1,用户终端2即为IPFS节点2。需要说明的是,图2中仅列出两个IPFS节点和两个用户终端作为示例,但本申请中的若干IPFS节点不限于两个节点,而是根据实际需求进行构建。

文件服务模块230包括文件分块上传模块231以及文件下载模块232。

文件分块上传模块231用于基于用户终端的上传文件请求,调用分布式存储网络的上传接口。以及,将用户终端上传的文件分为若干预设大小的数据块,并将这些数据块分别上传到若干IPFS节点220中的各个IPFS节点。然后将各个IPFS节点回传的哈希值存储在分布式哈希表中。

文件下载模块232用于根据用户终端的下载文件请求,在分布式哈希表中查找每个数据块所在的IPFS节点,并调用分布式存储网络的下载接口,在对应的IPFS节点中获取数据块,并对下载的数据进行完整性校验;最后将获取的所有数据块拼接为原始文件,发送到用户终端。

本申请通过IPFS构建了一个安全的存储网络,减少了NAS的本地磁盘成本。通过使用USB KEY的方式保证文件传输的安全性。通过本申请提供的分布式存储网络构建方法,可以安全地共享用户的存储空间,让用户的存储空间成为NAS存储的一部分。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请的实施例可以有各种更改和变化。凡在本申请实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号