CN106357703B - 集群切换方法与设备 - Google Patents
集群切换方法与设备 Download PDFInfo
- Publication number
- CN106357703B CN106357703B CN201510408179.9A CN201510408179A CN106357703B CN 106357703 B CN106357703 B CN 106357703B CN 201510408179 A CN201510408179 A CN 201510408179A CN 106357703 B CN106357703 B CN 106357703B
- Authority
- CN
- China
- Prior art keywords
- cluster
- new
- data
- old
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Abstract
本申请提供一种集群切换方法与设备,本申请通过在旧的主集群向新的主集群同步期间,在新的主集群上响应写操作请求,并将写操作请求对应的新数据的优先级设置为高级,其中,只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本,能够在不影响用户使用的情况下,切换对外服务的主集群,即在不需要禁止用户访问的情况下,在切换开始后至切换结束期间使用户能读写到全部数据,并且旧的和新的主集群上数据能够保证一致,实现集群间数据的无缝迁移或备份。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种集群切换方法与设备。
背景技术
在云存储系统中,数据存储于单个集群,为了提高数据存储的安全性、提供集群级别的容灾方案,或者实现集群间的数据迁移,往往需要将数据备份到其他的集群,该过程称为集群间数据同步。当需要将用户读写访问的集群从主集群变更成从集群时,该变更过程称为切换主集群。如何保证集群间数据同步的一致性、以及保证集群切换时对用户无影响是集群间同步和切换的关键技术方案。
目前的同步技术方案一般分为集群间的异步的同步方案和同步的同步方案,分别结合不同的切换方案:
1.异步的同步方案中,使用异步模块将数据从主集群拷贝到从集群,可以保证数据一致性,但是具有一定的延时性,当需要切换对外服务的主集群时,会出现主集群上的部分数据还未同步到从集群上的情况,导致切换后,在这部分数据同步结束前,该部分数据对用户不可见,出现数据短暂丢失的情况,并且在该部分数据同步期间,用户对该部分数据的覆盖写会导致数据一致性问题,因此当需要切换之前,会停止主集群数据的写入,当主集群的数据完全同步到从集群之后,进行切换,再开放用户的写权限,从而不会影响用户访问,并且能解决数据一致性问题,但是由于延时性,切换前禁止用户写入会影响用户使用。
2.同步的同步方案中,在用户写入数据时,数据分别写入主集群和从集群,集群切换简单,当主集群和从集群同时成功时返回用户成功,但会降低用户的访问成功率,提高了用户访问延时,并且难以解决主从集群间有一份数据写失败时的数据一致性问题,对于已经存在于主集群中的数据无法实现拷贝。
发明内容
本申请的一个目的是提供一种集群切换方法与设备,能够解决集群间数据间迁移或备份时,影响用户使用,切换集群间数据不能够保证一致的问题。
根据本申请的一个方面,提供了一种集群切换方法,该方法包括:
在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;
在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;
在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。
进一步的,上述方法中,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,还包括:
在旧的和新的主集群上响应的读操作请求;
在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,还包括:
在新的主集群上响应读操作请求。
进一步的,上述方法中,所述写操作请求包括对数据的新增、改写和删除操作请求。
进一步的,上述方法中,当所述写操作请求为对数据的新增或改写时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:
将所述新增或改写操作请求写入消息队列;
从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求。
进一步的,上述方法中,读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求,包括:
判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,
若存在,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求;
若不存在,删除消息队列中所述读取到的新增或改写操作请求。
进一步的,上述方法中,当所述写操作请求为对数据的删除操作请求时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:
将所述删除操作请求写入消息队列;
从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求。
进一步的,上述方法中,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求,包括:
若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都不存在,则删除消息队列中所述读取到的删除操作请求;
若读取到删除操作请求所对应的删除数据在新的主集群上不存在,而在旧的主集群上存在,则删除旧的主集群上对应的删除数据后,删除消息队列中所述读取到的删除操作请求;
若读取到删除操作请求所对应的删除数据在旧的主集群上不存在,而在新的主集群上存在,则将新的主集群上对应的删除数据同步到旧的主集群上后,删除消息队列中所述读取到的删除操作请求;
若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都存在,则删除消息队列中所述读取到的删除操作请求。
进一步的,上述方法中,将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求,包括:
判断是否从旧的和新的主集群上读取到所述读操作请求所对应的数据,
若在旧的或新的主集群读取到对应的数据,则返回该数据;
若在旧的和新的主集群都读取到对应的数据,则返回新的主集群上读取到的对应的数据。
根据本申请的另一面还提供一种集群切换设备,其中,该设备包括:
同步装置,用于在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;
同步期间写响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;
同步结束写响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。
进一步的,上述设备中,所述设备还包括同步期间读响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求;
所述设备还包括同步结束读响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应读操作请求。
进一步的,上述设备中,所述写操作请求包括对数据的新增、改写和删除操作请求。
进一步的,上述设备中,所述设备还包括新增或改写请求消息队列装置,用于当所述写操作请求为对数据的新增或改写时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,将所述新增或改写操作请求写入消息队列,从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求。
进一步的,上述设备中,所述新增或改写请求消息队列装置,用于判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,若存在,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求;若不存在,删除消息队列中所述读取到的新增或改写操作请求。
进一步的,上述设备中,所述设备还包括删除请求消息队列装置,用于当所述写操作请求为对数据的删除操作请求时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,将所述删除操作请求写入消息队列,从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求。
进一步的,上述设备中,所述删除请求消息队列装置,用于若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都不存在,则删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在新的主集群上不存在,而在旧的主集群上存在,则删除旧的主集群上对应的删除数据后,删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的主集群上不存在,而在新的主集群上存在,则将新的主集群上对应的删除数据同步到旧的主集群上后,删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都存在,则删除消息队列中所述读取到的删除操作请求。
进一步的,上述设备中,所述同步期间读响应装置,用于判断是否从旧的和新的主集群上读取到所述读操作请求所对应的数据,若在旧的或新的主集群读取到对应的数据,则返回该数据;若在旧的和新的主集群都读取到对应的数据,则返回新的主集群上读取到的对应的数据。
与现有技术相比,本申请通过在旧的主集群向新的主集群同步期间,在新的主集群上响应写操作请求,并将写操作请求对应的新数据的优先级设置为高级,其中,只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本,能够在不影响用户使用的情况下,切换对外服务的主集群,即在不需要禁止用户访问的情况下,在切换开始后至切换结束期间使用户能读写到全部数据,并且旧的和新的主集群上数据能够保证一致,实现集群间数据的无缝迁移或备份。
进一步的,本申请通过将所述新增或改写操作请求写入消息队列,从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群B上的新增或改写数据同步到旧的主集群A上后,删除消息队列中所述读取到的写操作请求,从而保证旧的和新的主集群上数据的一致性,始终保持两个集群上的数据同步,以满足当又有从新的主集群B切换回旧的主集群A的需求。
进一步的,本申请通过将所述删除操作请求写入消息队列,从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致,删除消息队列中所述读取到的删除操作请求,从而保证旧的和新的主集群上数据的一致性,始终保持两个集群上的数据同步,以满足当又有从新的主集群B切换回旧的主集群A的需求。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种集群切换方法的流程图;
图2示出根据本申请一个优选实施例的一种集群切换方法的流程图;
图3示出根据本申请另一个优选实施例的一种集群切换方法的流程图;
图4示出根据本申请又一个优选实施例的一种集群切换方法的流程图;
图5示出根据本申请再一个优选实施例的一种集群切换方法的流程图;
图6示出根据本申请又一个优选实施例的一种集群切换方法的流程图;
图7示出根据本申请另一个方面的一种集群切换设备的结构图;
图8示出根据本申请一个优选实施例的一种集群切换设备的结构图;
图9示出根据本申请另一个优选实施例的一种集群切换设备的结构图;
图10示出根据本申请又一个优选实施例的一种集群切换设备的结构图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图1所示,本申请提供一种集群切换方法,包括:
步骤S1,在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上从旧的主集群同步来的剩余原始数据的优先级设置为低级;具体的,旧的主集群A向新的主集群B同步的时间是在旧的主集群A向新的主集群B切换之前开始,旧的主集群A向新的主集群B同步完成时,旧的主集群A向新的主集群B切换也随之完成,这里旧的主集群A向新的主集群B是指将旧的主集群A上的原始数据备份到主集群B,以在旧的主集群A向新的主集群B切换完成后由新的主集群B对外向用户提供数据读写服务,另外,由于旧的主集群A向新的主集群B同步先于集群切换开始,新的主集群B上从旧的主集群A同步来的原始数据包括集群切换开始前,新的主集群B上从旧的主集群A同步来的原始数据,及集群切换开始后至集群切换结束,新的主集群B上从旧的主集群A同步来的剩余的原始数据,例如,旧的主集群A上原有5000条原始数据,新的主集群B上从旧的主集群A同步来的原始数据包括集群切换开始前,新的主集群B上已经从旧的主集群A同步来的5000条原始数据中的2000条,那么新的主集群B上从旧的主集群A同步来的原始数据还要包括集群切换开始后至集群切换结束,新的主集群B上需要从旧的主集群A同步来的剩余的3000条原始数据,在此,无论是集群切换开始前,还是集群切换开始后至集群切换结束,新的主集群B上从旧的主集群A同步来的原始数据的优先级都设置为低级如0级,以与后续设置为高级的写操作请求对应的新数据如1级相区分;
步骤S2,在旧的主集群向新的主集群同步期间,在新的主集群上响应写操作请求,并将写操作请求对应的新数据的优先级设置为高级,其中,只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;具体的,步骤S1和步骤S2是同时进行的,在集群切换开始后,新的主集群B上会存在两类数据,一类是新数据,另一类是从旧的主集群A同步来的原始数据,为了防止从旧的主集群A同步来的原始数据覆盖新数据,并保证新数据如1级数据能够覆盖从旧的主集群A同步来的原始数据(低级数据如0级数据)或者更新的新数据(同级数据如1级数据),这里设置只允许新的主集群B上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本,例如,新的主集群B上有一从旧的主集群上同步来的原始数据a=100,随后用户发起一个写操作请求所对应的新数据为a=200,由于a=100的数据级别为低级如0级,而a=200的数据级别为高级如1级,则高级数据覆盖同一数据低级版本,新的主集群B上a数据的值对应更新为200,如果,接着又有用户发起一个更新的写操作请求所对应的新数据为a=300,则高级覆盖同一数据之前同级版本,新的主集群上a数据的值对应更新为300;又如,在新的主集群B上用户发起一个写操作请求所对应的新数据为a=200,随后,又有一从旧的主集群A上同步来的原始数据a=100,由于a=100的数据级别为低级如0级,而a=200的数据级别为高级如1级,则低级不能覆盖同一数据高级版本,新的主集群上a数据的值对应仍为200;
步骤S4,在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。具体的,步骤S4是在步骤S1和步骤S2之后进行,在集群同步结束后,由于旧的主集群A的所有原始数据已经都同步到新的主集群B上,所以只要在新的主集群B上响应数据写操作请求即可,也不再需要区分新的主集群B上数据的优先级。本实施例能够在不影响用户使用的情况下,切换对外服务的主集群,即在不需要禁止用户访问的情况下,在切换开始后至切换结束期间使用户能读写到全部数据,并且旧的和新的主集群上数据能够保证一致,实现集群间数据的无缝迁移或备份。
如图2所示,本申请的集群切换方法一优选的实施例中,执行步骤S1的同时,还包括执行步骤S3,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求;
步骤S3之后,在执行步骤S4的同时,还包括执行步骤S5,在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应读操作请求。具体的,在集群同步结束前,需要在旧的和新的主集群上响应在旧的主集群A向新的主集群B同步期间的数据读操作请求,以避免集群同步结束前,在有些原始数据还没有同步到新的主集群的情况下,即使没有在新的主集群B上找到需要的原始数据,还可以在旧的主集群上找到需要的原始数据,所以这时需要同时在旧的和新的主集群上响应在旧的主集群A向新的主集群B同步期间的数据读操作请求;而在集群同步结束后,由于旧的主集群的所有原始数据已经都同步到新的主集群上,所以只要在新的主集群上响应数据读操作请求即可,都可以满足用户的数据需求。
本申请的集群切换方法一优选的实施例中,所述写操作请求包括对数据的新增、改写和删除操作请求。具体的,旧的主集群向新的主集群切换开始后,用户的写操作请求在新的主集群上新增其没有的数据,或者对已有的数据版本的修改,或者对已有数据的删除,从而满足用户的各种写操作需求。本领域技术人员应能理解上述写操作请求的描述仅为举例,其他现有的或今后可能出现的写操作请求的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如图3所示,本申请的集群切换方法一优选的实施例中,当所述写操作请求为对数据的新增或改写时,执行步骤S2,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:
步骤S20,将所述新增或改写操作请求写入消息队列;
步骤S21,从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群B上的新增或改写数据同步到旧的主集群A上后,删除消息队列中所述读取到的写操作请求,在此,消息队列中的写操作请求用于标注新的主集群B上待同步到旧的主集群A上的新增或改写数据,在每完成将新的主集群B上的一个新增或改写数据同步到旧的主集群A上之后,则将对应的一个写操作请求删除,从而保证旧的和新的主集群上数据的一致性,始终保持两个集群上的数据同步,以满足当又有从新的主集群B切换回旧的主集群A的需求。本领域技术人员应能理解上述消息队列的描述仅为举例,其他现有的或今后可能出现的消息队列的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如图4所示,本申请的集群切换方法一优选的实施例中,步骤S21中的将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求,包括:
步骤S211,判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,若存在,转到步骤S212,若不存在,转到步骤S213;
步骤S212,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求;在此,如果一次数据同步失败,可以不停地重试,直到新的主集群的新增或改写数据被成功同步入旧的主集群A为止;
步骤S213,删除消息队列中所述读取到的新增或改写操作请求,在此,当新增或改写数据写入新的主集群B失败时,虽然消息队列里记录有对应的新增或改写操作请求,但此时不需要同步新的主集群B中没有的数据到旧的主集A,直接将消息队列中所述读取到的新增或改写操作请求删除即可,从而保证旧的和新的主集群上数据的一致性。本领域技术人员应能理解上述新的主集群上是否存在读取到的新增或改写操作请求的描述仅为举例,其他现有的或今后可能出现的新的主集群上是否存在读取到的新增或改写操作请求的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如图5所示,本申请的集群切换方法一优选的实施例中,当所述写操作请求为对数据的删除操作请求时,执行步骤S2,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:
步骤S30,将所述删除操作请求写入消息队列;
步骤S31,从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致,删除消息队列中所述读取到的删除操作请求。在此,消息队列中的写操作请求用于标注新的主集群B上待与旧的主集群A上的对应数据保持一致的删除数据,在每完成将新的主集群B上的一个删除数据与旧的主集群A上数据一致之后,则将对应的一个写操作请求删除,从而保证旧的和新的主集群上数据的一致性,始终保持两个集群上的数据同步,以满足当又有从新的主集群B切换回旧的主集群A的需求。本领域技术人员应能理解上述消息队列的描述仅为举例,其他现有的或今后可能出现的消息队列的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的集群切换方法一优选的实施例中,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求,包括:
若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都不存在,则删除消息队列中所述读取到的删除操作请求;此时,所述旧的和新的主集群上的对应数据已经保持一致,直接删除消息队列中所述读取到的删除操作请求即可;
若读取到删除操作请求所对应的删除数据在新的主集群上不存在,而在旧的主集群上存在,则删除旧的主集群上对应的删除数据后,删除消息队列中所述读取到的删除操作请求;在此,由于新的主集群上的对应数据已经删除,则应对应将旧的主集群上对应的删除数据,然后删除消息队列中所述读取到的删除操作请求,从而使所述旧的和新的主集群上的对应数据保持一致;
若读取到删除操作请求所对应的删除数据在旧的主集群上不存在,而在新的主集群上存在,则将新的主集群上对应的删除数据同步到旧的主集群上后,删除消息队列中所述读取到的删除操作请求;在此,由于新的主集群B上应该删除的数据没有删除,为了使旧的主集群A与新的主集群B始终保持一致,可以将新的主集群B上该未删除的数据删除同步到旧的主集群A后,再删除消息队列中对应的删除操作请求;
若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都存在,则删除消息队列中所述读取到的删除操作请求。在此,所述旧的和新的主集群上的对应数据已经保持一致,直接删除消息队列中所述读取到的删除操作请求即可。本领域技术人员应能理解上述所述旧的和新的主集群上的对应数据保持一致的描述仅为举例,其他现有的或今后可能出现的所述旧的和新的主集群上的对应数据保持一致的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如图6所示,本申请的集群切换方法一优选的实施例中,步骤S3,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求,包括:
步骤S41,判断是否从旧的和新的主集群上读取到所述读操作请求所对应的数据,
步骤S42,若在旧的或新的主集群读取到对应的数据,则返回该数据;在此,若从旧的或新的主集群中的其中一个主集群上读取到对应的数据,则直接向返回该读取到的数据即可,以满足用户的读取需求;
步骤S43,若在旧的和新的主集群都读取到对应的数据,则返回新的主集群上读取到的对应的数据。在此,若同时在旧的或新的主集群上都读取到对应的数据,由于新的主集群B上的数据要么是跟旧的主集群A上的数据版本一致,要么是比旧的主集群A上的数据版本更新的版本,即替换后的优先级更高的对应数据的更新版本,所以向用户返回新的主集群上读取到的对应的数据即可。另外,如果在旧的或新的主集群上都未读取到对应的数据,则可以向用户返回读取失败的信息。
如图7所示,根据本申请的另一面,还提供一种集群切换设备100,其中,该设备100包括:
同步装置1,用于在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;具体的,旧的主集群A向新的主集群B同步的时间是在旧的主集群A向新的主集群B切换之前开始,旧的主集群A向新的主集群B同步完成时,旧的主集群A向新的主集群B切换也随之完成,这里旧的主集群A向新的主集群B是指将旧的主集群A上的原始数据备份到主集群B,以在旧的主集群A向新的主集群B切换完成后由新的主集群B对外向用户提供数据读写服务,另外,由于旧的主集群A向新的主集群B同步先于集群切换开始,新的主集群B上从旧的主集群A同步来的原始数据包括集群切换开始前,新的主集群B上从旧的主集群A同步来的原始数据,及集群切换开始后至集群切换结束,新的主集群B上从旧的主集群A同步来的剩余的原始数据,例如,旧的主集群A上原有5000条原始数据,新的主集群B上从旧的主集群A同步来的原始数据包括集群切换开始前,新的主集群B上已经从旧的主集群A同步来的5000条原始数据中的2000条,那么新的主集群B上从旧的主集群A同步来的原始数据还要包括集群切换开始后至集群切换结束,新的主集群B上需要从旧的主集群A同步来的剩余的3000条原始数据,在此,无论是集群切换开始前,还是集群切换开始后至集群切换结束,新的主集群B上从旧的主集群A同步来的原始数据的优先级都设置为低级如0级,以与后续设置为高级的写操作请求对应的新数据如1级相区分;
同步期间写响应装置2,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;具体的,同步装置1和同步期间写响应装置2是同时进行的,在集群切换开始后,新的主集群B上会存在两类数据,一类是新数据,另一类是从旧的主集群A同步来的原始数据,为了防止从旧的主集群A同步来的原始数据覆盖新数据,并保证新数据如1级数据能够覆盖从旧的主集群A同步来的原始数据(低级数据如0级数据)或者更新的新数据(同级数据如1级数据),这里设置只允许新的主集群B上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本,例如,新的主集群B上有一从旧的主集群上同步来的原始数据a=100,随后用户发起一个写操作请求所对应的新数据为a=200,由于a=100的数据级别为低级如0级,而a=200的数据级别为高级如1级,则高级数据覆盖同一数据低级版本,新的主集群B上a数据的值对应更新为200,如果,接着又有用户发起一个更新的写操作请求所对应的新数据为a=300,则高级覆盖同一数据之前同级版本,新的主集群上a数据的值对应更新为300;又如,在新的主集群B上用户发起一个写操作请求所对应的新数据为a=200,随后,又有一从旧的主集群A上同步来的原始数据a=100,由于a=100的数据级别为低级如0级,而a=200的数据级别为高级如1级,则低级不能覆盖同一数据高级版本,新的主集群上a数据的值对应仍为200;
同步结束写响应装置3,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。具体的,同步结束写响应装置3是在同步装置1和同步期间写响应装置2执行之后进行,在集群同步结束后,由于旧的主集群A的所有原始数据已经都同步到新的主集群B上,所以只要在新的主集群B上响应数据写操作请求即可,也不再需要区分新的主集群B上数据的优先级。本实施例能够在不影响用户使用的情况下,切换对外服务的主集群,即在不需要禁止用户访问的情况下,在切换开始后至切换结束期间使用户能读写到全部数据,并且旧的和新的主集群上数据能够保证一致,实现集群间数据的无缝迁移或备份。
如图8所示,本申请的集群切换设备一优选的实施例中,所述设备100还包括同步期间读响应装置4,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求;
所述设备100还包括同步结束读响应装置5,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应读操作请求。具体的,在集群同步结束前,需要在旧的和新的主集群上响应在旧的主集群A向新的主集群B同步期间的数据读操作请求,以避免集群同步结束前,在有些原始数据还没有同步到新的主集群的情况下,即使没有在新的主集群B上找到需要的原始数据,还可以在旧的主集群上找到需要的原始数据,所以这时需要同时在旧的和新的主集群上响应在旧的主集群A向新的主集群B同步期间的数据读操作请求;而在集群同步结束后,由于旧的主集群的所有原始数据已经都同步到新的主集群上,所以只要在新的主集群上响应数据读操作请求即可,都可以满足用户的数据需求。
本申请的集群切换设备一优选的实施例中,所述写操作请求包括对数据的新增、改写和删除操作请求。具体的,旧的主集群向新的主集群切换开始后,用户的写操作请求在新的主集群上新增其没有的数据,或者对已有的数据版本的修改,或者对已有数据的删除,从而满足用户的各种写操作需求。本领域技术人员应能理解上述写操作请求的描述仅为举例,其他现有的或今后可能出现的写操作请求的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如图9所示,本申请的集群切换设备一优选的实施例中,所述设备100还包括新增或改写请求消息队列装置6,用于当所述写操作请求为对数据的新增或改写时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,将所述新增或改写操作请求写入消息队列,从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求。在此,消息队列中的写操作请求用于标注新的主集群B上待同步到旧的主集群A上的新增或改写数据,在每完成将新的主集群B上的一个新增或改写数据同步到旧的主集群A上之后,则将对应的一个写操作请求删除,从而保证旧的和新的主集群上数据的一致性,始终保持两个集群上的数据同步,以满足当又有从新的主集群B切换回旧的主集群A的需求。本领域技术人员应能理解上述消息队列的描述仅为举例,其他现有的或今后可能出现的消息队列的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的集群切换设备一优选的实施例中,所述新增或改写请求消息队列装置6,用于判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,若存在,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求,在此,如果一次数据同步失败,可以不停地重试,直到新的主集群的新增或改写数据被成功同步入旧的主集群A为止;若不存在,删除消息队列中所述读取到的新增或改写操作请求,在此,当新增或改写数据写入新的主集群B失败时,虽然消息队列里记录有对应的新增或改写操作请求,但此时不需要同步新的主集群B中没有的数据到旧的主集A,直接将消息队列中所述读取到的新增或改写操作请求删除即可,从而保证旧的和新的主集群上数据的一致性。本领域技术人员应能理解上述新的主集群上是否存在读取到的新增或改写操作请求的描述仅为举例,其他现有的或今后可能出现的新的主集群上是否存在读取到的新增或改写操作请求的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如图10所示,本申请的集群切换设备一优选的实施例中,所述设备100还包括删除请求消息队列装置7,用于当所述写操作请求为对数据的删除操作请求时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,将所述删除操作请求写入消息队列,从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求。在此,消息队列中的写操作请求用于标注新的主集群B上待与旧的主集群A上的对应数据保持一致的删除数据,在每完成将新的主集群B上的一个删除数据与旧的主集群A上数据一致之后,则将对应的一个写操作请求删除,从而保证旧的和新的主集群上数据的一致性,始终保持两个集群上的数据同步,以满足当又有从新的主集群B切换回旧的主集群A的需求。本领域技术人员应能理解上述消息队列的描述仅为举例,其他现有的或今后可能出现的消息队列的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的集群切换设备一优选的实施例中,所述删除请求消息队列装置7,用于若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都不存在,则删除消息队列中所述读取到的删除操作请求,此时,所述旧的和新的主集群上的对应数据已经保持一致,直接删除消息队列中所述读取到的删除操作请求即可;若读取到删除操作请求所对应的删除数据在新的主集群上不存在,而在旧的主集群上存在,则删除旧的主集群上对应的删除数据后,删除消息队列中所述读取到的删除操作请求,在此,由于新的主集群上的对应数据已经删除,则应对应将旧的主集群上对应的删除数据,然后删除消息队列中所述读取到的删除操作请求,从而使所述旧的和新的主集群上的对应数据保持一致;若读取到删除操作请求所对应的删除数据在旧的主集群上不存在,而在新的主集群上存在,则将新的主集群上对应的删除数据同步到旧的主集群上后,删除消息队列中所述读取到的删除操作请求,在此,由于新的主集群B上应该删除的数据没有删除,为了使旧的主集群A与新的主集群B始终保持一致,可以将新的主集群B上该未删除的数据删除同步到旧的主集群A后,再删除消息队列中对应的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都存在,则删除消息队列中所述读取到的删除操作请求,在此,所述旧的和新的主集群上的对应数据已经保持一致,直接删除消息队列中所述读取到的删除操作请求即可。本领域技术人员应能理解上述所述旧的和新的主集群上的对应数据保持一致的描述仅为举例,其他现有的或今后可能出现的所述旧的和新的主集群上的对应数据保持一致的描述如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
本申请的集群切换设备一优选的实施例中,所述同步期间读响应装置4,用于判断是否从旧的和新的主集群上读取到所述读操作请求所对应的数据,若在旧的或新的主集群读取到对应的数据,则返回该数据,在此,若从旧的或新的主集群中的其中一个主集群上读取到对应的数据,则直接向返回该读取到的数据即可,以满足用户的读取需求;若在旧的和新的主集群都读取到对应的数据,则返回新的主集群上读取到的对应的数据,在此,若同时在旧的或新的主集群上都读取到对应的数据,由于新的主集群B上的数据要么是跟旧的主集群A上的数据版本一致,要么是比旧的主集群A上的数据版本更新的版本,即替换后的优先级更高的对应数据的更新版本,所以向用户返回新的主集群上读取到的对应的数据即可。
综上所述,本申请通过在旧的主集群向新的主集群同步期间,在新的主集群上响应写操作请求,并将写操作请求对应的新数据的优先级设置为高级,其中,只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本,能够在不影响用户使用的情况下,切换对外服务的主集群,即在不需要禁止用户访问的情况下,在切换开始后至切换结束期间使用户能读写到全部数据,并且旧的和新的主集群上数据能够保证一致,实现集群间数据的无缝迁移或备份。
进一步的,本申请通过将所述新增或改写操作请求写入消息队列,从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群B上的新增或改写数据同步到旧的主集群A上后,删除消息队列中所述读取到的写操作请求,从而保证旧的和新的主集群上数据的一致性,始终保持两个集群上的数据同步,以满足当又有从新的主集群B切换回旧的主集群A的需求。
进一步的,本申请通过将所述删除操作请求写入消息队列,从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致,删除消息队列中所述读取到的删除操作请求,从而保证旧的和新的主集群上数据的一致性,始终保持两个集群上的数据同步,以满足当又有从新的主集群B切换回旧的主集群A的需求。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (16)
1.一种集群切换方法,其中,该方法包括:
在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;旧的主集群向新的主集群同步的时间是在旧的主集群向新的主集群切换之前开始;新的主集群上从旧的主集群同步来的原始数据包括:集群切换开始前、新的主集群上从旧的主集群同步来的原始数据,以及集群切换开始后至集群切换结束、新的主集群上从旧的主集群同步来的剩余的原始数据;
在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级的同一数据的另一版本或高级的同一数据的另一版本;
在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。
2.如权利要求1所述的方法,其中,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,还包括:
在旧的和新的主集群上响应的读操作请求;
在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,还包括:
在新的主集群上响应读操作请求。
3.如权利要求2所述的方法,其中,所述写操作请求包括对数据的新增、改写和删除操作请求。
4.如权利要求3所述的方法,其中,当所述写操作请求为对数据的新增或改写时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:
将所述新增或改写操作请求写入消息队列;
从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求。
5.如权利要求4所述的方法,其中,读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求,包括:
判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,
若存在,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求;
若不存在,删除消息队列中所述读取到的新增或改写操作请求。
6.如权利要求3所述的方法,其中,当所述写操作请求为对数据的删除操作请求时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,还包括:
将所述删除操作请求写入消息队列;
从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求。
7.如权利要求6所述的方法,其中,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求,包括:
若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都不存在,则删除消息队列中所述读取到的删除操作请求;
若读取到删除操作请求所对应的删除数据在新的主集群上不存在,而在旧的主集群上存在,则删除旧的主集群上对应的删除数据后,删除消息队列中所述读取到的删除操作请求;
若读取到删除操作请求所对应的删除数据在旧的主集群上不存在,而在新的主集群上存在,则将新的主集群上对应的删除数据同步到旧的主集群上后,删除消息队列中所述读取到的删除操作请求;
若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都存在,则删除消息队列中所述读取到的删除操作请求。
8.如权利要求2至7任一项所述的方法,其中,将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求,包括:
判断是否从旧的和新的主集群上读取到所述读操作请求所对应的数据,
若在旧的或新的主集群读取到对应的数据,则返回该数据;
若在旧的和新的主集群都读取到对应的数据,则返回新的主集群上读取到的对应的数据。
9.一种集群切换设备,其中,该设备包括:
同步装置,用于在旧的主集群向新的主集群切换开始后,将旧的主集群上待同步的剩余原始数据同步到新的主集群上,其中,将新的主集群上所述剩余原始数据的优先级设置为低级;旧的主集群向新的主集群同步的时间是在旧的主集群向新的主集群切换之前开始;新的主集群上从旧的主集群同步来的原始数据包括:集群切换开始前、新的主集群上从旧的主集群同步来的原始数据,以及集群切换开始后至集群切换结束、新的主集群上从旧的主集群同步来的剩余的原始数据;
同步期间写响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求,其中,将写操作请求对应的新数据的优先级设置为高级,并只允许在新的主集群上优先级为高级的数据的版本覆盖优先级为低级或高级的同一数据的另一版本;
同步结束写响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应写操作请求。
10.如权利要求9所述的设备,其中,所述设备还包括同步期间读响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在旧的和新的主集群上响应的读操作请求;
所述设备还包括同步结束读响应装置,用于在将旧的主集群上待同步的剩余原始数据同步到新的主集群结束后,在新的主集群上响应读操作请求。
11.如权利要求10所述的设备,其中,所述写操作请求包括对数据的新增、改写和删除操作请求。
12.如权利要求11所述的设备,其中,所述设备还包括新增或改写请求消息队列装置,用于当所述写操作请求为对数据的新增或改写时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,将所述新增或改写操作请求写入消息队列,从所述消息队列中读取新增或改写操作请求,将读取到的新增或改写操作请求所对应的新的主集群上的新增或改写数据同步到旧的主集群上后,删除消息队列中所述读取到的写操作请求。
13.如权利要求12所述的设备,其中,所述新增或改写请求消息队列装置,用于判断新的主集群上是否存在读取到的新增或改写操作请求所对应的新增或改写数据,若存在,将该新增或改写数据同步到旧的主集群上,删除消息队列中所述读取到的新增或改写操作请求;若不存在,删除消息队列中所述读取到的新增或改写操作请求。
14.如权利要求11所述的设备,其中,所述设备还包括删除请求消息队列装置,用于当所述写操作请求为对数据的删除操作请求时,在将旧的主集群上待同步的剩余原始数据同步到新的主集群期间,在新的主集群上响应写操作请求的同时,将所述删除操作请求写入消息队列,从消息队列中读取删除操作请求,根据读取到删除操作请求使所述旧的和新的主集群上的对应数据保持一致后,删除消息队列中所述读取到的删除操作请求。
15.如权利要求14所述的设备,其中,所述删除请求消息队列装置,用于若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都不存在,则删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在新的主集群上不存在,而在旧的主集群上存在,则删除旧的主集群上对应的删除数据后,删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的主集群上不存在,而在新的主集群上存在,则将新的主集群上对应的删除数据同步到旧的主集群上后,删除消息队列中所述读取到的删除操作请求;若读取到删除操作请求所对应的删除数据在旧的和新的主集群上都存在,则删除消息队列中所述读取到的删除操作请求。
16.如权利要求10至15任一项所述的设备,其中,所述同步期间读响应装置,用于判断是否从旧的和新的主集群上读取到所述读操作请求所对应的数据,若在旧的或新的主集群读取到对应的数据,则返回该数据;若在旧的和新的主集群都读取到对应的数据,则返回新的主集群上读取到的对应的数据。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510408179.9A CN106357703B (zh) | 2015-07-13 | 2015-07-13 | 集群切换方法与设备 |
PCT/CN2016/088300 WO2017008648A1 (zh) | 2015-07-13 | 2016-07-04 | 集群切换方法与设备 |
US15/870,572 US10609141B2 (en) | 2015-07-13 | 2018-01-12 | Methods and apparatuses for cluster switching |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510408179.9A CN106357703B (zh) | 2015-07-13 | 2015-07-13 | 集群切换方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106357703A CN106357703A (zh) | 2017-01-25 |
CN106357703B true CN106357703B (zh) | 2020-03-10 |
Family
ID=57756825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510408179.9A Active CN106357703B (zh) | 2015-07-13 | 2015-07-13 | 集群切换方法与设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10609141B2 (zh) |
CN (1) | CN106357703B (zh) |
WO (1) | WO2017008648A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357703B (zh) | 2015-07-13 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 集群切换方法与设备 |
CN109358812A (zh) * | 2018-10-09 | 2019-02-19 | 郑州云海信息技术有限公司 | 一种集群系统中io请求的处理方法、装置及相关设备 |
CN109840166B (zh) * | 2019-01-14 | 2021-03-30 | 京东数字科技控股有限公司 | 一种跨集群对象存储异步备份方法、装置和系统 |
US11782623B2 (en) * | 2020-12-15 | 2023-10-10 | International Business Machines Corporation | Transferring an operating image into a multi-tenant environment |
CN113282391B (zh) * | 2021-05-21 | 2023-09-26 | 北京京东振世信息技术有限公司 | 集群切换方法、集群切换装置、电子设备及可读存储介质 |
CN113590040B (zh) * | 2021-07-29 | 2024-03-19 | 郑州阿帕斯数云信息科技有限公司 | 数据处理方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756108A (zh) * | 2004-09-29 | 2006-04-05 | 华为技术有限公司 | 主备系统数据同步方法 |
CN101237585A (zh) * | 2007-01-30 | 2008-08-06 | 展讯通信(上海)有限公司 | 一种文本交互显示的方法 |
CN101557320A (zh) * | 2009-05-25 | 2009-10-14 | 杭州华三通信技术有限公司 | 容灾的实现方法及其通信设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949395B2 (en) * | 2004-06-01 | 2015-02-03 | Inmage Systems, Inc. | Systems and methods of event driven recovery management |
CN101227315B (zh) * | 2007-01-17 | 2011-04-20 | 上海市医疗保险信息中心 | 动态服务器集群及其控制方法 |
KR101496412B1 (ko) * | 2008-09-19 | 2015-02-27 | 삼성전자주식회사 | 광대역 무선통신 시스템에서 방송메시지를 동기화하기 위한방법 및 장치 |
US8751451B2 (en) * | 2012-04-12 | 2014-06-10 | Nokia Corporation | Method and apparatus for facilitating switching between devices |
US9189167B2 (en) * | 2012-05-31 | 2015-11-17 | Commvault Systems, Inc. | Shared library in a data storage system |
US9268797B2 (en) * | 2012-12-21 | 2016-02-23 | Zetta Inc. | Systems and methods for on-line backup and disaster recovery |
US9805052B2 (en) * | 2013-01-28 | 2017-10-31 | Netapp, Inc. | Coalescing metadata for mirroring to a remote storage node in a cluster storage system |
US9170928B1 (en) * | 2013-12-31 | 2015-10-27 | Symantec Corporation | I/O scheduling and load balancing across the multiple nodes of a clustered environment |
CN104461774B (zh) * | 2014-11-24 | 2018-01-16 | 华为技术有限公司 | 异步复制方法、装置与系统 |
CN106357703B (zh) | 2015-07-13 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 集群切换方法与设备 |
US10503427B2 (en) * | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
-
2015
- 2015-07-13 CN CN201510408179.9A patent/CN106357703B/zh active Active
-
2016
- 2016-07-04 WO PCT/CN2016/088300 patent/WO2017008648A1/zh active Application Filing
-
2018
- 2018-01-12 US US15/870,572 patent/US10609141B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756108A (zh) * | 2004-09-29 | 2006-04-05 | 华为技术有限公司 | 主备系统数据同步方法 |
CN101237585A (zh) * | 2007-01-30 | 2008-08-06 | 展讯通信(上海)有限公司 | 一种文本交互显示的方法 |
CN101557320A (zh) * | 2009-05-25 | 2009-10-14 | 杭州华三通信技术有限公司 | 容灾的实现方法及其通信设备 |
Also Published As
Publication number | Publication date |
---|---|
US20180139280A1 (en) | 2018-05-17 |
US10609141B2 (en) | 2020-03-31 |
WO2017008648A1 (zh) | 2017-01-19 |
CN106357703A (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106357703B (zh) | 集群切换方法与设备 | |
US9569314B2 (en) | Flash copy for disaster recovery (DR) testing | |
US10474537B2 (en) | Utilizing an incremental backup in a decremental backup system | |
CN107451172B (zh) | 用于版本管理系统的数据同步方法及设备 | |
US9898370B2 (en) | Flash copy for disaster recovery (DR) testing | |
US10620871B1 (en) | Storage scheme for a distributed storage system | |
US10795579B2 (en) | Methods, apparatuses, system and computer program products for reclaiming storage units | |
CN109284066B (zh) | 一种数据处理方法、装置、设备及系统 | |
US20240028568A1 (en) | Data migration method and apparatus, device, distributed system and storage medium | |
US8082230B1 (en) | System and method for mounting a file system on multiple host computers | |
CN113641446A (zh) | 内存快照创建方法、装置、设备及可读存储介质 | |
CN105430314A (zh) | 视频数据存储访问控制方法及装置 | |
US11334456B1 (en) | Space efficient data protection | |
US10620872B2 (en) | Replicating data in a data storage system | |
WO2014111773A1 (en) | Data backup recovery | |
CN115827322A (zh) | 一种云存储数据全量灾备方法及系统 | |
US9235349B2 (en) | Data duplication system, data duplication method, and program thereof | |
US9672118B2 (en) | Collision avoidance using dynamic target volume allocation | |
CN111858175A (zh) | 一种基于移动存储装置备份云平台数据的方法与设备 | |
US10884874B1 (en) | Federated restore of availability group database replicas | |
CN111198783B (zh) | 数据存取方法、装置、系统、设备及存储介质 | |
JP7050707B2 (ja) | ストレージ制御装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム | |
CN112667358A (zh) | 虚拟机快照的管理方法、电子设备、计算机可读介质 | |
CN114185712A (zh) | 一种数据复制方法及装置 | |
CN117873961A (zh) | 内部快照的处理方法、设备及计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |