集群切换方法与设备技术

技术编号:14479280 阅读:74 留言:0更新日期:2017-01-25 11:55
本申请提供一种集群切换方法与设备,本申请通过在旧的主集群向新的主集群同步期间,在新的主集群上响应写操作请求,并将写操作请求对应的新数据的优先级设置为高级,其中,只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本,能够在不影响用户使用的情况下,切换对外服务的主集群,即在不需要禁止用户访问的情况下,在切换开始后至切换结束期间使用户能读写到全部数据,并且旧的和新的主集群上数据能够保证一致,实现集群间数据的无缝迁移或备份。

【技术实现步骤摘要】

本申请涉及计算机领域,尤其涉及一种集群切换方法与设备
技术介绍
在云存储系统中,数据存储于单个集群,为了提高数据存储的安全性、提供集群级别的容灾方案,或者实现集群间的数据迁移,往往需要将数据备份到其他的集群,该过程称为集群间数据同步。当需要将用户读写访问的集群从主集群变更成从集群时,该变更过程称为切换主集群。如何保证集群间数据同步的一致性、以及保证集群切换时对用户无影响是集群间同步和切换的关键技术方案。目前的同步技术方案一般分为集群间的异步的同步方案和同步的同步方案,分别结合不同的切换方案:1.异步的同步方案中,使用异步模块将数据从主集群拷贝到从集群,可以保证数据一致性,但是具有一定的延时性,当需要切换对外服务的主集群时,会出现主集群上的部分数据还未同步到从集群上的情况,导致切换后,在这部分数据同步结束前,该部分数据对用户不可见,出现数据短暂丢失的情况,并且在该部分数据同步期间,用户对该部分数据的覆盖写会导致数据一致性问题,因此当需要切换之前,会停止主集群数据的写入,当主集群的数据完全同步到从集群之后,进行切换,再开放用户的写权限,从而不会影响用户访问,并且能解决数据一致性问题,但是由于延时性,切换前禁止用户写入会影响用户使用。2.同步的同步方案中,在用户写入数据时,数据分别写入主集群和从集群,集群切换简单,当主集群和从集群同时成功时返回用户成功,但会降低用户的访问成功率,提高了用户访问延时,并且难以解决主从集群间有一份数据写失败时的数据一致性问题,对于已经存在于主集群中的数据无法实现拷贝。
技术实现思路
本申请的一个目的是提供一种集群切换方法与设备,能够解决集群间数据间迁移或备份时,影响用户使用,切换集群间数据不能够保证一致的问题。根据本申请的一个方面,提供了一种集群切换方法,该方法包括:在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。进一步的,上述方法中,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,还包括:在旧的和新的主集群上响应的读操作请求;在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,还包括:在新的主集群上响应读操作请求。进一步的,上述方法中,所述写操作请求包括对数据的新增、改写和删除操作请求。进一步的,上述方法中,当所述写操作请求为对数据的新增或改写时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:将所述新增或改写操作请求写入消息队列;从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求。进一步的,上述方法中,读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求,包括:判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,若存在,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求;若不存在,删除消息队列中所述读取到的新增或改写操作请求。进一步的,上述方法中,当所述写操作请求为对数据的删除操作请求时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:将所述删除操作请求写入消息队列;从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求。进一步的,上述方法中,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求,包括:若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都不存在,则删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在新的主集群上不存在,而在旧的主集群上存在,则删除旧的主集群上对应的删除数据后,删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的主集群上不存在,而在新的主集群上存在,则将新的主集群上对应的删除数据同步到旧的主集群上后,删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都存在,则删除消息队列中所述读取到的删除操作请求。进一步的,上述方法中,将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求,包括:判断是否从旧的和新的主集群上读取到所述读操作请求所对应的数据,若在旧的或新的主集群读取到对应的数据,则返回该数据;若在旧的和新的主集群都读取到对应的数据,则返回新的主集群上读取到的对应的数据。根据本申请的另一面还提供一种集群切换设备,其中,该设备包括:同步装置,用于在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;同步期间写响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;同步结束写响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。进一步的,上述设备中,所述设备还包括同步期间读响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求;所述设备还包括同步结束读响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应读操作请求。进一步的,上述设备中,所述写操作请求包括对数据的新增、改写和删除操作请求。进一步的,上述设备中,所述设备还包括新增或改写请求消息队列装置,用于当所述写操作请求为对数据的新增或改写时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,将所述新增或改写操作请求写入消息队列,从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求。进一步的,上述设备中,所述新增或改写请求消息队列装置,用于判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,若存在,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求;若不存在,删除消息队列中所述读取到的本文档来自技高网...
集群切换方法与设备

【技术保护点】
一种集群切换方法,其中,该方法包括:在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。

【技术特征摘要】
1.一种集群切换方法,其中,该方法包括:在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。2.如权利要求1所述的方法,其中,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,还包括:在旧的和新的主集群上响应的读操作请求;在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,还包括:在新的主集群上响应读操作请求。3.如权利要求1或2所述的方法,其中,所述写操作请求包括对数据的新增、改写和删除操作请求。4.如权利要求3所述的方法,其中,当所述写操作请求为对数据的新增或改写时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:将所述新增或改写操作请求写入消息队列;从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求。5.如权利要求4所述的方法,其中,读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求,包括:判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,若存在,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求;若不存在,删除消息队列中所述读取到的新增或改写操作请求。6.如权利要求3所述的方法,其中,当所述写操作请求为对数据的删除操作请求时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:将所述删除操作请求写入消息队列;从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求。7.如权利要求6所述的方法,其中,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求,包括:若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都不存
\t在,则删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在新的主集群上不存在,而在旧的主集群上存在,则删除旧的主集群上对应的删除数据后,删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的主集群上不存在,而在新的主集群上存在,则将新的主集群上对应的删除数据同步到旧的主集群上后,删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都存在,则删除消息队列中所述读取到的删除操作请求。8.如权利要求2至7任一项所述的方法,其中,将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求,包括:判断是否从旧的和新的主集群上读取到所述读操作请求所对应的数据,若在旧的或新的主集群读取到对应的数据,则返回该数据;若在旧的和新的主集群都读取到对应的数据,则返回新的主集群上读取到的对应...

【专利技术属性】
技术研发人员:张婷邹忠郁李文兆杨铭吴锦波
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1