System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种不同对象存储集群之间同步元数据的方法和系统技术方案_技高网

一种不同对象存储集群之间同步元数据的方法和系统技术方案

技术编号:41012901 阅读:9 留言:0更新日期:2024-04-18 21:49
本发明专利技术公开了一种不同对象存储集群之间同步元数据的方法和系统,其涉及新兴信息技术技术领域,旨在解决元数据同步是一个需要时间的过程,在该过程中,源端集群中的对象还在不断地进行增删,对象的元数据也还在不断变化,如何将这些变化实时进行同步是一个着重需要解决的问题,其技术方案要点是一种不同对象存储集群之间同步元数据的方法和系统,包括主系统,所述主系统包括任务管理模块、全量元数据迁移模块和事件通知同步模块;不同对象存储集群之间同步元数据的方法如下:(1)创建并监听事件通知;(2)进行全量元数据同步;(3)消费事件通知;(4)根据事件通知同步元数据变化。达到了元数据同步无误差的效果。

【技术实现步骤摘要】

本专利技术涉及新兴信息技术,尤其是涉及一种不同对象存储集群之间同步元数据的方法和系统


技术介绍

1、分布式对象存储应用非常广泛,具有数据实时存取的优势,但是分布式存储面临一个问题,就是一些比较老旧的存储资源集群可能已经使用时间较长,整体容量已经较满,并且因为硬件、环境等原因无法进行物理上的容量扩展,或者进行物理扩展的成本较高;

2、这时候可以使用纳管的方式将其纳入另外一个本地或者异地的其他新集群进行管理,将流量切换到新集群,新写入的数据可以直接写到新集群,从而使源端存储集群的使用率不再继续上升,读取数据时新集群可以根据特定管理机制依据对象元数据中的存储位置等信息定位数据,判断去老集群还是去新集群获取该数据。

3、上述中的现有技术方案存在以下缺陷:但是这种方式有一个前提条件,那就是新集群必须拥有存在老集群中所有对象的元数据,元数据是对象存储中描述一个对象属性的信息记录,记录了对象的大小,修改时间,存储位置等重要信息,只有拥有了对象的元数据才能对对象进行管理,元数据同步是一个需要时间的过程,在该过程中,源端集群中的对象还在不断地进行增删,对象的元数据也还在不断变化,如何将这些变化实时进行同步是一个着重需要解决的问题。


技术实现思路

1、本专利技术的目的是提供一种自动化地将源端存储集群的元数据全量同步到目的端存储集群的不同对象存储集群之间同步元数据的方法和系统。

2、为实现上述目的,本专利技术提供了如下技术方案:

3、一种不同对象存储集群之间同步元数据的方法和系统,包括主系统,所述主系统包括任务管理模块、全量元数据迁移模块和事件通知同步模块;

4、不同对象存储集群之间同步元数据的方法如下:

5、s1:先打通两地存储集群之间部分主机的网络,互相开放白名单,确保源端集群与目的端集群能互通;

6、s2:下发元数据迁移任务,单个任务以桶为单位,任务管理模块首先会根据特定的协议发送请求给源端集群上部署的事件通知模块,事件通知模块收到请求后开启指定桶的事件通知,事件通知开启后,针对该桶中对象进行的所有操作都会以事件的形式写入消息队列,任务管理模块收到开启成功的返回信息后,将其反馈给事件通知同步模块,事件通知同步模块便开始持续监听对应桶的消息队列,但是此时暂时不从消息队列中读取事件进行处理,任何没有开启元数据同步任务或者开启任务后进行了停止操作的桶都会被标记为absence状态,表明该桶的元数据同步任务没有开启;

7、s3:成功连接并开始监听事件通知后,任务管理模块通知全量元数据迁移模块开始对桶进行全量对象元数据获取操作,首先通过全量list操作获取当前桶中所有对象的对象名,之后根据拿到的对象名通过特定接口获取该对象的全部元数据,将其批量写入目的端集群,整个全量迁移过程中桶被标记为migrate状态;

8、s4:全量对象元数据迁移过程结束之后,对应桶的状态由migrate转变为sync,事件通知同步模块开始消费并处理积压在消息队列中的该桶的事件通知,事件内容包括了事件的类型、发生时间、相关对象名的详细信息,根据事件的类型,处理相应对象的元数据,并更新到目的端集群;

9、s5:等待事件通知同步模块不断消费消息队列中桶的事件通知,直到消费到的事件的时间与当前时间差距小于一定的阈值,则认为事件的消费追赶上了事件的产生,桶将进入balance状态,该状态下仍然会继续消费消息队列中的事件,此时事件的产生和消费进入了一种动态平衡状态;

10、s6:桶进入balance状态后,除了持续地进行元数据同步之外,还会去矫正在之前过程中迁移出现问题的对象的元数据;

11、s7:当待迁移的所有桶的事件的产生与消费进入一种动态平衡之后,将源端集群的流量切到目的端集群,之后再等待较短的时间等元数据同步模块完全消费完消息队列中积压的事件通知之后,便可以终止整个元数据同步流程。

12、进一步地,所述任务管理模块负责元数据同步任务的管理和下发,任务以桶为单位,并对元数据迁移过程中产生的各种信息进行记录。

13、进一步地,所述全量元数据迁移模块负责从源端存储集群指定的桶中获取当前所有对象的完整元数据,并且将其同步到目的端集群。

14、进一步地,所述事件通知同步模块负责消费并处理以迁移任务开启为起始时间点对应桶产生的事件通知,将迁移过程中对源端桶内对象进行操作而导致的元数据变化情况同步到目的端集群。

15、进一步地,所述s3中监听事件类型分为两类,且两类监听事件类型分别为创建类型和删除类型。

16、进一步地,所述创建类型包括对象的普通上传和分片上传,这类事件主要是put和post操作产生的,获取到该类事件后,事件通知同步模块首先会查询目的端集群中该对象的相关元数据,如果查询不到或者查询到的元数据中显示的修改时间早于该事件的时间,那么事件通知同步模块会根据事件中的对象名去调用特定接口获取该对象的全部元数据,并写入目的端集群,此时如果目的端集群已经存在该对象的元数据,那么则更新覆盖。

17、进一步地,所述删除类型主要是各类删除请求产生的,获取到该类事件后,事件通知同步模块首先会查询目的端集群中该对象的相关元数据。

18、进一步地,所述删除类型除非出现对象元数据已经存在目的端集群中并且元数据显示最后修改时间晚于该事件的时间,否则同步模块会将目的端集群中对应对象的元数据删除。

19、进一步地,所述s1-s7过程中如果同步进程出现了问题,那么任务会进入错误状态,此时桶被标记为error状态,此时任务管理模块会定时自动执行恢复操作去重新去从断点重试该任务,直到重试成功,此时任务会重新回到出错之前的状态。

20、进一步地,所述s1-s7过程中通过状态转移机制,模块做到错误的自动处理与重试,且在整个流程中随时进行停止操作中断整个任务,进入absence状态,并且清除掉已经同步过去的元数据,在任务已经进入到sync状态后随时进行暂停操作使同步任务进入paused状态,并且随时进行恢复操作,从之前读取到的消息队列中的位置继续消费事件通知,任务进入balance状态后,执行完成操作结束同步任务。

21、综上所述,本专利技术的有益技术效果为:

22、1、本专利技术引入事件通知,不仅能够将元数据全量同步到目的端,还能利用消息队列中的事件通知实现对元数据的动态同步,将迁移时间内源端元数据的变化体现到目的端;

23、2、本专利技术引入自动矫正机制,能够自动矫正同步过程中出错的元数据,无需额外的人为矫正,做到元数据同步无误差;

24、3、本专利技术使用状态转移机制,整个任务进行过程中每个状态都对应特定的操作,环环相扣,做到元数据同步过程的高度自动化,并且能随时控制,提供灵活可靠的同步任务控制体系。

