一种基于共识算法的云存储多集群管理方法及装置与流程

文档序号:34615793发布日期:2023-06-29 11:09阅读:32来源:国知局
一种基于共识算法的云存储多集群管理方法及装置与流程

本发明涉及分布式存储,具体为一种基于共识算法的云存储多集群管理方法及装置。


背景技术:

1、天翼云存储的云存储服务中,由于划分了许多区域(region),每个区域下又有许多可用区(avai l abi l ity zones)或资源池,这其中势必存在大量大小不一的底层存储集群基础设施,最传统的集群管理方案时每个集群部署一套管控系统。但存在部署麻烦,维护难度高,人力资源浪费程度明显,且使用时非常不便。很容易想到,更进一步的是,使用一套管控系统管理若干个集群,而每个集群内部存在公共资源竞争,通常我们使用互斥锁对程序代码切片成不同的临界区域保护操作的数据。

2、这样的方法在单集群管控系统勉强能用,一但在多集群管控系统中使用,极有可能阻塞其它集群的操作。举个例子来说,管控系统支持修改对象用户的一些配置,以及删除对象用户,程序在这两个流程使用同一个互斥锁进行保护,因为同一个对象用户被修改/删除时不能被其它操作者同时修改或删除等,否则数据将会出错。


技术实现思路

1、针对现有技术的不足,本发明提供了一种基于共识算法的云存储多集群管理方法及装置,解决了天翼云存储管控系统在处理多个集群内部资源竞争问题时,传统办法无法兼顾业务逻辑正确性与良好的使用体验,或者解决办法局限性大的问题,实现了支持无限细分的资源互斥,且不影响无关资源,性能高,没有网络io,没有磁盘io,可靠性高,响应快的效果。

2、为实现以上目的,本发明通过以下技术方案予以实现:一种基于共识算法的云存储多集群管理方法,包括以下步骤:

3、s1、根据raft算法的etcd来实现l eader的选举;

4、s2、构建名称锁,由选举产生的l eader负责,锁的名称对应关系保存在l eader进程的内存里;

5、s3、采用引用计数的方式构建名称锁防内存泄露算法;

6、s4、对名称锁进行扩展。

7、进一步地,所述s1中实现l eader的选举基于etcd的两个核心功能,分别为ttl和cas,所述ttl是指给一个key设定一个有效期,过期后这个key就会被自动删除,可以确保锁的实时有效性,所述cas是指在对key进行赋值操作的时候,客户端需要具有一些条件,当这些条件达到后,才允许赋值。

8、进一步地,所述客户端需要满足的条件包括当前赋值key前是否存在,当前赋值key前的值和当前赋值key前的i ndex。

9、进一步地,所述s1的具体步骤包括;

10、s11、客户端尝试cas create key,若创建成功则给key赋值可以唯一标识自己的va l ue,并设置ttl;

11、s12、客户端ttl/2定期运行,每个客户端会先get这个key的va l ue,跟自己节点定义的va l ue相比较,若相同,则为master角色,若不同,则为s l ave角色;

12、s13、在master节点中途异常退出情况下,ttl到期后,其他s l ave节点则会抢占到并选举出新的master。

13、进一步地,master角色情况下,客户端只需更新key的ttl,延长有效时间;

14、在s l ave角色情况下,客户端周期去cas create key,并设置ttl。

15、进一步地,所述s2的具体过程包括:

16、s21、使用资源名称作为key,互斥锁工厂函数/类作为safemap默认值;

17、s22、用key获取这个内存里safemap数据结构中的va l ue;

18、s23、获取成功后,返回当前的va l ue,若不成功,safemap将自动使用工厂函数/类生成默认值存入其中并返回这个对象。

19、进一步地,所述s3中构建名称锁防内存泄露算法包括前过程和后过程,所述前过程为计数的增加,所述后过程为判断和减数以及删除key-va l ue。

20、进一步地,所述前过程的具体步骤包括:

21、第一步、根据key从counter map中获取计数器,进行引用计数加1;

