CN110275802A - 一种服务切换方法、装置及电子设备 - Google Patents
一种服务切换方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110275802A CN110275802A CN201910568257.XA CN201910568257A CN110275802A CN 110275802 A CN110275802 A CN 110275802A CN 201910568257 A CN201910568257 A CN 201910568257A CN 110275802 A CN110275802 A CN 110275802A
- Authority
- CN
- China
- Prior art keywords
- server
- log
- standby
- local disk
- file system
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- 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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及计算机技术领域,提供一种服务切换方法、装置及电子设备,以解决切换过程中的停服时间内无法响应请求从而影响服务性能的问题。该方法包括:在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器;控制原主服务器停止工作并通过第一服务器对分布式文件系统以及第一服务器的本地磁盘进行写日志;启动至少一个第一备用服务器,通过第一服务器对第一本地磁盘进行写日志;在分布式文件系统的日志分别与第一服务器的本地磁盘的日志和至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作并通过一个第一备用服务器对至少一个第一备用服务器的本地磁盘进行写日志。可确保无停服阶段,提高服务性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种服务切换方法、装置、电子设备及计算机可读存储介质。
背景技术
保证高可用性是分布式服务的一个重要设计目标,大部分的有状态的分布式服务是通过搭建多节点冗余服务的方式作为高可用性的通用解决方案,而分布式一致性复制协议是实现多节点间状态一致的通用方案。目前,分布式一致性复制协议多种多样,伴随着一致性协议的发展,实现这些协议的具体方法也在不断的更新。常常无法避免的是,一个分布式系统在早期采用某种一致性实现方法作为高可用性方案。但随着系统的规模增长等,旧方案已无法适应系统的变化,需对一致性方案进行切换。
然而,目前在进行切换过程中,一般基于旧版本一致性方案的服务停止记录日志,其中,日志也可以称作为操作日志,服务从这个时间点开始处于停服状态,基于新版本一致性方案的服务启动,并加载旧版本一致性方案上记录的日志。加载完毕后,服务在新一致性方案上记录日志,服务恢复更新状态。或者基于旧版本一致性方案的服务停止记录日志,服务从这个时间点开始处于停服状态,基于新版本一致性方案的服务启动,开始加载旧版本一致性方案上记录的日志,加载完毕后,服务在新版本一致性方案上做快照,快照完成后,服务在新一致性方案上记录日志,服务恢复更新状态。即目前为了保证服务的一致性方案在切换的过程中不会出现日志的丢失,都会有停服时间,这段时间窗口可以确保基于新版本一致性方案的服务无遗漏的将旧版本一致性方案中记录的日志完整回溯到元信息集合中。但因为这个时间窗口的存在,服务会存在一个无法响应任何更新请求的停服阶段,影响服务性能。
发明内容
本发明实施例提供一种服务切换方法、装置、电子设备及计算机可读存储介质,以解决现有技术切换过程中的停服时间内无法响应请求从而影响服务性能的问题。
第一方面,本发明实施例提供了一种服务切换方法,所述方法包括:
在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器;
控制所述原主服务器停止工作,并通过所述第一服务器对所述分布式文件系统以及所述第一服务器的本地磁盘进行写日志;
启动至少一个第一备用服务器,通过所述第一服务器对第一本地磁盘进行写日志,所述第一本地磁盘为所述至少一个第一备用服务器的本地磁盘;
在所述分布式文件系统的日志分别与所述第一服务器的本地磁盘的日志以及所述至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制所述第一服务器停止工作,并通过所述至少一个第一备用服务器中的一个第一备用服务器对所述至少一个第一备用服务器的本地磁盘进行写日志。
可选的,所述控制所述第一服务器停止工作之后,还包括:
启动至少一个第二备用服务器,通过所述第二备用服务器对第二本地磁盘进行写日志,其中,所述第二本地磁盘为所述第二备用服务器的本地磁盘。
可选的,所述在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器,包括:
在分布式文件系统对应的原主服务器处在工作状态,且所述分布式文件系统对应的原备用服务器停止工作的情况下,启动第一服务器。
可选的,所述控制所述原主服务器停止工作之后,所述启动至少一个第一备用服务器之前,还包括:
启动所述原备用服务器,通过所述原备用服务器对所述分布式文件系统进行读日志。
可选的,所述控制所述第一服务器停止工作之前,还包括:
控制所述原备用服务器停止工作。
可选的,所述控制所述原主服务器停止工作之后,所述启动至少一个第一备用服务器之前,还包括:
启动第二服务器,通过所述第二服务器对所述分布式文件系统中日志进行快照获得日志快照信息,并将所述日志快照信息传输至所述第一服务器,通过所述第一服务器将所述日志快照信息写入第一服务器的本地磁盘。
可选的,所述启动至少一个第一备用服务器之后,还包括:
通过所述第一服务器将所述日志快照信息写入所述至少一个第一备用服务器的本地磁盘。
第二方面,本发明实施例还提供一种服务切换装置,所述装置包括:
第一启动模块,用于在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器;
第一控制模块,用于控制所述原主服务器停止工作,并通过所述第一服务器对所述分布式文件系统以及所述第一服务器的本地磁盘进行写日志;
第二启动模块,用于启动至少一个第一备用服务器,通过所述第一服务器对第一本地磁盘进行写日志,所述第一本地磁盘为所述至少一个第一备用服务器的本地磁盘;
第二控制模块,用于在所述分布式文件系统的日志分别与所述第一服务器的本地磁盘的日志以及所述至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制所述第一服务器停止工作,并通过所述至少一个第一备用服务器中的一个第一备用服务器对所述至少一个第一备用服务器的本地磁盘进行写日志。
可选的,所述第二启动模块,还应用于在所述第二控制模块控制所述第一服务器停止工作之后,启动至少一个第二备用服务器,通过所述第二备用服务器对第二本地磁盘进行写日志,其中,所述第二本地磁盘为所述第二备用服务器的本地磁盘。
可选的,所述第一启动模块,用于在分布式文件系统对应的原主服务器处在工作状态,且所述分布式文件系统对应的原备用服务器停止工作的情况下,启动第一服务器。
可选的,所述第二启动模块,用于在所述第一控制模块控制所述原主服务器停止工作之后,所述第二启动模块启动所述至少一个第一备用服务器之前,启动所述原备用服务器,通过所述原备用服务器对所述分布式文件系统进行读日志。
可选的,所述第一控制模块,用于在所述控制所述第一服务器停止工作之前,控制所述原备用服务器停止工作。
可选的,所述装置,还包括:
第三启动模块,用于所述第一控制模块控制所述原主服务器停止工作之后,所述第二启动模块启动至少一个第一备用服务器之前,启动第二服务器,通过所述第二服务器对所述分布式文件系统中日志进行快照获得日志快照信息,并将所述日志快照信息传输至所述第一服务器,通过所述第一服务器将所述日志快照信息写入第一服务器的本地磁盘。
可选的,所述第二启动模块启动至少一个第一备用服务器之后,通过所述第一服务器将所述日志快照信息写入所述至少一个第一备用服务器的本地磁盘。
第三方面,本发明实施例还提供一种电子设备,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的服务切换方法中的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的服务切换方法中的步骤。
本申请实施例的服务切换方法中,由于在切换过程中,是在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器,并在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作,并通过至少一个第一备用服务器中的一个第一备用服务器对至少一个第一备用服务器的本地磁盘进行写日志。如此,即使原主服务器停止工作,第一服务器已启动,即可通过第一服务器对分布式文件系统以及第一服务器的本地磁盘进行写日志,确保切换过程中日志的完整性的同时无停服阶段,提高在切换过程中的服务性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的服务切换方法的流程图之一;
图2是本发明实施例提供的服务切换方法的流程图之二;
图3是基于分布式文件系统的一致性方案原理图;
图4是本发明实施例提供的服务切换方法的原理图之一;
图5是本发明实施例提供的服务切换方法的原理图之二;
图6是本发明实施例提供的服务切换方法的原理图之三;
图7是本发明实施例提供的服务切换方法的原理图之四;
图8是本发明实施例提供的服务切换方法的原理图之五;
图9是本发明实施例提供的服务切换方法的原理图之六;
图10是本发明实施例提供的服务切换方法的原理图之七;
图11是本发明实施例提供的服务切换方法的原理图之八;
图12是本发明实施例提供的服务切换方法的原理图之九;
图13是本发明实施例提供的服务器切换装置的示意图;
图14是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,在一个实施例中,提供了一种服务切换方法,可应用于控制平台,该方法包括:
步骤101:在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器。
在通过分布式文件系统实现一致性过程中,涉及原主服务器(即分布式文件系统对应的主服务器,为区分切换后的主服务器,此处利用原主服务器),原主服务器可对分布式文件系统进行写日志,即将日志写入分布式文件系统,更新分布式文件系统中的日志。分布式文件系统还可涉及原备用服务器(即分布式文件系统对应的备用服务器,为区分切换过程中以及切换后的备用服务器,此处利用原备用服务器),原备用服务器可对分布式文件系统进行读日志,即原备用服务器可读取分布式文件系统的日志,在主服务器更新分布式文件中的日志,原备用服务器可读取更新后的日志,从而通过分布式文件系统实现日志同步,即实现日志一致性。
在本实施例的切换服务过程中,若控制平台在接收到切换指令,则向第一服务器发送启动指令,以启动第一服务器,即第一服务器接收到启动指令后启动工作,此时,可通过第一服务器对分布式文件系统进行读日志,即可读取分布式文件系统的日志。
步骤102:控制原主服务器停止工作,并通过第一服务器对分布式文件系统以及第一服务器的本地磁盘进行写日志。
启动第一服务器后,即可控制原主服务器停止工作,例如,控制平台可向原主服务器发送停止指令,以使原主服务器停止工作,原主服务器在接收到停止指令后停止工作。与此同时,可将第一服务器确定为新的主服务器,如此可通过第一服务器对分布式文件系统进行写日志以对及第一服务器的本地磁盘进行写日志,即该第一服务器为双写版本的服务器,可以同时对分布式文件系统以及对第一服务器的本地磁盘进行写日志
步骤103:启动至少一个第一备用服务器,通过第一服务器对第一本地磁盘进行写日志。
其中,第一本地磁盘为至少一个第一备用服务器的本地磁盘。在控制原主服务器停止工作,并将第一服务器确定为新的主服务器之后,可启动至少一个第一备用服务器,如此,由于第一服务器为新的主服务器,可通过第一服务器对第一本地磁盘进行写日志,即第一服务器可将日志写入上述至少一个第一备用服务器中每个第一备用服务器的本地磁盘,同时,至少一个第一备用服务器可对第一本地磁盘进行读日志,即可通过第一备用服务器对自身的本地磁盘进行读日志,如此,即使第一服务器对第一本地磁盘进行写日志,更新第一本地磁盘的日志,第一备用服务器也可读到对应自身本地磁盘更新后的日志,实现第一服务器与第一备用服务器之间的日志同步。
在一个示例中,可启动偶数个(例如,两个)第二备用服务器,如此,偶数个第二备用服务器与第一服务器构成奇数个服务器,便于选主过程中的投票。第一服务器可对偶数个第二备用服务器的本地磁盘进行写日志,且通过偶数个第二备用服务器可分别对自身的本地磁盘进行读日志。可以理解,此时不为至少第一个备用服务器提供选主机制,即此时至少一个备用服务器不参与选主。
步骤104:在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作,并通过至少一个第一备用服务器中的一个第一备用服务器对至少一个第一备用服务器的本地磁盘进行写日志。
在切换前分布式文件系统则已有旧日志,旧日志以及在切换过程中分布式文件系统产生的新日志均需同步到第一服务器的本地磁盘和至少一个备用服务器的本地磁盘,如此,可避免切换过程中出现日志遗漏以确保日志同步。在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,可控制第一服务器停止工作,即新的主服务器停止工作,至少一个备用服务器可参与选主(即通过选主过程从至少一个备用服务器可确定新的主服务器),即可将至少一个第一备用服务器中的一个第一备用服务器作为新的主服务器,通过上述新的服务器的本地磁盘进行写日志,如此,处在工作状态的服务器为至少一个第一备用服务器,其中一个第一备用服务器为新的主服务器,通过新的主服务器可对每个第一备用服务器的本地磁盘进行写日志,其他第一备用服务器(即至少一个备用第一服务器中除上述一个第一备用服务器之外的第一备用服务器)可分别对自身的本地磁盘进行读日志,即通过其他第一备用服务器分别对自身的本地磁盘进行读日志,实现日志同步,即实现日志一致性,如此,服务切换完成,也可以理解为一致性方案切换完成。
本申请实施例的服务切换方法中,由于在切换过程中,是在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器,并在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作,并通过至少一个第一备用服务器中的一个第一备用服务器对至少一个第一备用服务器的本地磁盘进行写日志。如此,即使原主服务器停止工作,第一服务器已启动,即可通过第一服务器对分布式文件系统以及第一服务器的本地磁盘进行写日志,确保切换过程中日志的完整性的同时无停服阶段,提高在切换过程中的服务性能。
在一个实施例中,在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作后,还包括:更新服务地址列表,得到更新后的服务地址列表。其中,更新后的服务地址列表包括至少一个第一备用服务器的地址。
第一服务器已停止工作,无法对外提供服务,是通过至少一个第一备用服务器对外提供服务,例如,进行写日志的至少一个第一备用服务器中的一个第一备用服务器可对外提供写服务,其他第一备用服务器可提供读服务。即需要对服务地址列表进行更新,即变更对外提供服务的服务器的地址列表,即使第一服务器停止工作,通过第一备用服务器能对外正常提供服务。
在一个实施例中,控制第一服务器停止工作之后,还包括:启动至少一个第二备用服务器,通过第二备用服务器对第二本地磁盘进行写日志,其中,第二本地磁盘为第二备用服务器的本地磁盘。
第二备用服务器的数量与第一备用服务器的数量之和为奇数,如此便于选主过程中的投票。例如,第一备用服务器的数量为偶数个,则第二备用服务器的数量为奇数个,即可启动奇数个第二备用服务器。每个第二备用服务器对自身的本地磁盘进行写日志。另外,至少一个第一备用服务器中的一个第一备用服务器不仅可对至少一个第一备用服务器的本地磁盘进行写日志,也可对至少一个第二备用服务器的本地磁盘进行写日志,即启动至少一个第二备用服务器后,可通过上述至少一个第一备用服务器中的一个第一备用服务器对至少一个第二备用服务器的本地磁盘进行写日志,如此,上述至少一个第一备用服务器中的一个第一备用服务器对至少一个第二备用服务器的本地磁盘的日志更新后,至少一个第二备用服务器可对自身的本地磁盘更新后的日志进行读取,实现日志同步。
在一个实施例中,在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器,包括:在分布式文件系统对应的原主服务器处在工作状态,且分布式文件系统对应的原备用服务器停止工作的情况下,启动第一服务器。
分布式文件系统涉及原主服务器外,还涉及有原备用服务器,在切换过程中,在启动第一服务器之前,可先控制原备用服务器停止工作,备用服务器停止对分布式文件系统读日志,减少资源浪费。在备用服务器停止工作,但原主服务器还在工作的情况下,启动第一服务器,然后在停掉原主服务器。即在切换过程中,先从停掉备用服务器开始,即使新启动的第一服务器出现宕机,不能正确提供服务,原主服务器不受影响,仍然可以进行写日志。
在一个实施例中,控制原主服务器停止工作之后,启动至少一个第一备用服务器之前,还包括:启动原备用服务器,通过原备用服务器对分布式文件系统进行读日志。
由于在启动第一服务器之前先停止了原备用服务器的工作,在原主服务器停止工作之后,还可将原备用服务器恢复工作,通过原备用服务器可继续对分布式文件系统进行读日志。一旦第一服务器出现了问题,还有一个分布式文件系统的原备用服务器,该原备用服务器可及时抢主成为主服务器,可实现服务短时间回滚的目的,确保在切换过程中出现问题时仍然能通过原备用服务器提供服务。
在一个实施例中,控制第一服务器停止工作之前,还包括:控制原备用服务器停止工作。
可以理解为,在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作之前,控制原备用服务器停止工作。在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作之前,由于分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志已同步,则可控制原备用服务器停止工作,减少资源的浪费。
在一个实施例中,控制原主服务器停止工作之后,启动至少一个第一备用服务器之前,还包括:启动第二服务器,通过第二服务器对分布式文件系统中日志进行快照获得日志快照信息,并将日志快照信息传输至第一服务器,通过第一服务器将日志快照信息写入第一服务器的本地磁盘。
由于在分布式文件系统在启动至少一个第一备用服务器之前已有日志,这些日志需同步至第一服务器能进行写日志的本地磁盘,在本实施例中,通过启动第二服务器,通过第二服务器对分布式文件系统中日志进行快照获得日志快照信息并将日志快照信息传输至第一服务器,第一服务器将日志快照信息写入第一服务器的本地磁盘,从而实现将启动至少一个第一备用服务器之前的分布式文件系统的日志同步到第一服务器的本地磁盘,确保第一服务器的本地磁盘中分布式文件系统的日志的完整性。
在一个实施例中,启动至少一个第一备用服务器之后,还包括:通过第一服务器将日志快照信息写入至少一个第一备用服务器的本地磁盘。
在启动至少一个第一备用服务器之后,还可通过第一服务器将日志快照信息写入至少一个第一备用服务器的本地磁盘,即不但可将日志快照信息写入第一服务器的本地磁盘,还可写入至少一个第一备用服务器的本地磁盘,使至少一个第一备用服务器的本地磁盘能拥有分布式文件系统的日志,确保至少一个第一备用服务器的本地磁盘中分布式文件系统的日志的完整性。
在一个实施例中,启动至少一个第一备用服务器之后,还包括:通过第二服务器将日志快照信息分别传输至少一个第一备用服务器。
如此,在每个第一备用服务器拥有分布式系统的日志对应的日志快照信息,后续第一备用服务器成为主服务器后,若需要,可将日志快照信息写入对对应的本地磁盘,实现日志同步。
如图2所示,以一个具体实施例对上述服务切换过程加以具体说明,具体以从分布式文件系统(DFS)切换至Raft(一种一致性算法)为例进行说明,网络文件系统(NFS)为分布式文件系统的一种。具体步骤如下:
步骤201:控制原备用服务器停止工作。
如图3所示,为基于分布式文件系统的一致性方案原理图,原主服务器在接收客户端的请求,若原主服务器根据请求需对分布式文件系统中的文件进行更新,则原主服务器的内存会更新元数据,原主服务器将更新对应的操作日志写入到分布式文件系统中,更新分布式文件系统的日志。例如,主服务器根据请求需在分布式文件系统中创建一个文件,则主服务器创建一个文件并写入分布式文件系统,而且将创建该文件的操作日志写入分布式文件系统。原备用服务器可读取分布式文件系统的日志,即在上述创建文件的操作日志后,原备用服务器可读取该操作日志,即可获知分布式文件系统中文件有更新,并可读取新建的文件。
在一个示例中,上述日志可以理解为操作日志,只要分布式文件系统对应的原主服务器的内存中元数据有更新,则原主服务器可在分布式文件系统中写入对应的操作日志。
如图4所示,在服务切换过程中,首先从停止分布式文件系统的备用服务器开始,即先控制原备用服务器停止工作,原主服务器正常工作,即可对分布式文件系统进行写日志。
步骤202:启动第一服务器。
如图5所示,在原备用服务器停止工作,但原主服务器处在工作状态的情况下,启动第一服务器,通过第一服务器可对分布式文件系统进行读日志。
步骤203:控制原主服务器停止工作,第一服务器切换为新的主服务器。
如图6所示,通过第一服务器可同时对分布式文件系统以及自身的本地磁盘进行写日志,可以理解,通过第一服务器可同时写分布式文件系统以及Raft日志。
在一个示例中,只要新的主服务器的内存中元数据有更新,则新的主服务器可在分布式文件系统以及新的服务器自身的本地磁盘中写入对应的操作日志。后续启动第一备用服务器后,新的服务器还可将操作日志写入第一备用服务器的本地磁盘。
步骤204:启动原备用服务器。
如图7所示,第一服务器切换为新的主服务器后,可启动原备用服务器,通过原备用服务器对分布式文件系统进行读日志。
步骤205:启动第二服务器,通过第二服务器对分布式文件系统中日志进行快照获得日志快照信息,并将日志快照信息传输至第一服务器,通过第一服务器将日志快照信息写入第一服务器的本地磁盘。
如图8所示,Snapshot为一种快照技术,通过Snapshot快照技术对分布式文件系统已有的日志进行快照处理,得到日志快照信息,有利于在第一服务器的本地磁盘同步分布式文件系统中的日志。
步骤206:启动两个第一备用服务器,通过两个第一备用服务器分别对自身的本地磁盘进行读日志。
如图8所示,此时,第一备用服务器为只读服务器,对自身的本地磁盘进行读日志,且Raft的主服务(写服务)会被限制(例如,可以是人工限制)在第一服务器上,即只能通过第一服务器进行写日志,主服务目前不会发生切换,相当于此时Raft不提供选主机制,以确保整个服务切换过程的正常进行。
步骤207:在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及两个第一备用服务器的本地磁盘的日志同步的情况下,控制原备用服务器停止工作,以及控制第一服务器停止工作,并通过两个第一备用服务器中的一个第一备用服务器对两个第一备用服务器的本地磁盘进行写日志。
如图9所示,在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及两个第一备用服务器的本地磁盘的日志同步的情况下,可向第一服务器发送切换指令(Switch),控制一服务器停止工作,如图10所示。也可控制原备用服务器停止工作,如图10所示。另外还可设置两个第一备用服务器参与选主,即通过选主过程从两个第一备用服务器中选择一个作为新的主服务器,即将两个第一备用服务器的一个第一备用服务器切换为主服务器。通过新的主服务器对两个第一备用服务器的本地磁盘进行写日志,通过第二服务器还可对对两个第一备用服务器中除新的主服务器之外的第一备用服务器进行读日志,如图11所示。
在一个示例中,只要上述两个第一备用服务器的一个第一备用服务器的内存中元数据有更新,则上述一个第一备用服务器可在自身的本地磁盘中写入对应的操作日志,并可在两个第一备用服务器的另一个备用服务器的本地磁盘写入该操作日志,后续启动第二备用服务器后,上述一个第一备用服务器还可将操作日志写入第一备用服务器的本地磁盘。
步骤208:启动一个第二备用服务器,通过第二备用服务器对自身的本地磁盘进行写日志。
如图12所示,此时,新的服务器(两个第一备用服务器中的一个第一备用服务器)、两个第一备用服务器中的另一个第一备用服务器以及第二备用服务器工作,新的备用服务器负责对自身的本地磁盘、另一个第一备用服务器的本地磁盘以及第二备用服务器的本地磁盘进行写日志,另一个第一备用服务器对自身的本地磁盘进行读日志,第二备用服务器对自身的本地磁盘进行写日志。即整个服务器集群回复正常,通过上述新的服务器、另一个第一备用服务器以及第二备用服务器的上述服务,可实现日志一致性,从而实现一致性方案的切换。
通过上述服务切换方法,通过第一服务器双写日志的方式(即可同时写分布式文件系统以及本地磁盘的日志)进行切换,现有切换方法中必须停服进行有损切换的缺点,即是通过在原主服务器停止工作前,启动第一服务器,并在原主服务器停止工作时可第一服务器对分布式文件系统以及第一服务器的本地磁盘进行写日志(即双写日志),确保在切换过程中的日志无遗漏,而且无停服时间,提高系统性能。同时,本实施例的切换方法也给了新方案足够的验证时间,避免了切换后新方案后可能带来的未知风险。即使在切换过程中第一服务器出现问题,可以无损的回滚到原备用服务器上,这降低了切换失败所带来的风险。
如图13所示,本发明还提供一个实施例的服务切换装置1300,可应用与控制平台,该装置包括:
第一启动模块,用于在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器;
第一控制模块,用于控制原主服务器停止工作,并通过第一服务器对分布式文件系统以及第一服务器的本地磁盘进行写日志;
第二启动模块,用于启动至少一个第一备用服务器,通过第一服务器对第一本地磁盘进行写日志,第一本地磁盘为至少一个第一备用服务器的本地磁盘;
第二控制模块,用于在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作,并通过至少一个第一备用服务器中的一个第一备用服务器对至少一个第一备用服务器的本地磁盘进行写日志。
在一个实施例中,上述装置还包括更新模块,用于第二控制模块在分布式文件系统的日志分别与第一服务器的本地磁盘的日志以及至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制第一服务器停止工作后,更新服务地址列表,得到更新后的服务地址列表。其中,更新后的服务地址列表包括至少一个第一备用服务器的地址。
在一个实施例中,第二启动模块,还应用于在第二控制模块控制第一服务器停止工作之后,启动至少一个第二备用服务器,通过第二备用服务器对第二本地磁盘进行写日志,其中,第二本地磁盘为第二备用服务器的本地磁盘。
在一个实施例中,第一启动模块,用于在分布式文件系统对应的原主服务器处在工作状态,且分布式文件系统对应的原备用服务器停止工作的情况下,启动第一服务器。
在一个实施例中,第二启动模块,用于在第一控制模块控制原主服务器停止工作之后,第二启动模块启动至少一个第一备用服务器之前,启动原备用服务器,通过原备用服务器对分布式文件系统进行读日志。
在一个实施例中,第一控制模块,用于在控制第一服务器停止工作之前,控制原备用服务器停止工作。
在一个实施例中,上述装置,还包括:
第三启动模块,用于第一控制模块控制原主服务器停止工作之后,第二启动模块启动至少一个第一备用服务器之前,启动第二服务器,通过第二服务器对分布式文件系统中日志进行快照获得日志快照信息,并将日志快照信息传输至第一服务器,通过第一服务器将日志快照信息写入第一服务器的本地磁盘。
在一个实施例中,第二启动模块启动至少一个第一备用服务器之后,通过第一服务器将日志快照信息写入至少一个第一备用服务器的本地磁盘。
本发明实施例提供的电子设备中的技术特征与上述服务切换方法中的技术特征对应,通过电子设备实现上述服务切换方法的各个过程,并能得到相同的效果,为避免重复,在此不再赘述。
如图14所示,本发明实施例还提供一种电子设备1400,包括处理器1401和存储器1402,存储器1402存储有可在处理器1401上运行的计算机程序,该计算机程序被处理器1401执行时实现上述服务切换方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述服务切换方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者电子设备中还存在另外的相同要素。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台电子设备(可以是手机,计算机,电子设备,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (16)
1.一种服务切换方法,其特征在于,所述方法包括:
在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器;
控制所述原主服务器停止工作,并通过所述第一服务器对所述分布式文件系统以及所述第一服务器的本地磁盘进行写日志;
启动至少一个第一备用服务器,通过所述第一服务器对第一本地磁盘进行写日志,所述第一本地磁盘为所述至少一个第一备用服务器的本地磁盘;
在所述分布式文件系统的日志分别与所述第一服务器的本地磁盘的日志以及所述至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制所述第一服务器停止工作,并通过所述至少一个第一备用服务器中的一个第一备用服务器对所述至少一个第一备用服务器的本地磁盘进行写日志。
2.根据权利要求1所述的方法,其特征在于,所述控制所述第一服务器停止工作之后,还包括:
启动至少一个第二备用服务器,通过所述第二备用服务器对第二本地磁盘进行写日志,其中,所述第二本地磁盘为所述第二备用服务器的本地磁盘。
3.根据权利要求1所述的方法,其特征在于,所述在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器,包括:
在分布式文件系统对应的原主服务器处在工作状态,且所述分布式文件系统对应的原备用服务器停止工作的情况下,启动第一服务器。
4.根据权利要求3所述的方法,其特征在于,所述控制所述原主服务器停止工作之后,所述启动至少一个第一备用服务器之前,还包括:
启动所述原备用服务器,通过所述原备用服务器对所述分布式文件系统进行读日志。
5.根据权利要求4所述的方法,其特征在于,所述控制所述第一服务器停止工作之前,还包括:
控制所述原备用服务器停止工作。
6.根据权利要求1所述的方法,其特征在于,所述控制所述原主服务器停止工作之后,所述启动至少一个第一备用服务器之前,还包括:
启动第二服务器,通过所述第二服务器对所述分布式文件系统中日志进行快照获得日志快照信息,并将所述日志快照信息传输至所述第一服务器,通过所述第一服务器将所述日志快照信息写入第一服务器的本地磁盘。
7.根据权利要求6所述的方法,其特征在于,所述启动至少一个第一备用服务器之后,还包括:
通过所述第一服务器将所述日志快照信息写入所述至少一个第一备用服务器的本地磁盘。
8.一种服务切换装置,其特征在于,所述装置包括:
第一启动模块,用于在分布式文件系统对应的原主服务器处在工作状态的情况下,启动第一服务器;
第一控制模块,用于控制所述原主服务器停止工作,并通过所述第一服务器对所述分布式文件系统以及所述第一服务器的本地磁盘进行写日志;
第二启动模块,用于启动至少一个第一备用服务器,通过所述第一服务器对第一本地磁盘进行写日志,所述第一本地磁盘为所述至少一个第一备用服务器的本地磁盘;
第二控制模块,用于在所述分布式文件系统的日志分别与所述第一服务器的本地磁盘的日志以及所述至少一个第一备用服务器的本地磁盘的日志同步的情况下,控制所述第一服务器停止工作,并通过所述至少一个第一备用服务器中的一个第一备用服务器对所述至少一个第一备用服务器的本地磁盘进行写日志。
9.根据权利要求8所述的装置,其特征在于,所述第二启动模块,还应用于在所述第二控制模块控制所述第一服务器停止工作之后,启动至少一个第二备用服务器,通过所述第二备用服务器对第二本地磁盘进行写日志,其中,所述第二本地磁盘为所述第二备用服务器的本地磁盘。
10.根据权利要求8所述的装置,其特征在于,所述第一启动模块,用于在分布式文件系统对应的原主服务器处在工作状态,且所述分布式文件系统对应的原备用服务器停止工作的情况下,启动第一服务器。
11.根据权利要求10所述的装置,其特征在于,所述第二启动模块,用于在所述第一控制模块控制所述原主服务器停止工作之后,所述第二启动模块启动所述至少一个第一备用服务器之前,启动所述原备用服务器,通过所述原备用服务器对所述分布式文件系统进行读日志。
12.根据权利要求11所述的装置,其特征在于,所述第一控制模块,用于在所述控制所述第一服务器停止工作之前,控制所述原备用服务器停止工作。
13.根据权利要求8所述的装置,其特征在于,还包括:
第三启动模块,用于所述第一控制模块控制所述原主服务器停止工作之后,所述第二启动模块启动至少一个第一备用服务器之前,启动第二服务器,通过所述第二服务器对所述分布式文件系统中日志进行快照获得日志快照信息,并将所述日志快照信息传输至所述第一服务器,通过所述第一服务器将所述日志快照信息写入第一服务器的本地磁盘。
14.根据权利要求13所述的装置,其特征在于,所述第二启动模块启动至少一个第一备用服务器之后,通过所述第一服务器将所述日志快照信息写入所述至少一个第一备用服务器的本地磁盘。
15.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上权利要求1-7中任意一项所述的服务切换方法中的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上权利要求1-7中任意一项所述的服务切换方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910568257.XA CN110275802A (zh) | 2019-06-27 | 2019-06-27 | 一种服务切换方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910568257.XA CN110275802A (zh) | 2019-06-27 | 2019-06-27 | 一种服务切换方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110275802A true CN110275802A (zh) | 2019-09-24 |
Family
ID=67963620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910568257.XA Pending CN110275802A (zh) | 2019-06-27 | 2019-06-27 | 一种服务切换方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110275802A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240899A (zh) * | 2020-01-10 | 2020-06-05 | 北京百度网讯科技有限公司 | 状态机复制方法、装置、系统及存储介质 |
-
2019
- 2019-06-27 CN CN201910568257.XA patent/CN110275802A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240899A (zh) * | 2020-01-10 | 2020-06-05 | 北京百度网讯科技有限公司 | 状态机复制方法、装置、系统及存储介质 |
CN111240899B (zh) * | 2020-01-10 | 2023-07-25 | 北京百度网讯科技有限公司 | 状态机复制方法、装置、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220075698A1 (en) | Method and Apparatus for Redundancy in Active-Active Cluster System | |
US9594522B2 (en) | Backup method and information processing apparatus | |
KR101231563B1 (ko) | 실시간 데이터 복제 | |
CN104794028B (zh) | 一种容灾处理方法、装置、主用数据中心和备用数据中心 | |
CN109831500A (zh) | Kubernetes集群中配置文件与Pod的同步方法 | |
US8862541B1 (en) | N-site asynchronous replication | |
CN103995868B (zh) | 面向分布式系统的全局事务管理器及事务处理方法 | |
CN108932338A (zh) | 数据更新方法、装置、设备和介质 | |
CN106790713B (zh) | 云计算环境下的跨数据中心虚拟机迁移方法 | |
CN108228397A (zh) | 一种集群间跨机房同步的方法和装置 | |
CN106919473A (zh) | 一种数据灾备系统及业务处理方法 | |
CN106919465A (zh) | 用于存储系统中多重数据保护的方法和装置 | |
EP4060514A1 (en) | Distributed database system and data disaster backup drilling method | |
CN103544057A (zh) | 数据业务系统的切换方法和切换系统 | |
CN108833164B (zh) | 服务器控制方法、装置、电子设备及存储介质 | |
CN104462342B (zh) | 数据库快照同步处理方法及装置 | |
CN105843560A (zh) | 一种维护主从式双控软Raid6一致性的方法及系统 | |
CN110489491B (zh) | 一种适用于a/b网双集群的全量数据同步装置 | |
CN110275802A (zh) | 一种服务切换方法、装置及电子设备 | |
US11334444B2 (en) | Method, device and computer program product for managing a storage system | |
CN105426268B (zh) | 一种防止继电保护装置断电时文件系统损坏的方法 | |
CN107621996A (zh) | 缓存备份方法、故障处理方法、系统、装置及存储介质 | |
CN109508223A (zh) | 一种虚拟机批量创建方法、系统及设备 | |
CN106294033A (zh) | 一种多机房缓存同步功能的测试方法及装置 | |
CN108011869A (zh) | 轨道交通综合监控集中式权限管理与分布式权限校验方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |