本发明涉及分布式存储的文件传输技术领域,特别涉及一种基于ceph的rbd文件快速传输方法及其系统。
背景技术:
ceph是目前较流行的虚拟化存储架构。在行业中,ceph分布式存储集群使用最好的场景是块存储和文件存储。而ceph的块存储文件(rbd文件)现只支持raw格式(非稀疏文件格式)。因此在存储或传输raw格式文件时,需要消耗更多的网络资源和存储资源。
现有技术中,跨集群的文件传输存在问题有:
1)rbd文件导出到本地文件,再传输文件,最后到异地再导入文件的方式操作繁琐,同时要求本地和异地需要充足的空间存放rbd文件;
2)rbd文件传输是文件流,即实际场景中,文件容量与传输流量是1:1,这使得传输时间,成本都大幅度提高。
技术实现要素:
本发明要解决的技术问题在于,提供一种基于ceph的rbd文件传输方法及其系统,精简了rbd文件传输操作,节省存储空间,并且使得传输时间加快以及降低了rbd文件传输成本。
为解决上述技术问题,本发明提供如下技术方案:一种基于ceph的rbd文件传输方法,包括以下步骤:
s1、本地rbd客户端访问并打开ceph分布式存储平台的rbd文件;
s2、异地rbd客户端新建ceph分布式存储平台的rbd文件,用于存储接收的数据流;
s3、本地rbd客户端和异地rbd客户端建立tcp长连接;
s4、本地rbd客户端读取ceph分布式存储平台的rbd文件,对其进行压缩并传输至异地rbd客户端;
其中,rbd文件是一遍进行压缩然后一边进行传输的,将rbd文件传输至异地rbd客户端过程就会产生rbd文件的数据流;本地rbd客户端通过tcp会话发送数据流到异地rbd客户端;
s5、异地rbd客户端对接收到的rbd文件数据流进行解压缩,并将其写入步骤s2中新建的rbd文件中;
s6、重复步骤s4-s5,直至本地rbd客户端读取完所有ceph分布式存储平台的rbd文件并完全发送至异地rbd客户端,然后本地rbd客户端发送结束标志到异地rbd客户端,异地rbd客户端接收到结束标志后停止写入ceph分布式存储平台的rbd文件。
进一步地,所述步骤s1前还包括步骤s0、本地rbd客户端和异地rbd客户端均连接ceph分布式存储平台。
进一步地,所述步骤s6后还包括步骤s7、本地rbd客户端和异地rbd客户端均关闭与ceph分布式存储平台的连接,本地rbd客户端和异地rbd客户端断开tcp长连接。
进一步地,所述步骤s4中,本地rbd客户端读取ceph分布式存储平台的rbd文件,对其进行lz4压缩并使用xxhash-32进行校验后,再传输至异地rbd客户端;
所述步骤s5中,异地rbd客户端对接收到的rbd文件数据流进行lz4解压缩并使用xxhash-32进行校验后,再将其写入步骤s2中新建的rbd文件中。
本发明另一目的是提供一种基于ceph的rbd文件快速传输系统,包括本地rbd客户端、异地rbd客户端以及ceph分布式存储平台,所述本地rbd客户端、异地rbd客户端均与所述ceph分布式存储平台连接;
所述本地rbd客户端包括访问模块、第一连接模块、压缩传输模块以及结束标志生成模块;
所述异地rbd客户端包括新rbd文件生成模块、第二连接模块、接收解压模块以及结束标志接收模块;
所述第一连接模块用于连接所述ceph分布式存储平台,以及用于连接所述第二连接模块并建立tcp长连接;所述第二连接模块还用于连接所述ceph分布式存储平台;
所述访问模块用于访问并打开所述ceph分布式存储平台的rbd文件,以及还用于读取所述ceph分布式存储平台的rbd文件;
所述新rbd文件生成模块用于新建ceph分布式存储平台的rbd文件;
所述压缩传输模块用于对所述ceph分布式存储平台的rbd文件进行压缩并传输至所述异地rbd客户端;
所述接收解压模块用于对所述压缩传输模块传输过来的rbd文件进行接收及解压缩,并将其写入新rbd文件生成模块新建的rbd文件中;
所述结束标志生成模块用于生成结束标志,并将其发送至所述结束标志接收模块;所述结束标志接收模块接收到结束标志后,命令所述异地rbd客户端停止接收ceph分布式存储平台的rbd文件;所述结束标志生成模块生成结束标志后停止传输ceph分布式存储平台的rbd文件。
采用上述技术方案后,本发明至少具有如下有益效果:本发明在rbd传输期间不占用本地rbd客户端和异地rbd客户端的自身磁盘空间;本发明ceph的块文件可以自动化备份,减少中间步骤;本发明使得rbd数据流提高了传输效率,降低了传输成本。
附图说明
图1为本发明一种基于ceph的rbd文件传输方法的步骤流程图;
图2为本发明一种基于ceph的rbd文件传输系统的框架图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。
实施例1
本发明目的在于实现rbd文件转化为压缩数据流,实现数据快速传输;以及实现一种跨ceph集群的rbd文件备份方式。
由此,本实施例提出一种基于ceph的rbd文件快速传输方法,如图1所示,步骤包括:
s10、本地rbd客户端和异地rbd客户端均连接ceph分布式存储平台。
s11、本地rbd客户端访问并打开ceph分布式存储平台的rbd文件;
s12、异地rbd客户端新建ceph分布式存储平台的rbd文件,用于存储接收的数据流;
s13、本地rbd客户端和异地rbd客户端建立tcp长连接;
s14、本地rbd客户端读取ceph分布式存储平台的rbd文件,对其进行压缩并传输至异地rbd客户端;
本实施例可以优先采用lz4压缩技术对rbd文件进行压缩,然后对rbd文件使用xxhash-32进行校验后,再传输至异地rbd客户端;
其中,rbd文件是一遍进行压缩然后一边进行传输的,将rbd文件传输至异地rbd客户端过程就会产生rbd文件的数据流;即可以将每一个rbd文件分成若干个小块分流传输给异地rbd客户端,压缩和传输是同时进行的;传输过程中rbd文件会被分为若干个1m的小块,实现一边进行压缩,同时一边进行传输。
由于本地rbd客户端和异地rbd客户端建立的是tcp长连接,因此,本地rbd客户端通过tcp会话发送数据流到异地rbd客户端;
s15、异地rbd客户端对接收到的rbd文件数据流进行解压缩,并将其写入步骤s12中新建的rbd文件中;步骤s14中,若rbd文件数据流是通过lz4压缩并使用xxhash-32进行校验的话,那么,此时异地rbd客户端也需要对rbd文件数据流通过lz4解压缩并使用xxhash-32进行校验;
s16、重复步骤s14-s15,直至本地rbd客户端读取完所有ceph分布式存储平台的rbd文件并完全发送至异地rbd客户端,然后本地rbd客户端发送结束标志到异地rbd客户端,异地rbd客户端接收到结束标志后停止写入ceph分布式存储平台的rbd文件;
s17、本地rbd客户端和异地rbd客户端均关闭与ceph分布式存储平台的连接,本地rbd客户端和异地rbd客户端断开tcp长连接。
实施例2
本实施例是在实施例1的方法基础上公开一种基于ceph的rbd文件快速传输系统,如图2所示,包括本地rbd客户端、异地rbd客户端以及ceph分布式存储平台,所述本地rbd客户端、异地rbd客户端均与所述ceph分布式存储平台连接;
所述本地rbd客户端包括访问模块、第一连接模块、压缩传输模块以及结束标志生成模块;
所述异地rbd客户端包括新rbd文件生成模块、第二连接模块、接收解压模块以及结束标志接收模块;
所述第一连接模块用于连接所述ceph分布式存储平台,以及用于连接所述第二连接模块并建立tcp长连接;所述第二连接模块还用于连接所述ceph分布式存储平台;
所述访问模块用于访问并打开所述ceph分布式存储平台的rbd文件,以及还用于读取所述ceph分布式存储平台的rbd文件;
所述新rbd文件生成模块用于新建ceph分布式存储平台的rbd文件;
所述压缩传输模块用于对所述ceph分布式存储平台的rbd文件进行压缩并传输至所述异地rbd客户端;
所述接收解压模块用于对所述压缩传输模块传输过来的rbd文件进行接收及解压缩,并将其写入新rbd文件生成模块新建的rbd文件中;
所述结束标志生成模块用于生成结束标志,并将其发送至所述结束标志接收模块;所述结束标志接收模块接收到结束标志后,命令所述异地rbd客户端停止接收ceph分布式存储平台的rbd文件;所述结束标志生成模块生成结束标志后停止传输ceph分布式存储平台的rbd文件。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。