22、第二步、对锁执行acqu i re操作;

23、第三步、执行业务逻辑;

24、第四步、对锁执行re l ease操作。

25、进一步地,所述后过程的具体步骤包括:

26、第一步、根据key从counter map中获取计数器,进行引用计数减1;

27、第二步、判断减数过后是否为0,若是,则删除safemap数据结构中这对key va lue,同时删除l ock map中相应计数器和互斥锁,释放内存。

28、一种基于共识算法的云存储多集群管理装置,包括选举模块,名称锁创建模块,内存防泄露模块和扩展模块,其中:

29、选举模块,用于根据raft算法的etcd来实现l eader的选举;

30、名称锁创建模块,用于构建名称锁,由选举产生的l eader负责,锁的名称对应关系保存在l eader进程的内存里;

31、内存防泄露模块,用于采用引用计数的方式构建名称锁防内存泄露算法;

32、扩展模块,用于对名称锁进行扩展。

33、本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

34、可以支持任意细粒度的资源保护,支持无限细分的资源互斥,且不影响无关资源,可以通过对key的命名来做到这一点,性能高,没有网络io,没有磁盘io,可靠性高,响应快,完全适应于分布式管控系统,可扩展性强,不受编程语言限制,实现简单好理解,解决天翼云存储管控系统在处理多个集群内部资源竞争问题时,传统办法无法兼顾业务逻辑正确性与良好的使用体验,或者解决办法局限性大的问题。



技术特征:

1.一种基于共识算法的云存储多集群管理方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于共识算法的云存储多集群管理方法,其特征在于:所述s1中实现leader的选举基于etcd的两个核心功能,分别为ttl和cas,所述ttl是指给一个key设定一个有效期,过期后这个key被自动删除,确保锁的实时有效性,所述cas是指在对key进行赋值操作的时候,客户端需要具有一些条件,当这些条件达到后,才允许赋值。

3.根据权利要求2所述的一种基于共识算法的云存储多集群管理方法,其特征在于:所述客户端需要满足的条件包括当前赋值key前是否存在,当前赋值key前的值和当前赋值key前的index。

4.根据权利要求1所述的一种基于共识算法的云存储多集群管理方法,其特征在于:所述s1的具体步骤包括;

5.根据权利要求4所述的一种基于共识算法的云存储多集群管理方法,其特征在于:master角色情况下,客户端只需更新key的ttl,延长有效时间;

6.根据权利要求1所述的一种基于共识算法的云存储多集群管理方法,其特征在于:所述s2的具体过程包括:

7.根据权利要求1所述的一种基于共识算法的云存储多集群管理方法,其特征在于:所述s3中构建名称锁防内存泄露算法包括前过程和后过程,所述前过程为计数的增加,所述后过程为判断和减数以及删除key-value。

8.根据权利要求7所述的一种基于共识算法的云存储多集群管理方法,其特征在于:所述前过程的具体步骤包括:

9.根据权利要求7所述的一种基于共识算法的云存储多集群管理方法,其特征在于:所述后过程的具体步骤包括:

10.一种基于共识算法的云存储多集群管理装置,其特征在于,包括选举模块,名称锁创建模块,内存防泄露模块和扩展模块,其中:


技术总结
本发明公开了一种基于共识算法的云存储多集群管理方法及装置,涉及分布式存储技术领域。所述方法,包括根据raft算法的etcd来实现leader的选举。可以支持任意细粒度的资源保护,支持无限细分的资源互斥,且不影响无关资源,可以通过对key的命名来做到这一点,性能高,没有网络IO,没有磁盘IO,可靠性高,响应快,完全适应于分布式管控系统,可扩展性强,不受编程语言限制,实现简单好理解,解决天翼云存储管控系统在处理多个集群内部资源竞争问题时,传统办法无法兼顾业务逻辑正确性与良好的使用体验,或者解决办法局限性大的问题。

技术研发人员:刘文进,侯昶,张盛,赵柄熹,樊祥云,刘沁雪
受保护的技术使用者:天翼云科技有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1