System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种RBD快照高效导出导入文件的方法技术_技高网

一种RBD快照高效导出导入文件的方法技术

技术编号:40912775 阅读:3 留言:0更新日期:2024-04-18 14:40
本发明专利技术公开了一种RBD快照高效导出导入文件的方法,方法包括:首先获取RBD快照导出需求,对所述RBD镜像进行条带化,将RBD镜像的逻辑地址分成若干段,完成逻辑地址偏移及对象号的一一映射;引入object的map表,对RBD镜像对应的每个对象增加快照标识,记录每个偏移地址对应对象的状态;继而获取所述RBD镜像的逻辑地址内所有对象的状态,同时遍历偏移内RBD镜像对应的每个对象的快照标识,读取有变动的对象数据,将所述变动的对象数据进行组合,导出到本地文件系统中。通过object‑map里的object的状态变化,快速比较快照之间的差异,提升了导出速度,同时通过将元数据和实际数据分离导出;在导入时,可快速并行解析元数据文件,读取并向相应逻辑地址写入数据,完成镜像恢复。

【技术实现步骤摘要】

本专利技术属于大规模分布式块存储,特别是一种rbd快照高效导出导入文件的方法。


技术介绍

1、当前rbd(rados block devices)快照导出导入文件的方式是:顺序读取rbd镜像偏移范围内的数据。若是全量导出,则从存储集群中读取每个偏移范围(off len)对应的快照数据,然后将偏移范围的元数据和读取到的数据依次写入到一个文件中。若增量导出,则按序同步比较并读取2个快照之间的差异数据,然后写入到一个文件中。导入方式是:读入导出的快照文件,逐级解析文件中的元数据,并将文件中的数据进行写入。

2、当前存在如下的问题:

3、1、在导出时,需要按序同步比较差异数据,并从存储读取差异数据,该方式导致导出的数据慢。

4、2、快照导出写入到一个文件中,若元镜像文件大,该导出文件比较大,占用的存储空间大,若存储空间不够,会导致导出失败。

5、3、导入时,逐级解析导出快照文件中的元数据、数据,这是串行操作,导入速度慢。


技术实现思路

1、本专利技术的目的是提供一种rbd快照高效导出导入的方法,以解决现有技术中的不足,它通过引入object-map表,通过object-map里的object的状态变化,快速比较快照之间的差异,提升了导出速度,同时通过将元数据和实际数据分离导出,在导入时,可快速并行解析元数据文件,及导入数据。

2、本申请的一个实施例提供了一种rbd快照高效导出导入的方法,所述方法包括:

3、获取rbd快照导出需求,所述rbd快照导出需求为将主集群中rbd镜像的快照数据导出至本地文件系统;

4、对所述rbd镜像进行条带化,将rbd镜像的逻辑地址分成若干段,完成逻辑地址偏移及对象号的一一映射;

5、获取所述rbd镜像的逻辑地址内所有对象的状态,引入object的map表,采用向量位图,对rbd镜像对应的每个对象增加快照标识,记录每个偏移地址对应对象的状态;

6、通过object的map表快速比较快照之间的差异对rbd快照进行导出,同时遍历偏移内的每个所述rbd镜像对应的每个对象的快照标识,读取有变动的对象数据,将所述变动的对象数据进行组合,导出到本地文件系统中,然后通过s3上传到对象存储设备中;

7、获取rbd快照导入需求,所述rbd快照导入需求为将本地文件系统已导出的快照文件导入至rbd镜像;

8、获取rbd镜像和快照标识信息,根据rbd镜像的逻辑偏移地址及对象号的映射元数据,依次或并行从对象存储桶中获取快照的对象文件;

9、根据所述映射元数据信息解析所述组合后的对象数据,按照偏移和快照标识并行读取存储于对象存储中的组合后的对象数据;将解析后的对象数据写入到本地块设备对应的偏移中,最后读取该块设备自有的元数据,并更新块设备信息,完成块设备的恢复。

10、可选的,所述方法还包括:

11、所述rbd快照导出流程类别分为全量导出和增量导出,具体为:

12、若针对某个rbd快照数据全量导出,则遍历rbd镜像对应的快照数据的快照标识,读取有效标识的快照数据,当达到对应的偏移量时,将读取到的有效标识的rbd快照数据通过s3上传到存储集群中;

13、若针对某个rbd快照数据增量导出,则遍历rbd快照数据中2个增量快照的变动信息,只读取有数据变动的rbd快照数据,当达到设定的偏移量时,将读取到的有数据变动的rbd快照数据组合通过s3上传到存储集群中。

14、可选的,所述rbd快照数据包含元数据和实际数据,在所述rbd快照数据导出时将元数据和实际数据分离导出,同时将所述rbd块设备基础信息的元数据及其特性的元数据,通过s3上传到对象存储设备中。

15、可选的,所述rbd镜像对应的每个对象的状态会因对rbd镜像地址的数据操作以及打快照发生转化,所述rbd镜像对应的每个对象共有4种状态,分别是:

16、00:对象不存在;

17、01:对象存在数据;允许被随意修改;

18、10:对象待删除,即内容全部为0;

19、11:对象有数据,打完rbd快照后未发生覆盖写;数据片从上一次rbd快照没有被修改过。

