一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟机高可用恢复处理方法及系统与流程

2022-03-23 06:46:43 来源:中国专利 TAG:


1.本技术涉及虚拟现实技术领域,尤其涉及一种虚拟机高可用恢复处理方法及系统。


背景技术:

2.研究发现,在主流的分布式虚拟化平台上,多个服务器组成了一个服务器集群,如图1,每个服务器都提供硬件资源来运行多个虚拟机,作为计算节点。
3.虚拟机的磁盘数据则是存放于集群的共享存储上,共享存储可能是第三方提供的高性能存储设备,也可能是集群本身运行的分布式存储服务,每个计算节点通过连接专用于存储的交换机来访问共享存储。这样的架构让虚拟机的磁盘数据可以被集群中任何一台主机所访问,也就使虚拟机可以灵活地在任意一台计算节点上开机运行。在这样的一个集群上,虚拟机高可用服务保证了在某个计算节点发生不可预知的故障导致上面的虚拟机无法正常运行时,自动将该计算节点上的虚拟机调度到集群内其他正常运行的节点上开机,恢复虚拟机的业务,来达到尽量缩短虚拟机业务中断时间的目的。
4.在大多数虚拟机高可用架构中,常见虚拟机高可用处理时也会选择故障节点自我隔离处理:例如,如果故障节点上的高可用服务仍然在运行,会检测到自身已经无法访问共享存储。高可用机制会认为本计算节点上的虚拟机会被集群的高可用服务调度到其他正常的主机上开机,因此会强制关闭本地的虚拟机实例或者重启本计算节点,来保证集群中每个虚拟机始终都只有一个实例在运行。在上述的整个高可用服务恢复故障节点虚拟机的流程中,通常假设了两个条件:(1)故障计算节点上的虚拟机都可以成功被调度到另外一台节点上开机;(2)故障计算节点不会在短时间恢复。
5.然而在现实场景中,上面两种条件很多时候是不满足的。这里有个例子,比如存储交换机故障,导致所有计算节点都无法访问共享存储,这个时候有可能所有主机都会触发上述虚拟机高可用正常流程的“故障节点自我隔离”,但是整个集群的节点都无法访问共享存储,因此这个时候虚拟机的业务并不能快速恢复;并且会在共享存储访问正常之后,让虚拟机重新经历一次开机启动才能恢复业务,启动过程的耗时有的时候会长达数十秒甚至几分钟,造成了不必要的虚拟机业务离线时间。
6.除此之外,还存在一些这样类似的场景,例如:故障节点只是短暂地离线并且在上面的虚拟机在其他节点开机之前恢复了。这种场景下,传统的将本地虚拟机实例强制关机的节点自我隔离方式显得有些笨拙,无法重新有效地利用本地已存在的虚拟机实例,对虚拟机业务中断时间造成不必要的延长;再或者是,某些情况下,集群内剩余的硬件资源不足以支撑待恢复的虚拟机所需要的硬件资源量,这个时候虚拟机迟迟无法恢复的情况下如果故障主机恢复,那么集群可重复利用故障主机上还存在的虚拟机实例,快速恢复业务。


技术实现要素:

7.本技术实施例的目的在于提供一种虚拟机高可用恢复处理方法及系统,以解决背
景技术中支指出的虚拟机实例隔离的技术难题。
8.第一方面,本技术实施例的目的在于提供一种虚拟机高可用恢复处理方法,包括如下操作过程:
9.获取计算节点的故障信息,锁定识别当前的故障计算节点;
10.故障计算节点检测自身故障并对当前自身故障进行确定;
11.确定当前自身故障后,当前故障计算节点暂停本地虚拟机实例状态;
12.启动故障计算节点上的高可用服务,所述高可用服务调度故障计算节点所属的虚拟机实例至其他可用计算节点,并且实时判断是否调度成功;
13.如果调度成功,检测虚拟机实例调度的可用计算节点的位置,确定该可用计算节点为目标计算节点;
14.利用目标计算节点实现虚拟机业务恢复操作。
15.优先的,作为一种可实施方案;在启动故障计算节点上的高可用服务之后还包括同时对本地虚拟机其未处理完成的磁盘读写请求进行缓存处理。
16.优先的,作为一种可实施方案;所述对本地虚拟机其未处理完成的磁盘读写请求进行缓存处理,具体包括如下操作:
17.对当前故障计算节点的虚拟机的磁盘读写状态进行检测;
18.若检测当前故障计算节点的虚拟机的磁盘读写正在进行时,则将未完成的磁盘读写请求缓存在本地虚拟机托管器中,并同时对当前故障计算节点的网络状态进行监控;
19.待监控到当前故障计算节点的网络状态恢复正常时,则调用缓存存储在所述本地虚拟机托管器中的当前故障计算节点的虚拟机的磁盘读写请求,继续执行当前故障计算节点的虚拟机的磁盘读写请求。
20.优先的,作为一种可实施方案;所述暂停本地虚拟机实例状态包括:对本地虚拟机的内存状态、处理器状态进行暂停。
21.优先的,作为一种可实施方案;在利用目标计算节点实现虚拟机业务恢复操作,同时还需要对原有的故障计算节点上虚拟机实例实施状态监控处理。
22.优先的,作为一种可实施方案;所述对原有的故障计算节点上虚拟机实例实施状态监控处理之后,若原有的故障计算节点的恢复时间早于虚拟机被调度新节点并开机成功时间,则执行如下操作:
23.原有的故障计算节点继续运行本地暂停的虚拟机实例;
24.故障计算节点实现恢复操作。
25.优先的,作为一种可实施方案;所述对原有的故障计算节点上虚拟机实例实施状态监控处理之后,若原有的故障计算节点的恢复时间晚于虚拟机被调度新节点并开机成功时间,则执行如下操作:
26.对当前故障计算节点上虚拟机实例实施删除清理处理操作。
27.第二方面,本技术实施例的目的在于提供一种虚拟机高可用恢复处理系统,包括:故障获取模块、故障检测模块、暂停处理模块、调度处理模块、目标检测模块、恢复处理模块;
28.其中,故障获取模块,用于获取计算节点的故障信息,锁定识别当前的故障计算节点;
29.故障检测模块,用于故障计算节点检测自身故障并对当前自身故障进行确定;
30.暂停处理模块,用于确定当前自身故障后,当前故障计算节点暂停本地虚拟机实例状态;
31.调度处理模块,用于启动故障计算节点上的高可用服务,所述高可用服务调度故障计算节点所属的虚拟机实例至其他可用计算节点,并且实时判断是否调度成功;
32.目标检测模块,用于在调度成功后,检测虚拟机实例调度的可用计算节点的位置,确定该可用计算节点为目标计算节点;
33.恢复处理模块,用于利用目标计算节点实现虚拟机业务恢复操作。
34.与现有技术相比本技术至少存在如下方面的技术优势:
35.本发明通过优化故障节点的自我隔离策略,将故障节点本地虚拟机进行暂停的方式来保留了虚拟机的运行状态,在保证了虚拟机数据安全的同时,极大地加快了部分高可用的异常场景下虚拟机业务恢复的速度。
36.在具体执行时,通过暂停虚拟机来完成高可用中故障主机的隔离,将故障节点本地虚拟机进行暂停的方式来保留了虚拟机的运行状态,在保证了虚拟机数据安全的同时,极大地加快了部分高可用的异常场景下虚拟机业务恢复的速度,帮助了虚拟机更快地恢复业务。
附图说明
37.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
38.图1为现有技术中的计算节点的工作架构示意图;
39.图2为本技术实施例提供的一种虚拟机高可用恢复处理方法的主要流程操作示意图;
40.图3为本技术实施例提供的一种虚拟机高可用恢复处理方法中的一局部流程操作示意图;
41.图4为本技术实施例提供的一种虚拟机高可用恢复处理方法中的再一局部流程操作示意图;
42.图5为本技术实施例提供的一种虚拟机高可用恢复处理方法中的还一局部流程操作示意图;
43.图6为本技术实施例提供的一种虚拟机高可用恢复处理系统的原理架构示意图。
44.标号:虚拟机高可用恢复处理系统10;故障获取模块11;故障检测模块12;暂停处理模块13、调度处理模块14;目标检测模块15;恢复处理模块16。
具体实施方式
45.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.实施例一
47.本技术实施例的目的在于提供一种虚拟机高可用恢复处理方法及系统,首先对其虚拟机高可用恢复处理方法进行说明:
48.下面将结合具体实施方式,对本技术实施例一提供的一种虚拟机高可用恢复处理方法进行详细的说明,如图2所示,具体步骤如下:
49.步骤s1:获取计算节点的故障信息,锁定识别当前的故障计算节点;
50.步骤s2:故障计算节点检测自身故障并对当前自身故障进行确定;
51.步骤s3:确定当前自身故障后,当前故障计算节点暂停本地虚拟机实例状态;
52.步骤s4:启动故障计算节点上的高可用服务,所述高可用服务调度故障计算节点所属的虚拟机实例至其他可用计算节点,并且实时判断是否调度成功;
53.步骤s5:如果调度成功,检测虚拟机实例调度的可用计算节点的位置,确定该可用计算节点为目标计算节点;
54.步骤s6:利用目标计算节点实现虚拟机业务恢复操作。
55.分析上述虚拟机高可用恢复处理方法的具体技术方案可知:
56.在确定当前自身故障后,当前故障计算节点暂停本地虚拟机实例状态;并且同时启动故障计算节点上的高可用服务,高可用服务调度故障计算节点所属的虚拟机实例至其他可用计算节点,待调度成功后可以利用利用目标计算节点实现虚拟机业务恢复操作。采用上述高可用恢复处理方法可以让本地虚拟机隔离的代价变小,不需要关机,而是暂停保留虚拟机状态,以便于之后复用的时候虚拟机业务更快恢复。
57.优选的,作为一种可实施方案;在启动故障计算节点上的高可用服务之后还包括同时对本地虚拟机其未处理完成的磁盘读写请求进行缓存处理。
58.如图3所示,所述对本地虚拟机其未处理完成的磁盘读写请求进行缓存处理,具体包括如下操作:
59.步骤s41:对当前故障计算节点的虚拟机的磁盘读写状态进行检测;
60.步骤s42:若检测当前故障计算节点的虚拟机的磁盘读写正在进行时,则将未完成的磁盘读写请求缓存在本地虚拟机托管器(hypervisor)中,并同时对当前故障计算节点(即宿主机)的网络状态进行监控;待监控到当前故障计算节点的网络状态恢复正常时,则调用缓存存储在所述本地虚拟机托管器中的当前故障计算节点的虚拟机的磁盘读写请求,继续执行当前故障计算节点的虚拟机的磁盘读写请求。
61.优选的,作为一种可实施方案;所述暂停本地虚拟机实例状态包括:对本地虚拟机的内存状态(内存数据)、处理器状态(各个寄存器的值)进行暂停。
62.需要说明的是,在本技术的具体技术方案中,其在附图3的步骤s3执行过程中,故障节点上的高可用服务检测到自身离线后,不会强制关机本地虚拟机,而是将本地虚拟机暂停,暂停意味着还保留着虚拟机的实例状态,只是上面的业务不再继续进行,因为考虑到虚拟机的磁盘读写的完成在分布式存储下可能会依赖于宿主机的网络;然而在这种宿主机故障的情况下,本发明实施例会在虚拟机被暂停前,将虚拟机因主机故障还未完成的磁盘读写请求缓存在本地,如果之后网络恢复了会将这些请求完成。
63.其中,宿主机的故障主要包括存储网络故障(用于分布式存储通讯的网卡)和本地系统磁盘的故障检测。
64.通过这种方式可以完成更轻量的隔离,在故障主机能够及时恢复的场景下,高可用服务能够将本地虚拟机在之前保存的暂停状态之上继续运行,重新利用这些已存在的虚拟机实例,这个操作省去了虚拟机重复创建和操作系统启动的时间开销,绝大多数情况下可以在一秒之内完成,因此,通过这种方式,虚拟机的业务中断时间可以大幅度减少。
65.优选的,作为一种可实施方案;在利用目标计算节点实现虚拟机业务恢复操作,同时还需要对原有的故障计算节点上虚拟机实例实施状态监控处理。
66.如图4所示,所述对原有的故障计算节点上虚拟机实例实施状态监控处理之后,若原有的故障计算节点的恢复时间早于虚拟机被调度新节点并开机成功时间,则执行如下操作:
67.步骤s7:原有的故障计算节点继续运行本地暂停的虚拟机实例;
68.步骤s8:故障计算节点实现恢复操作。
69.如图5所示,所述对原有的故障计算节点上虚拟机实例实施状态监控处理之后,若原有的故障计算节点的恢复时间晚于虚拟机被调度新节点并开机成功时间,则执行如下操作:
70.步骤s9:对当前故障计算节点上虚拟机实例实施删除清理处理操作。
71.需要说明的是,在另一种情况下,故障节点离线的过程中,上面的虚拟机调度到新的正常节点并开机成功,接着故障节点恢复,那么故障节点的高可用服务可以检测到自身的虚拟机在集群中已经在其他节点开机成功了,本地这些处于暂停的虚拟机实例也就不需要了,那么它就会将本地这些虚拟机清理掉,不再占用主机上的硬件资源。
72.本发明实施例采用的技术方案在故障节点自我隔离过程中选择不关机本地虚拟机实例,而是重复利用并且继续运行原来已经存在的实例,就不需要重新经历一次虚拟机系统的重新启动了,可以让业务更快速地恢复。
73.实施例二
74.如图6所示,本技术实施例二提供一种虚拟机高可用恢复处理系统10,包括:故障获取模块11、故障检测模块12、暂停处理模块13、调度处理模块14、目标检测模块15、恢复处理模块16;
75.其中,故障获取模块11,用于获取计算节点的故障信息,锁定识别当前的故障计算节点;
76.故障检测模块12,用于故障计算节点检测自身故障并对当前自身故障进行确定;
77.暂停处理模块13,用于确定当前自身故障后,当前故障计算节点暂停本地虚拟机实例状态;
78.调度处理模块14,用于启动故障计算节点上的高可用服务,所述高可用服务调度故障计算节点所属的虚拟机实例至其他可用计算节点,并且实时判断是否调度成功;
79.目标检测模块15,用于在调度成功后,检测虚拟机实例调度的可用计算节点的位置,确定该可用计算节点为目标计算节点;
80.恢复处理模块16,用于利用目标计算节点实现虚拟机业务恢复操作。
81.根据本技术实施例的又一方面还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质。可选地,在本技术实施例中,计算机可读介质被设置为存储用于所述处理器执行上述方法的程序代码。
82.本技术实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
83.可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(application specific integrated circuits,asic)、数字信号处理器(digital signal processing,dsp)、数字信号处理设备(dsp device,dspd)、可编程逻辑设备(programmable logic device,pld)、现场可编程门阵列(field-programmable gate array,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
84.对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
85.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
86.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献