CN111897626A - 一种面向云计算场景的虚拟机高可靠***和实现方法 - Google Patents
一种面向云计算场景的虚拟机高可靠***和实现方法 Download PDFInfo
- Publication number
- CN111897626A CN111897626A CN202010644139.5A CN202010644139A CN111897626A CN 111897626 A CN111897626 A CN 111897626A CN 202010644139 A CN202010644139 A CN 202010644139A CN 111897626 A CN111897626 A CN 111897626A
- Authority
- CN
- China
- Prior art keywords
- control component
- mode
- virtual machine
- abnormal condition
- recovery
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000002159 abnormal effect Effects 0.000 claims abstract description 100
- 238000001514 detection method Methods 0.000 claims abstract description 35
- 238000011084 recovery Methods 0.000 claims description 81
- 238000012423 maintenance Methods 0.000 claims description 34
- 230000009471 action Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 18
- 230000001960 triggered effect Effects 0.000 claims description 11
- 238000013461 design Methods 0.000 abstract description 10
- 230000000875 corresponding effect Effects 0.000 description 41
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 230000000712 assembly Effects 0.000 description 6
- 238000000429 assembly Methods 0.000 description 6
- 210000004556 brain Anatomy 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000011065 in-situ storage Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种面向云计算场景的虚拟机高可靠***和实现方法,该虚拟机高可靠***包括控制节点和多个计算节点,控制节点上设置有至少一个控制组件,计算节点上设置有执行组件;执行组件用于对其所在的计算节点进行异常检测,并向控制组件上报相应的检测信息;控制组件用于根据检测信息判断相应的计算节点是否存在异常,若存在异常,则触发告警并根据***的HA模式对异常情况进行恢复。在本发明中,采用多种HA模式设计,可以针对不同的应用场景或不同的要求灵活配置相应的HA模式,也可以在不同的HA模式之间灵活切换。
Description
技术领域
本发明属于云计算领域,更具体地,涉及一种面向云计算场景的虚拟机高可靠***和实现方法。
背景技术
在云计算领域,通常将所提供服务划分为三层:基础设施即服务IAAS(Infrastructure as a Service,简写为IAAS),平台即服务PAAS(Platform as aService,简写为PAAS),软件即服务SAAS(Software as a Service,简写为SAAS)。在基础设施服务层,提供给消费者的服务主要是对所有物理基础设施的利用,主要可分为计算、存储、网络资源的利用,通常以虚拟机的形态提供给消费者。
在IAAS云平台***中,虚拟机HA(High Available,简写为HA),即虚拟机高可靠技术是保证虚拟机稳定,持续运行的关键技术,属于云平台基础核心能力之一,通过虚拟机高可靠技术,在云平台使用的计算服务器或者网络***发生软硬件故障时,通过检测机制进行异常识别,并根据预先设置异常场景下相应动作策略,将计算服务器上运行的虚拟机自动迁移到其他正常服务器以保障虚拟机持续正常运行。
目前,业界通常的HA都是由***根据异常情况进行自动判断执行HA动作。但是随着云平台在越来越多的不同行业领域应用,根据云数据中心内使用场景以及运维等级要求的不同,对于HA能力也提出了更高的要求,不再仅局限于全自动化一种方式,当前技术存在的主要问题如下:仅支持一种单一HA模式;由于高度自动化,容易使得设计实现中的缺陷被放大,例如,异常场景误判,影响整个***的正常运行,也限制了HA技术的进一步推广使用。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种面向云计算场景的虚拟机高可靠***和实现方法,其目的在于采用多种HA模式设计,可以针对不同的应用场景或不同的要求灵活配置相应的HA模式,也可以在不同的HA模式之间灵活切换,由此解决高度自动化所带来的异常场景误判的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种面向云计算场景的虚拟机高可靠***,所述虚拟机高可靠***包括控制节点和多个计算节点,所述控制节点上设置有至少一个控制组件,所述计算节点上设置有执行组件;
所述执行组件用于对其所在的计算节点进行异常检测,并向所述控制组件上报相应的检测信息;
所述控制组件用于根据所述检测信息判断相应的计算节点是否存在异常,若存在异常,则触发告警并根据***的HA模式对异常情况进行恢复;
其中,所述HA模式包括手动模式、半自动模式和全自动模式,所述HA模式可根据实际需求选择性进行配置;
当所述HA模式为手动模式时,所述控制组件用于接收运维人员的恢复策略,根据所述恢复策略进行恢复;
当所述HA模式为半自动模式时,所述控制组件用于先接收运维人员的恢复策略,根据所述恢复策略进行恢复,在预设的时间阈值内,若异常情况没有解除,则由所述控制组件自动进行异常情况的恢复;
当所述HA模式为全自动模式时,由所述控制组件自动进行异常情况的恢复。
优选地,所述控制组件还用于获取全部计算节点所对应的主机名称,针对每一计算节点,根据主机名称和模型表所需要的参数进行HA建模。
优选地,所述控制节点上设置有一个主控制组件和两个备用控制组件,在所述主控制组件故障时,由所述备用控制组件对外提供高可靠服务。
优选地,所述主控制组件用于向ETCD集群注册服务锁,并周期性地更新所述服务锁;
其中,所述服务锁超过设定的生命周期后,所述服务锁自动被释放,所述备用控制组件自动执行抢锁动作,进而触发所述备用控制组件升级为主控制组件。
优选地,所述虚拟机高可靠***包括多个应用程序接口,多个所述应用程序接口设置在所述控制节点上,以对外提供相应的服务;
所述应用程序接口包括HA对象列表查询接口、HA对象查询接口、HA触发接口、HA暂停接口、HA恢复接口和HA历史任务查询接口。
按照本发明的另一方面,提供了一种面向云计算场景的虚拟机高可靠的实现方法,所述实现方法应用于虚拟机高可靠***,所述虚拟机高可靠***包括控制节点和多个计算节点,所述控制节点上设置有至少一个控制组件,所述计算节点上设置有执行组件;
所述实现方法包括:
所述执行组件对其所在的计算节点进行异常检测,并向所述控制组件上报相应的检测信息;
所述控制组件根据所述检测信息判断相应的计算节点是否存在异常;
若相应的计算节点存在异常,则触发告警并根据***的HA模式对异常情况进行恢复;
当所述HA模式为手动模式时,所述控制组件接收运维人员的恢复策略,根据所述恢复策略进行***恢复;
当所述HA模式为半自动模式时,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复,在预设的时间阈值内,若异常情况没有消除,则由所述控制组件自动进行异常情况的恢复;
当所述HA模式为全自动模式时,所述控制组件自动进行异常情况的恢复。
优选地,所述控制组件根据所述检测信息判断相应的计算节点是否存在异常之前还包括:
所述控制组件获取全部计算节点所对应的主机名称,针对每一计算节点,根据主机名称和模型表所需要的参数进行HA建模。
优选地,所述控制节点上设置有一个主控制组件和两个备用控制组件;
所述主控制组件向ETCD集群注册服务锁,并周期性地更新所述服务锁;
当所述主控制组件发生故障时,无法更新所述服务锁,在所述服务锁超过设定的生命周期后,所述服务锁自动被释放,所述备用控制组件自动执行抢锁动作,进而触发所述备用控制组件升级为主控制组件。
优选地,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复,在预设的时间阈值内,若异常情况没有消除,则由所述控制组件自动进行异常情况的恢复包括:
判断发生异常的计算节点上的虚拟机是否需要HA操作;
若需要HA操作,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复;
判断异常情况是否已经解除;
若异常情况已经解除,则消除告警;
若异常情况没有解除,则判断人工恢复时间是否超过预设的时间阈值;
若超过预设的时间阈值,则判断是否接收到来自于指定计算节点的暂停HA请求;
若没有接收到暂停HA请求,则上报告警通知并启动自动化进程,由所述控制组件自动进行异常情况的恢复;
若接收到暂停HA请求,则停止指定计算节点上的自动化进程,并将指定主机上对应的HA对象的状态更新为暂停状态。
优选地,当所述HA模式为全自动模式时,所述控制组件自动进行异常情况的恢复包括:
判断发生异常的计算节点上的虚拟机是否需要HA操作;
若需要HA操作,则上报告警,对全部计算节点进行检测,记录需要HA操作的主机总数目;
计算需要HA操作的主机总数目相对于***全部主机数目的占用比例;
判断所述占用比例是否大于设定的比例阈值;
若大于设定的比例阈值,则停止向相应的计算节点下发HA操作;
若不大于设定的比例阈值,则根据需要HA操作的主机列表做HA动作,以消除告警。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供一种面向云计算场景的虚拟机高可靠***和实现方法,该虚拟机高可靠***包括控制节点和多个计算节点,控制节点上设置有至少一个控制组件,计算节点上设置有执行组件;执行组件用于对其所在的计算节点进行异常检测,并向控制组件上报相应的检测信息;控制组件用于根据检测信息判断相应的计算节点是否存在异常,若存在异常,则触发告警并根据***的HA模式对异常情况进行恢复;其中,HA模式包括手动模式、半自动模式和全自动模式,HA模式可根据实际需求选择性进行配置;当HA模式为手动模式时,控制组件用于接收运维人员的恢复策略,根据恢复策略进行恢复;当HA模式为半自动模式时,控制组件用于先接收运维人员的恢复策略,根据恢复策略进行恢复,在预设的时间阈值内,若异常情况没有解除,则由控制组件自动进行异常情况的恢复;当HA模式为全自动模式时,由控制组件自动进行异常情况的恢复。
在本发明中,采用多种HA模式设计,可以针对不同的应用场景或不同的要求灵活配置相应的HA模式,也可以在不同的HA模式之间灵活切换。手动模式可有效降低因为全自动化动作带来的额外开销和误判概率,适用于硬件环境相对稳定且有运维人员保证的场景;半自动模式设计既保留了自动化HA的能力,又可以给运维人员提供一个可配置的时间窗口,如果异常情况简单,可以快速修复,则没有必要再触发全自动模式,来进行虚拟机重建。
附图说明
图1是本发明实施例提供的一种面向云计算场景的虚拟机高可靠***的结构示意图;
图2是本发明实施例提供的一种面向云计算场景的虚拟机高可靠的实现方法的流程示意图;
图3是本发明实施例提供的手动模式下的实现方法的流程示意图;
图4是本发明实施例提供的半自动模式下的实现方法的流程示意图;
图5是本发明实施例提供的全自动模式下的实现方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为了便于理解本发明的技术方案,首先对如下名词进行解释:
HA:High Availability,简写为HA,高可靠性,通常用来描述一个***经过专门的设计,从而减少停工的时间保持其服务的高度可靠性。
HAStack Server:高可靠***的控制组件,负责对外提供高可靠服务,作为HA管理的大脑,用来管理全局的HA行为,进行***异常分析,基于不同的HA模式,采用不同的执行策略进行异常情况的恢复。
HAStack Agent:高可靠***在各个计算节点上的执行组件,和HAStack Server进行配合,负责异常情况的检测告警,并具体执行各个HA模式下的HA操作。
ETCD:高可用的分布式键值(key-value)数据库,由GO语言实现,通过一致性算法来保证强一致性。
API:Application Programming Interface,简写为API,应用编程接口,组件通过API将内核暴露出去,供外界访问调用。
实施例1:
参阅图1,本实施例提供一种面向云计算场景的虚拟机高可靠***,所述虚拟机高可靠***包括控制节点和多个计算节点,所述控制节点上设置有至少一个控制组件(HAStack Server),所述计算节点上设置有执行组件(HAStack Agent),所述控制节点和所述计算节点具体为主机。
所述执行组件用于对其所在的计算节点进行异常检测,并向所述控制组件上报相应的检测信息,其中,所述检测信息包括:业务运行是否正常,存储网络是否正常,存储***读写是否正常的信息等。
所述控制组件用于根据所述检测信息判断相应的计算节点是否存在异常,若存在异常,则触发告警并根据***的HA模式对异常情况进行恢复。所述控制组件根据计算节点上报的检测信息进行全局层面上的判断,从而决策计算节点是否要进行HA操作。其中,***内置有HA策略矩阵,控制组件基于***内置的HA策略矩阵,根据异常情况进行相应的HA操作。
在本实施例中,虚拟机高可靠***可支持三种HA模式:全自动模式、半自动模式和手动模式。在实际使用中,可以根据需求选择性进行配置,其中,默认配置模式为手动模式,可支持Ceph(分布式文件***)和SAN(Storage Area Network,简写为SAN)存储设备。
当所述HA模式为手动模式时,所述控制组件用于接收运维人员的恢复策略,根据所述恢复策略进行***恢复。在手动模式下,停止***的自动化HA能力,发生异常上报告警,由人工介入处理和判断是否要触发主机粒度的HA动作,同时可支持主机重启后虚拟机原地自动拉起的能力。
当所述HA模式为半自动模式时,所述控制组件用于先接收运维人员的恢复策略,根据所述恢复策略进行***恢复,在预设的时间阈值内,若异常情况没有解除,则由所述控制组件自动进行异常情况的恢复。具体实现方式为,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复;判断异常情况是否已经解除,若异常情况已经解除,则消除告警;若异常情况没有解除,则判断人工恢复时间是否超过预设的时间阈值,若超过预设的时间阈值,则判断是否接收到来自于指定计算节点的暂停HA请求,若没有接收到暂停HA请求,则上报告警通知并启动自动化进程,由所述控制组件自动进行异常情况的恢复;若接收到暂停HA请求,则停止指定计算节点上的自动化进程,并将指定主机上对应的HA对象的状态更新为暂停状态。
在半自动模式中,在自动处理HA动作之前增加一个人工介入的时间段(可配置),在异常发生时,先产生告警,然后控制组件开始计时等待人工介入处理,在时间阈值内如果异常场景被消除则不再进行自动化的HA处理,如果超过时间阈值内异常场景仍然存在,则按照自动流程开始处理。同时,为了增加运维人员处理异常的灵活度,***提供暂停自动化HA的功能和恢复自动化HA的功能,二者相互配合可以暂时停止***的自动化HA能力,给运维人员以充足的时间排查问题,当问题解决后,只需要再次恢复HA能力即可。
当所述HA模式为全自动模式时,由所述控制组件自动进行异常情况的恢复。具体实现方式为:判断发生异常的计算节点上的虚拟机是否需要HA操作,若需要HA操作,则上报告警,对全部计算节点进行检测,记录需要HA操作的主机总数目,计算需要HA操作的主机总数目相对于***全部主机数目的占用比例,判断所述占用比例是否大于设定的比例阈值,若大于设定的比例阈值,则停止向相应的计算节点下发HA操作;若不大于设定的比例阈值(可自行配置,例如为50%),则根据需要HA操作的主机列表做HA动作,以消除告警。
在全自动模式中,增加全局HA动作预判逻辑,以保证现网不出现大面积虚拟机HA的场景。
在本实施例中,所述控制节点上设置有一个主控制组件和两个备用控制组件,在所述主控制组件故障时,由所述备用控制组件对外提供高可靠服务。
虽然采用主备模式可以提高***的高可靠性,但是如果出现网络分区异常,会造成控制组件变成双主脑裂问题,从而影响整个高可靠***的判断机制,造成云平台***大面积故障。
在优选的实施例中,为了避免出现双主脑裂问题,增加了一层服务锁的设计。具体地,所述控制节点上配置有服务锁服务,其中,服务锁服务属于整体高可靠***的附加功能,服务锁是存储在ETCD集群中的一段信息,控制组件利用ETCD集群来存放自身的服务锁信息,通过这个服务锁信息来控制主备控制组件谁来当主,谁来当备,以负责保证HAStackService自身在***异常故障时,不会出现多主问题的故障,保证HAStack自身服务的可靠性。
具体实现方式为:所述主控制组件用于向ETCD集群内注册服务锁,并周期性地更新所述服务锁;其中,所述服务锁超过设定的生命周期后,所述服务锁自动被释放,所述备用控制组件自动执行抢锁动作,进而触发所述备用控制组件升级为主控制组件。
在实际使用中,控制组件的主服务进程启动时,首先检测ETCD集群内是否有服务锁,如果没有,则控制组件向ETCD集群内注册服务锁。当其他备服务试图启动时,也会首先检测ETCD集群内是否已经存在服务锁,如果发现已有锁,则立即退出,不进行任何动作。
进一步地,每个服务锁都具有生命周期时间设置,当正常情况下,控制组件需要不断更新锁的生命周期以保障锁一直有效,如果控制组件发生异常从而无法更新锁时,当服务锁超过生命周期后,服务锁被自动释放,其余备用控制组件会自动进行抢锁动作,从而触发备用控制组件升级为主控制组件的动作。
在本实施例中,所述虚拟机高可靠***还包括多个应用程序接口API,多个所述应用程序接口设置在所述控制节点上,以对外提供相应的服务,其中,所述应用程序接口可以为标准REST(Representational State Transfer,简写为RST)API。
所述应用程序接口包括HA对象列表查询接口、HA对象查询接口、HA触发接口、HA暂停接口、HA恢复接口和HA历史任务查询接口。
具体地,HA对象列表查询接口用于查询***中所有主机的HA对象列表信息;HA对象查询接口用于查询***中单个主机的HA详细信息;HA触发接口(主机粒度)用于触发一个或若干个主机的HA动作,HA暂停接口(主机粒度)用于暂停***自动化HA动作,HA恢复接口(主机粒度)用于恢复***自动化HA动作,HA历史任务查询接口用于查询***中所有的历史HA动作记录。
本实施例的虚拟机高可靠***至少具有优势:采用多种HA模式设计,可以针对不同的应用场景或不同的要求灵活配置相应的HA模式,也可以在不同的HA模式之间灵活切换。手动模式可有效降低因为全自动化动作带来的额外开销和误判概率,适用于硬件环境相对稳定且有运维人员保证的场景;半自动模式设计既保留了自动化HA的能力,又可以给运维人员提供一个可配置的时间窗口,如果异常情况简单,可以快速修复,则没有必要再触发全自动模式,来进行虚拟机重建。
此外,高可靠控制组件采用分布式服务锁设计,可以避免多主脑裂问题,避免HA动作的误判,有效提升了***虚拟机的整体可靠性指标。而且,***对外提供API接口,方便被其他***集成调用。
实施例2:
结合实施例1,本实施例提供了一种面向云计算场景的虚拟机高可靠的实现方法,所述实现方法应用于虚拟机高可靠***,所述虚拟机高可靠***包括控制节点和多个计算节点,所述控制节点上设置有至少一个控制组件,所述计算节点上设置有执行组件;
参阅图2,所述实现方法包括如下步骤:
步骤101:所述执行组件对其所在的计算节点进行异常检测,并向所述控制组件上报相应的检测信息。
所述控制组件获取全部计算节点所对应的主机名称,针对每一计算节点,根据主机名称和模型表所需要的参数进行HA建模。具体建模过程为:获取全部计算节点所对应的主机名称,针对每一计算节点,根据主机名称和模型表所需要的参数进行HA建模,判断数据库中是否已经存在相应的HA对象,若不存在,则生成HA对象的模型表,并将模型表存入数据库,若存在,则对下一个计算节点进行建模,直至完成全部计算节点的HA建模。
其中,计算节点的信息包括计算节点所对应的主机名称,模型表所需要的参数具体如下表1所示,其中,表1为HA对象表格的数据格式的示意。HAStack Server根据主机名称和模型表所需要的参数进行对象建模,并存入数据库对应的HA对象表格中,其中,HA对象表格的数据格式如下表1所示:
表1 HA对象表格的数据格式的示意
步骤102:所述控制组件根据所述检测信息判断相应的计算节点是否存在异常。
步骤103:若相应的计算节点存在异常,则触发告警并根据***的HA模式进行异常恢复。
在本实施例中,虚拟机高可靠***可支持三种HA模式:全自动模式、半自动模式和手动模式。在实际使用中,可以根据需求选择性进行配置。
步骤104:当所述HA模式为手动模式时,所述控制组件接收运维人员的恢复策略,根据所述恢复策略进行***恢复。
当所述HA模式为手动模式时,所述控制组件接收运维人员的恢复策略,根据所述恢复策略进行***恢复。在手动模式下,停止***的自动化HA能力,发生异常上报告警,由人工介入处理和判断是否要触发主机粒度的HA动作,同时可支持主机重启后虚拟机原地自动拉起的能力。具体实现方式请参见实施例3。
步骤105:当所述HA模式为半自动模式时,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复,在预设的时间阈值内,若异常情况没有消除,则由所述控制组件自动进行异常情况的恢复。
当所述HA模式为半自动模式时,所述控制组件判断发生异常的计算节点上的虚拟机是否需要HA操作;若需要HA操作,先接收运维人员的恢复策略,根据所述恢复策略进行***恢复,在预设的时间阈值内,若异常情况没有解除,则由所述控制组件自动进行异常情况的恢复。具体实现方式为,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复;判断异常情况是否已经解除,若异常情况已经解除,则消除告警;若异常情况没有解除,则判断人工恢复时间是否超过预设的时间阈值,若超过预设的时间阈值,则判断是否接收到来自于指定计算节点的暂停HA请求,若没有接收到暂停HA请求,则上报告警通知并启动自动化进程,由所述控制组件自动进行异常情况的恢复;若接收到暂停HA请求,则停止指定计算节点上的自动化进程,并将指定主机上对应的HA对象的状态更新为暂停状态。具体实现方式请参见实施例4。
步骤106:当所述HA模式为全自动模式时,所述控制组件自动进行异常情况的恢复。
当所述HA模式为全自动模式时,由所述控制组件自动进行异常情况的恢复。具体实现方式为:判断发生异常的计算节点上的虚拟机是否需要HA操作,若需要HA操作,则上报告警,对全部计算节点进行检测,记录需要HA操作的主机总数目,计算需要HA操作的主机总数目相对于***全部主机数目的占用比例,判断所述占用比例是否大于设定的比例阈值,若大于设定的比例阈值,则停止向相应的计算节点下发HA操作;若不大于设定的比例阈值(可自行配置,例如为50%),则根据需要HA操作的主机列表做HA动作,以消除告警。具体实现方式请参见实施例5。
在本实施例中,所述控制节点上设置有一个主控制组件和两个备用控制组件,在所述主控制组件故障时,由所述备用控制组件对外提供高可靠服务。
虽然采用主备模式可以提高***的高可靠性,但是如果出现网络分区异常,会造成控制组件变成双主脑裂问题,从而影响整个高可靠***的判断机制,造成云平台***大面积故障。
在优选的实施例中,为了避免出现双主脑裂问题,增加了一层服务锁的设计。所述主控制组件向ETCD集群注册服务锁,并周期性地更新所述服务锁;当所述主控制组件发生故障时,无法更新所述服务锁,在所述服务锁超过设定的生命周期后,所述服务锁自动被释放,所述备用控制组件自动执行抢锁动作,进而触发所述备用控制组件升级为主控制组件。
实施例3:
参阅图3,本实施例具体说明,在手动模式下,面向云计算场景的虚拟机高可靠的实现方法,具体包括如下步骤:
步骤201:***启动时,判断***的HA模式。
若为手动模式,执行步骤203;若为非手动模式,执行步骤202。
步骤202:进入相应的HA模式的实现流程。
步骤203:获取全部计算节点的信息。
在本实施例中,调用Nova service list接口获取全部计算节点的信息。
步骤204:根据计算节点的信息进行HA建模。
步骤205:判断数据库内是否已经存在相应的HA对象。
若不存在,则执行步骤206;若存在则执行步骤207。
步骤206:建立HA对象的模型,并将模型存入数据库。
在完成本计算节点的建模后,执行步骤207。
步骤207:对下一个计算节点进行HA建模。
步骤208:在全部计算节点完成建模后,***进入循环检测流程。
步骤209:控制组件根据执行组件上报的检测信息,判断计算节点是否存在异常。
若存在异常,执行步骤210;若不存在异常,执行步骤208。
步骤210:判断存在异常的计算节点上的虚拟机是否需要HA操作。
若需要,则执行步骤211;若不需要,则执行步骤208。
步骤211:上报告警通知运维人员。
步骤212:接收运维人员的恢复策略,根据恢复策略进行***恢复。
步骤213:判断异常情况是否消除。
若异常情况没有消除,则执行步骤212;若异常情况已经消除,则执行步骤214。
步骤214:消除告警。
在本实施例中,由人工介入处理和判断是否要触发主机粒度的HA动作,同时可支持主机重启后虚拟机原地自动拉起的能力。
实施例4:
参阅图4,本实施例具体说明,在半自动模式下,面向云计算场景的虚拟机高可靠的实现方法,具体包括如下步骤:
步骤301:***启动时,判断***的HA模式。
若为半自动模式,执行步骤303;若为非半自动模式,执行步骤302。
步骤302:进入相应的HA模式的实现流程。
步骤303:获取全部计算节点的信息。
步骤304:根据计算节点的信息进行HA建模。
步骤305:判断数据库内是否已经存在相应的HA对象。
步骤306:建立HA对象的模型,并将模型存入数据库。
步骤307:对下一个计算节点进行HA建模。
步骤308:在全部计算节点完成建模后,***进入循环检测流程。
步骤309:控制组件根据执行组件上报的检测信息,判断计算节点是否存在异常。
步骤310:判断存在异常的计算节点上的虚拟机是否需要HA操作。
其中,步骤303~步骤310与实施例3相同,在此不再赘述。
步骤311:上报告警通知运维人员,并记录人工恢复的开始时间。
步骤312:接收运维人员的恢复策略,根据恢复策略进行***恢复。
步骤313:判断异常情况是否消除。
若异常情况没有消除,则执行步骤315;若异常情况已经消除,则执行步骤314。
步骤314:消除告警。
步骤315:判断人工恢复是否超时。
若没有超时,执行步骤312;若超时,则执行步骤316。
步骤316:判断是否接收到暂停HA请求。
若没有接收到暂停HA请求,执行步骤317;若接收到暂停HA请求,执行步骤319。
步骤317:上报告警,启动自动化HA进程。
步骤318:自动化HA结束,消除告警。
步骤319:停止指定计算接点上的自动化HA进程。
步骤320:更新指定计算节点上的HA对象的状态和标识位。
结合表1,当请求暂停HA请求时,HAStack服务将更新数据库内该主机对应的HA对象状态字段status为暂停状态,以及semi_auto_pause标志位为TRUE。控制组件在接收到恢复HA请求后,按照表1再更新指定计算节点上的HA对象的状态和标识位。
在本实施例中,提供暂停自动化HA的功能和恢复自动化HA的功能,二者相互配合可以暂时停止***的自动化HA能力,给运维人员以充足的时间排查问题,当问题解决后,只需要再次恢复HA能力即可。
实施例5:
参阅图5,本实施例具体说明,在全自动模式下,面向云计算场景的虚拟机高可靠的实现方法,具体包括如下步骤:
步骤401:***启动时,判断***的HA模式。
若为全自动模式,执行步骤403;若为非全自动模式,执行步骤402。
步骤402:进入相应的HA模式的实现流程。
步骤403:获取全部计算节点的信息。
步骤404:根据计算节点的信息进行HA建模。
步骤405:判断数据库内是否已经存在相应的HA对象。
步骤406:建立HA对象的模型,并将模型存入数据库。
步骤407:对下一个计算节点进行HA建模。
步骤408:在全部计算节点完成建模后,***进入循环检测流程。
步骤409:控制组件根据执行组件上报的检测信息,判断计算节点是否存在异常。
步骤410:判断存在异常的计算节点上的虚拟机是否需要HA操作。
其中,步骤403~步骤410与实施例3相同,在此不再赘述。
步骤411:上报告警,对全部计算节点进行检测,记录需要HA操作的主机总数目。
步骤412:计算需要HA操作的主机总数目相对于***全部主机数目的占用比例。
步骤413:判断占用比例是否大于设定的比例阈值。
若大于,执行步骤414;若不大于,执行步骤415
步骤414:停止向相应的计算节点下发HA操作,上报告警。
步骤415:根据需要HA操作的主机列表做HA动作。
在本实施例中,根据需要HA操作的主机列表做HA动作,以对异常情况进行恢复。
步骤416:自动化HA结束,消除告警。
在全自动模式中,增加全局HA动作预判逻辑,以保证现网不出现大面积虚拟机HA的场景。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种面向云计算场景的虚拟机高可靠***,其特征在于,所述虚拟机高可靠***包括控制节点和多个计算节点,所述控制节点上设置有至少一个控制组件,所述计算节点上设置有执行组件;
所述执行组件用于对其所在的计算节点进行异常检测,并向所述控制组件上报相应的检测信息;
所述控制组件用于根据所述检测信息判断相应的计算节点是否存在异常,若存在异常,则触发告警并根据***的HA模式对异常情况进行恢复;
其中,所述HA模式包括手动模式、半自动模式和全自动模式,所述HA模式可根据实际需求选择性进行配置;
当所述HA模式为手动模式时,所述控制组件用于接收运维人员的恢复策略,根据所述恢复策略进行恢复;
当所述HA模式为半自动模式时,所述控制组件用于先接收运维人员的恢复策略,根据所述恢复策略进行恢复,在预设的时间阈值内,若异常情况没有解除,则由所述控制组件自动进行异常情况的恢复;
当所述HA模式为全自动模式时,由所述控制组件自动进行异常情况的恢复。
2.根据权利要求1所述的虚拟机高可靠***,其特征在于,所述控制组件还用于获取全部计算节点所对应的主机名称,针对每一计算节点,根据主机名称和模型表所需要的参数进行HA建模。
3.根据权利要求1所述的虚拟机高可靠***,其特征在于,所述控制节点上设置有一个主控制组件和两个备用控制组件,在所述主控制组件故障时,由所述备用控制组件对外提供高可靠服务。
4.根据权利要求3所述的虚拟机高可靠***,其特征在于,所述主控制组件用于向ETCD集群注册服务锁,并周期性地更新所述服务锁;
其中,所述服务锁超过设定的生命周期后,所述服务锁自动被释放,所述备用控制组件自动执行抢锁动作,进而触发所述备用控制组件升级为主控制组件。
5.根据权利要求1所述的虚拟机高可靠***,其特征在于,所述虚拟机高可靠***包括多个应用程序接口,多个所述应用程序接口设置在所述控制节点上,以对外提供相应的服务;
所述应用程序接口包括HA对象列表查询接口、HA对象查询接口、HA触发接口、HA暂停接口、HA恢复接口和HA历史任务查询接口。
6.一种面向云计算场景的虚拟机高可靠的实现方法,其特征在于,所述实现方法应用于虚拟机高可靠***,所述虚拟机高可靠***包括控制节点和多个计算节点,所述控制节点上设置有至少一个控制组件,所述计算节点上设置有执行组件;
所述实现方法包括:
所述执行组件对其所在的计算节点进行异常检测,并向所述控制组件上报相应的检测信息;
所述控制组件根据所述检测信息判断相应的计算节点是否存在异常;
若相应的计算节点存在异常,则触发告警并根据***的HA模式对异常情况进行恢复;
当所述HA模式为手动模式时,所述控制组件接收运维人员的恢复策略,根据所述恢复策略进行***恢复;
当所述HA模式为半自动模式时,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复,在预设的时间阈值内,若异常情况没有消除,则由所述控制组件自动进行异常情况的恢复;
当所述HA模式为全自动模式时,所述控制组件自动进行异常情况的恢复。
7.根据权利要求6所述的实现方法,其特征在于,所述控制组件根据所述检测信息判断相应的计算节点是否存在异常之前还包括:
所述控制组件获取全部计算节点所对应的主机名称,针对每一计算节点,根据主机名称和模型表所需要的参数进行HA建模。
8.根据权利要求6所述的实现方法,其特征在于,所述控制节点上设置有一个主控制组件和两个备用控制组件;
所述主控制组件向ETCD集群注册服务锁,并周期性地更新所述服务锁;
当所述主控制组件发生故障时,无法更新所述服务锁,在所述服务锁超过设定的生命周期后,所述服务锁自动被释放,所述备用控制组件自动执行抢锁动作,进而触发所述备用控制组件升级为主控制组件。
9.根据权利要求6所述的实现方法,其特征在于,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复,在预设的时间阈值内,若异常情况没有消除,则由所述控制组件自动进行异常情况的恢复包括:
判断发生异常的计算节点上的虚拟机是否需要HA操作;
若需要HA操作,所述控制组件先接收运维人员的恢复策略,根据所述恢复策略进行恢复;
判断异常情况是否已经解除;
若异常情况已经解除,则消除告警;
若异常情况没有解除,则判断人工恢复时间是否超过预设的时间阈值;
若超过预设的时间阈值,则判断是否接收到来自于指定计算节点的暂停HA请求;
若没有接收到暂停HA请求,则上报告警通知并启动自动化进程,由所述控制组件自动进行异常情况的恢复;
若接收到暂停HA请求,则停止指定计算节点上的自动化进程,并将指定主机上对应的HA对象的状态更新为暂停状态。
10.根据权利要求6所述的实现方法,其特征在于,当所述HA模式为全自动模式时,所述控制组件自动进行异常情况的恢复包括:
判断发生异常的计算节点上的虚拟机是否需要HA操作;
若需要HA操作,则上报告警,对全部计算节点进行检测,记录需要HA操作的主机总数目;
计算需要HA操作的主机总数目相对于***全部主机数目的占用比例;
判断所述占用比例是否大于设定的比例阈值;
若大于设定的比例阈值,则停止向相应的计算节点下发HA操作;
若不大于设定的比例阈值,则根据需要HA操作的主机列表做HA动作,以消除告警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010644139.5A CN111897626A (zh) | 2020-07-07 | 2020-07-07 | 一种面向云计算场景的虚拟机高可靠***和实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010644139.5A CN111897626A (zh) | 2020-07-07 | 2020-07-07 | 一种面向云计算场景的虚拟机高可靠***和实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111897626A true CN111897626A (zh) | 2020-11-06 |
Family
ID=73191845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010644139.5A Pending CN111897626A (zh) | 2020-07-07 | 2020-07-07 | 一种面向云计算场景的虚拟机高可靠***和实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897626A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114499945A (zh) * | 2021-12-22 | 2022-05-13 | 天翼云科技有限公司 | 一种虚拟机的入侵检测方法及装置 |
CN117032881A (zh) * | 2023-07-31 | 2023-11-10 | 广东保伦电子股份有限公司 | 一种虚拟机异常检测和恢复的方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291243A (zh) * | 2007-04-16 | 2008-10-22 | 广东省新支点技术服务有限公司 | 高可用集群***的裂脑预防方法 |
US20080288655A1 (en) * | 2004-10-14 | 2008-11-20 | International Business Machines Corporation | Subscription Propagation in a High Performance Highly Available Content based Publish Subscribe System |
CN106775953A (zh) * | 2016-12-30 | 2017-05-31 | 北京中电普华信息技术有限公司 | 实现OpenStack高可用的方法与*** |
CN107168779A (zh) * | 2017-03-31 | 2017-09-15 | 咪咕互动娱乐有限公司 | 一种任务管理方法及*** |
CN109684032A (zh) * | 2018-12-04 | 2019-04-26 | 武汉烽火信息集成技术有限公司 | 防脑裂的OpenStack虚拟机高可用计算节点装置及管理方法 |
US20220004334A1 (en) * | 2018-09-30 | 2022-01-06 | Beijing Kingsoft Cloud Network Technology Co., Ltd. | Data Storage Method, Apparatus and System, and Server, Control Node and Medium |
-
2020
- 2020-07-07 CN CN202010644139.5A patent/CN111897626A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080288655A1 (en) * | 2004-10-14 | 2008-11-20 | International Business Machines Corporation | Subscription Propagation in a High Performance Highly Available Content based Publish Subscribe System |
CN101291243A (zh) * | 2007-04-16 | 2008-10-22 | 广东省新支点技术服务有限公司 | 高可用集群***的裂脑预防方法 |
CN106775953A (zh) * | 2016-12-30 | 2017-05-31 | 北京中电普华信息技术有限公司 | 实现OpenStack高可用的方法与*** |
CN107168779A (zh) * | 2017-03-31 | 2017-09-15 | 咪咕互动娱乐有限公司 | 一种任务管理方法及*** |
US20220004334A1 (en) * | 2018-09-30 | 2022-01-06 | Beijing Kingsoft Cloud Network Technology Co., Ltd. | Data Storage Method, Apparatus and System, and Server, Control Node and Medium |
CN109684032A (zh) * | 2018-12-04 | 2019-04-26 | 武汉烽火信息集成技术有限公司 | 防脑裂的OpenStack虚拟机高可用计算节点装置及管理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114499945A (zh) * | 2021-12-22 | 2022-05-13 | 天翼云科技有限公司 | 一种虚拟机的入侵检测方法及装置 |
CN114499945B (zh) * | 2021-12-22 | 2023-08-04 | 天翼云科技有限公司 | 一种虚拟机的入侵检测方法及装置 |
CN117032881A (zh) * | 2023-07-31 | 2023-11-10 | 广东保伦电子股份有限公司 | 一种虚拟机异常检测和恢复的方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7802128B2 (en) | Method to avoid continuous application failovers in a cluster | |
US9785521B2 (en) | Fault tolerant architecture for distributed computing systems | |
US10725878B2 (en) | Storage apparatus, storage system, and control method of storage system for dynamically securing free space when a storage apparatus is disused | |
CN109656742B (zh) | 一种节点异常处理方法、装置及存储介质 | |
CN109408210B (zh) | 分布式定时任务管理方法及*** | |
US20050283673A1 (en) | Information processing apparatus, information processing method, and program | |
CN114064414A (zh) | 一种高可用的集群状态监控方法及*** | |
CN105607973B (zh) | 一种虚拟机***中设备故障处理的方法、装置及*** | |
CN111897626A (zh) | 一种面向云计算场景的虚拟机高可靠***和实现方法 | |
CN112732674B (zh) | 云平台服务管理方法、装置、设备及可读存储介质 | |
WO2021155668A1 (zh) | 一种数据库在线热备份的方法和设备 | |
US7401256B2 (en) | System and method for highly available data processing in cluster system | |
CN112199240A (zh) | 一种节点故障时进行节点切换的方法及相关设备 | |
US10324811B2 (en) | Opportunistic failover in a high availability cluster | |
JPH11259326A (ja) | ホットスタンバイシステムおよびホットスタンバイシステムにおける自動再実行方法およびその記録媒体 | |
US8812900B2 (en) | Managing storage providers in a clustered appliance environment | |
CN113703669B (zh) | 一种缓存分区的管理方法、***、设备及存储介质 | |
CN112269693B (zh) | 一种节点自协调方法、装置和计算机可读存储介质 | |
JP4485560B2 (ja) | コンピュータ・システム及びシステム管理プログラム | |
CN113946543A (zh) | 基于人工智能的数据归档方法、装置、设备及存储介质 | |
CN110188008B (zh) | 作业调度主备切换方法、装置、计算机设备及存储介质 | |
CN110806917A (zh) | 一种防脑裂的虚拟机高可用的管理装置及方法 | |
US9110850B2 (en) | Method for accelerating start up of a computerized system | |
CN112000720A (zh) | 数据库连接的管理方法、管理***以及数据库连接池 | |
JP2012168816A (ja) | プロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラム |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201106 |
|
RJ01 | Rejection of invention patent application after publication |