20、可选的,所述rbd快照的导出是获取rbd镜像辑地址内所有对象的状态,循环针对16m空间的每个对象进行处理,在若干rbd镜像偏移内将其对应的多个rbd快照数据导出为小对象,同时将所述小对象通过s3存储到对象存储设备中。

21、可选的,所述小对象由元数据和数据组成,所述小对象的元数据用于在导入时按顺序读取对应的小对象,对小对象数据进行解析,并依次导入,所述小对象依据tag、index、offset、length等信息获取读取顺序找到对应的小对象。

22、可选的,所述rbd快照全量导出根据object state的状态及当前rbd快照和原始镜像之间的异同,对数据进行不同处理,所述rbd块设备映射后的分片objectextent包含读取对象的名字和读取内容在这个对象中的迁移位置。

23、可选的,所述rbd快照增量导出对每一个分片objectextent进行并发读取,其中每次导出都将更新rbd_object_i nfo,所述小对象的i ndex按照rbd镜像逻辑地址的增大依次加1,同时将offset和length写入到里面。

24、本申请的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时实现上述任一项中所述的方法。

25、本申请的又一实施例提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述任一项中所述的方法。

26、与现有技术相比,本专利技术通过object-map可快速比较rbd快照之间的差异,具体的通过遍历偏移内的每个object的快照标识,读取有变动的object数据,达到一定的数据量时,将数据组合,并通过s3上传到对象存储设备中,从而提升了快照的导出速度,在rbd快照导入时,将元数据和实际数据分离导出,可快速并行解析元数据文件,及时导入数据,在rbd快照导出和导入时,并行快速比较快照之间的差异,并读取差异数据,提升了导出和导入的效率,另一方面本专利技术rbd快照导出时不是顺序写入一个文件,而是在一定偏移内将其对应的object导出为小对象,以s3方式存储到对象存储中,不单独占用本地的存储空间。

本文档来自技高网...

【技术保护点】

1.一种RBD快照高效导出导入文件的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种RBD快照高效导出导入文件的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的一种RBD快照高效导出导入文件的方法,其特征在于,所述RBD快照数据包含元数据和实际数据,在所述RBD快照数据导出时将元数据和实际数据分离导出,同时将所述RBD块设备基础信息的元数据及其特性的元数据,通过S3上传到对象存储设备中。

4.根据权利要求3所述的一种RBD快照高效导出导入文件的方法,其特征在于,所述RBD镜像对应的每个对象的状态会因对RBD镜像地址的数据操作以及打快照发生转化,所述RBD镜像对应的每个对象共有4种状态,分别是:

5.根据权利要求4所述的一种RBD快照高效导出导入文件的方法,其特征在于,所述RBD快照的导出是获取RBD镜像辑地址内所有对象的状态,循环针对固定大小逻辑地址空间的每个对象进行处理,在若干RBD镜像偏移内将其对应的多个RBD快照数据导出为小对象,同时将所述小对象通过S3存储到对象存储设备中。

6.根据权利要求5所述的一种RBD快照高效导出导入文件的方法,其特征在于,所述小对象由元数据和数据组成,所述小对象的元数据用于在导入时按顺序读取对应的小对象,对小对象数据进行解析,并依次导入,所述小对象依据Tag、Index、Offset、Length等信息获取读取顺序找到对应的小对象。

7.根据权利要求6所述的一种RBD快照高效导出导入文件的方法,其特征在于,所述RBD快照全量导出根据object state的状态及当前RBD快照和原始镜像之间的异同,对数据进行不同处理,所述RBD块设备映射后的分片objectextent包含读取对象的名字和读取内容在这个对象中的迁移位置。

8.根据权利要求7所述的一种RBD快照高效导出导入文件的方法,其特征在于,所述RBD快照增量导出对每一个分片objectextent进行并发读取,其中每次导出都将更新rbd_object_info,所述小对象的index按照RBD镜像逻辑地址的增大依次加1,同时将Offset和Length写入到里面。

9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时实现所述权利要求1至7任一项中所述的方法。

10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现所述权利要求1至7任一项中所述的方法。

...

【技术特征摘要】

1.一种rbd快照高效导出导入文件的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种rbd快照高效导出导入文件的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的一种rbd快照高效导出导入文件的方法,其特征在于,所述rbd快照数据包含元数据和实际数据,在所述rbd快照数据导出时将元数据和实际数据分离导出,同时将所述rbd块设备基础信息的元数据及其特性的元数据,通过s3上传到对象存储设备中。

4.根据权利要求3所述的一种rbd快照高效导出导入文件的方法,其特征在于,所述rbd镜像对应的每个对象的状态会因对rbd镜像地址的数据操作以及打快照发生转化,所述rbd镜像对应的每个对象共有4种状态,分别是:

5.根据权利要求4所述的一种rbd快照高效导出导入文件的方法,其特征在于,所述rbd快照的导出是获取rbd镜像辑地址内所有对象的状态,循环针对固定大小逻辑地址空间的每个对象进行处理,在若干rbd镜像偏移内将其对应的多个rbd快照数据导出为小对象,同时将所述小对象通过s3存储到对象存储设备中。

6.根据权利要求5所述的一种rbd快照高效导出导入文件的方法,其特征在于,所述小对象由元数据和数据组成,所述小对象的元数据用于在...

【专利技术属性】
技术研发人员:吴文峰肖露
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1