本文档来自技高网...

【技术保护点】

1.一种不同对象存储集群之间同步元数据的方法和系统,包括主系统,其特征在于:所述主系统包括任务管理模块、全量元数据迁移模块和事件通知同步模块;

2.根据权利要求1所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述任务管理模块负责元数据同步任务的管理和下发,任务以桶为单位,并对元数据迁移过程中产生的各种信息进行记录。

3.根据权利要求2所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述全量元数据迁移模块负责从源端存储集群指定的桶中获取当前所有对象的完整元数据,并且将其同步到目的端集群。

4.根据权利要求3所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述事件通知同步模块负责消费并处理以迁移任务开启为起始时间点对应桶产生的事件通知,将迁移过程中对源端桶内对象进行操作而导致的元数据变化情况同步到目的端集群。

5.根据权利要求4所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述S3中监听事件类型分为两类,且两类监听事件类型分别为创建类型和删除类型。

6.根据权利要求5所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述创建类型包括对象的普通上传和分片上传,这类事件主要是PUT和POST操作产生的,获取到该类事件后,事件通知同步模块首先会查询目的端集群中该对象的相关元数据,如果查询不到或者查询到的元数据中显示的修改时间早于该事件的时间,那么事件通知同步模块会根据事件中的对象名去调用特定接口获取该对象的全部元数据,并写入目的端集群,此时如果目的端集群已经存在该对象的元数据,那么则更新覆盖。

7.根据权利要求6所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述删除类型主要是各类删除请求产生的,获取到该类事件后,事件通知同步模块首先会查询目的端集群中该对象的相关元数据。

8.根据权利要求7所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述删除类型除非出现对象元数据已经存在目的端集群中并且元数据显示最后修改时间晚于该事件的时间,否则同步模块会将目的端集群中对应对象的元数据删除。

9.根据权利要求8所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述S1-S7过程中如果同步进程出现了问题,那么任务会进入错误状态,此时桶被标记为Error状态,此时任务管理模块会定时自动执行恢复操作去重新去从断点重试该任务,直到重试成功,此时任务会重新回到出错之前的状态。

10.根据权利要求9所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述S1-S7过程中通过状态转移机制,模块做到错误的自动处理与重试,且在整个流程中随时进行停止操作中断整个任务,进入Absence状态,并且清除掉已经同步过去的元数据,在任务已经进入到Sync状态后随时进行暂停操作使同步任务进入Paused状态,并且随时进行恢复操作,从之前读取到的消息队列中的位置继续消费事件通知,任务进入Balance状态后,执行完成操作结束同步任务。

...

【技术特征摘要】

1.一种不同对象存储集群之间同步元数据的方法和系统,包括主系统,其特征在于:所述主系统包括任务管理模块、全量元数据迁移模块和事件通知同步模块;

2.根据权利要求1所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述任务管理模块负责元数据同步任务的管理和下发,任务以桶为单位,并对元数据迁移过程中产生的各种信息进行记录。

3.根据权利要求2所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述全量元数据迁移模块负责从源端存储集群指定的桶中获取当前所有对象的完整元数据,并且将其同步到目的端集群。

4.根据权利要求3所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述事件通知同步模块负责消费并处理以迁移任务开启为起始时间点对应桶产生的事件通知,将迁移过程中对源端桶内对象进行操作而导致的元数据变化情况同步到目的端集群。

5.根据权利要求4所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述s3中监听事件类型分为两类,且两类监听事件类型分别为创建类型和删除类型。

6.根据权利要求5所述的一种不同对象存储集群之间同步元数据的方法和系统,其特征在于:所述创建类型包括对象的普通上传和分片上传,这类事件主要是put和post操作产生的,获取到该类事件后,事件通知同步模块首先会查询目的端集群中该对象的相关元数据,如果查询不到或者查询到的元数据中显示的修改时间早于该事件的时间,那么事件通知同步模块会根据事件中的对象名去调...

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

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

1