CN114064217A - 一种基于OpenStack的节点虚拟机迁移方法及装置 - Google Patents

一种基于OpenStack的节点虚拟机迁移方法及装置 Download PDF

Info

Publication number
CN114064217A
CN114064217A CN202111434934.2A CN202111434934A CN114064217A CN 114064217 A CN114064217 A CN 114064217A CN 202111434934 A CN202111434934 A CN 202111434934A CN 114064217 A CN114064217 A CN 114064217A
Authority
CN
China
Prior art keywords
computing node
node
computing
state information
service
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.)
Granted
Application number
CN202111434934.2A
Other languages
English (en)
Other versions
CN114064217B (zh
Inventor
魏峰
秦宜
李建兵
袁超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202111434934.2A priority Critical patent/CN114064217B/zh
Publication of CN114064217A publication Critical patent/CN114064217A/zh
Application granted granted Critical
Publication of CN114064217B publication Critical patent/CN114064217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例涉及云计算技术领域,尤其涉及一种基于OpenStack的节点虚拟机迁移方法及装置,该方法包括第一计算节点在确定满足第一计算节点的各服务的检测时间时,对各服务进行检测,并根据各服务在连续多个检测时间的服务状态,生成第一计算节点的第一状态信息,针对每个第二计算节点,基于第二计算节点反馈的状态信息以及第一计算节点与第二计算节点之间的通信状况,确定第二计算节点的第二状态信息,并将m个计算节点的状态信息发送给控制节点。如此,该方案通过多维度地周期性检测计算节点的状态信息,能够辅助控制节点准确地判断出故障节点,并将故障节点上的各虚拟机进行迁移,即可有效地确保故障节点上业务服务的连续性、可靠性。

Description

一种基于OpenStack的节点虚拟机迁移方法及装置
技术领域
本发明实施例涉及云计算技术领域,尤其涉及一种基于OpenStack的节点虚拟机迁移方法及装置。
背景技术
随着计算机技术的发展,云计算也得到广泛的应用。其中,云计算是一种计算模型,它将诸如运算能力、存储、网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样。而OpenStack作为云计算的一种代表,是一整套开源软件项目的综合,它允许企业或服务提供者建立、运行自己的云计算和存储设施。然而,在OpenStack云计算平台的应用过程中,该OpenStack云计算平台中的计算节点难免会出现故障,而在计算节点出现故障时,如何确保该计算节点上业务服务的连续性成为急需解决的问题。
现阶段,通常采用一种虚拟HA(High Available,高可用)方案,即Masakari方案。其中,Masakari方案支持针对虚拟机进程、虚拟化进程和计算节点进程的监控。具体地,通过shell脚本监控虚拟机进程、Nova-compute服务和计算节点状态。如果虚拟机进程挂了,则通过虚拟机的API关闭和启动虚拟机;如果虚拟化进程挂了,则通过Nova-compute API设置Nova-compute服务为down状态;如果Nova-compute进程挂了,则疏散计算节点上的虚拟机。但是,这种处理方案并没有考虑虚拟机脑裂和计算节点的隔离,因此不能保障业务网络、存储的高可靠性,从而不能很好地确保计算节点的业务服务的可靠性、连续性。
综上,目前亟需一种基于OpenStack的节点虚拟机迁移方法,用以有效地确保故障节点上业务服务的连续性、可靠性。
发明内容
本发明实施例提供了一种基于OpenStack的节点虚拟机迁移方法及装置,用以有效地确保故障节点上业务服务的连续性、可靠性。
第一方面,本发明实施例提供了一种基于OpenStack的节点虚拟机迁移方法,适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统,所述方法包括:
第一计算节点在确定满足所述第一计算节点的各服务的检测时间时,对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态,生成所述第一计算节点的第一状态信息,将所述第一计算节点的第一状态信息同步给m-1个第二计算节点;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
针对每个第二计算节点,所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况,确定所述第二计算节点的第二状态信息,并将所述m个计算节点的状态信息发送给所述控制节点;所述m个计算节点的状态信息包括所述第一计算节点的第一状态信息以及所述m-1个第二计算节点各自的第二状态信息;所述控制节点用于通过所述m个计算节点的状态信息,在确定至少一个计算节点满足虚拟机迁移条件时将所述至少一个计算节点上的各虚拟机进行迁移。
上述技术方案中,通过针对计算节点的各服务进行多维度的周期性检测来确定计算节点的状态信息,可以便于更加全面且更加综合性的评估计算节点的状态,有助于避免因控制节点对计算节点的状态的误判导致计算节点的故障影响范围扩大化,从而可以实现针对故障节点的精准判断,并针对故障节点上的各虚拟机进行迁移,以此可以有效地确保故障节点上业务服务的连续性、可靠性。具体来说,第一计算节点在确定满足第一计算节点的各服务的检测时间时,通过针对该第一计算节点的各服务进行多维度地检测,以此可以更加全面地获取到该第一计算节点的服务状态信息,并根据该全面的服务状态信息能够准确地确定出该第一计算节点的第一状态信息,同时针对每个第二计算节点,基于该第二计算节点反馈的状态信息以及第一计算节点与该第二计算节点之间的通信状况,即可准确地确定出该第二计算节点的第二状态信息。然后,将第一计算节点的第一状态信息以及m-1个第二计算节点各自的第二状态信息发送给控制节点,以使控制节点能够综合m个计算节点各自所发送的m个计算节点的状态信息,即可准确地判断出故障节点,并可以针对故障节点上的各虚拟机进行迁移。如此,该方案通过多维度地周期性检测计算节点的状态信息,来辅助控制节点准确地判断出故障节点,并将故障节点上的各虚拟机进行迁移,即可有效地确保故障节点上业务服务的连续性、可靠性。
可选地,所述根据所述各服务的服务状态,生成所述第一计算节点的第一状态信息,包括:
所述第一计算节点若确定所述各服务中存在至少一个服务在连续多个检测时间的服务状态为异常状态,则生成所述第一计算节点的异常状态信息;
所述第一计算节点若确定所述各服务在连续多个检测时间的服务状态均为正常状态,则生成所述第一计算节点的正常状态信息。
上述技术方案中,通过针对在连续多个检测时间所检测出的各服务的服务状态进行判断,即,如果各服务中存在至少一个服务在连续多个检测时间的服务状态为异常状态,比如某一个服务在连续多个检测时间的服务状态均为异常状态,或者某几个服务在连续多个检测时间的服务状态均为异常状态,则可以更加可靠准确地确定该第一计算节点就是处于异常状态(或故障状态),同时生成该第一计算节点的异常状态信息;如果各服务在连续多个检测时间的各服务状态均为正常状态,也即是,每个服务在连续多个检测时间所对应的各服务状态均为正常状态,则可以更加可靠准确地确定该第一计算节点就是处于正常状态,同时生成该第一计算节点的正常状态信息,从而可以为控制节点准确地判断出故障节点提供支持。
可选地,所述对所述各服务进行检测,包括:
所述第一计算节点通过配置的监控组件,在确定满足各服务的检测时间时,对所述各服务中的至少一个软件服务和至少一个网络服务进行检测,得到所述至少一个软件服务的软件服务状态以及所述至少一个网络服务的网络服务状态。
可选地,还包括:
针对任一软件服务,所述第一计算节点在通过所述监控组件确定所述软件服务的软件服务状态为异常状态时,重启所述软件服务,得到重启后的软件服务状态,并将所述重启后的软件服务状态作为用于生成所述第一计算节点的第一状态信息所需的软件服务状态;以及,
针对任一网络服务,所述第一计算节点在通过所述监控组件确定所述网络服务的网络服务状态为异常状态时,重启所述网络服务,得到重启后的网络服务状态,并将所述重启后的网络服务状态作为用于生成所述第一计算节点的第一状态信息所需的网络服务状态。
上述技术方案中,在每个计算节点上均配置有监控组件,通过该监控组件即可在满足各服务的检测时间时,对计算节点(比如第一计算节点)的各服务(即至少一个软件服务和至少一个网络服务)进行检测,从而可以检测出至少一个软件服务各自所对应的软件服务状态以及至少一个网络服务各自所对应的网络服务状态。其中,针对任一软件服务,如果该软件服务的软件服务状态为异常状态,则会直接针对该软件服务执行重启操作,并将重启后的软件服务状态作为用于生成第一状态信息所需的软件服务状态,比如针对该软件服务执行重启操作后,该软件服务的软件服务状态仍然为异常状态,那么就可以更加可靠准确地确定该软件服务就是处于异常状态,在生成第一计算节点的第一状态信息时,所依据的就是该软件服务的异常软件服务状态。针对任一网络服务,如果该网络服务的网络服务状态为异常状态,则会直接针对该网络服务执行重启操作,并将重启后的网络服务状态作为用于生成第一状态信息所需的网络服务状态,比如针对该网络服务执行重启操作后,该网络服务的网络服务状态仍然为异常状态,那么就可以更加可靠准确地确定该网络服务就是处于异常状态,在生成第一计算节点的第一状态信息时,所依据的就是该网络服务的异常软件服务状态。如此,该方案通过上述针对每个服务的操作,能够更加可靠准确地确定出每个服务所处的实际状态,也即是更加可靠准确地能够确定出每个服务所处的实际状态到底是异常状态还是正常状态。
可选地,所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况,确定所述第二计算节点的第二状态信息,包括:
所述第一计算节点若确定所述第一计算节点与所述第二计算节点之间的通信状况为异常,则生成所述第二计算节点的异常状态信息;
所述第一计算节点若确定所述第一计算节点与所述第二计算节点之间的通信状况为正常,且确定所述第二计算节点反馈的状态信息为正常状态信息,则生成所述第二计算节点的正常状态信息;或者,所述第一计算节点若确定所述第一计算节点与所述第二计算节点之间的通信状况为正常,且确定所述第二计算节点反馈的状态信息为异常状态信息,则生成所述第二计算节点的异常状态信息。
上述技术方案中,针对每个第二计算节点,第一计算节点首先基于该第一计算节点与该第二计算节点之间的通信状况来确定该第一计算节点与该第二计算节点是否通信正常,如果该第一计算节点与该第二计算节点之间的通信处于中断状态,并不能接收到该第二计算节点所发送的状态信息,则可以直接确定该第二计算节点处于异常状态,同时生成该第二计算节点的异常状态信息;如果该第一计算节点与该第二计算节点之间的通信处于正常状态,则可以需要根据所接收的该第二计算节点发送的状态信息来确定该第二计算节点是否处于正常状态,比如该第二计算节点发送的状态信息为异常状态信息,则生成该第二计算节点的异常状态信息。如此,该方案通过基于该第一计算节点与该第二计算节点之间的通信状况以及所接收到的第二计算节点发送的状态信息,能够更加可靠准确地确定出该第二计算节点是处于正常状态还是处于异常状态。
第二方面,本发明实施例提供了一种基于OpenStack的节点虚拟机迁移方法,适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统,所述方法包括:
控制节点接收所述m个计算节点各自发送的m个计算节点的状态信息;所述m个计算节点的状态信息包括第一计算节点的第一状态信息以及m-1个第二计算节点各自的第二状态信息;所述第一计算节点的第一状态信息是在确定满足所述第一计算节点的各服务的检测时间时对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态生成的;每个第二计算节点的第二状态信息是所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况确定的;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
所述控制节点对所述m个计算节点各自发送的m个计算节点的状态信息进行处理,并针对任一计算节点,在确定所述计算节点满足虚拟机迁移条件时,将所述计算节点上的各虚拟机进行迁移。
上述技术方案中,通过针对计算节点的各服务进行多维度的周期性检测来确定计算节点的状态信息,可以便于更加全面且更加综合性的评估计算节点的状态,有助于避免因控制节点对计算节点的状态的误判导致计算节点的故障影响范围扩大化,从而可以实现针对故障节点的精准判断,并针对故障节点上的各虚拟机进行迁移,以此可以有效地确保故障节点上业务服务的连续性、可靠性。具体来说,在控制节点接收到各计算节点各自上报的各计算节点的状态信息后,即可针对该各计算节点各自上报的各计算节点的状态信息进行综合分析处理,从而可以更加可靠准确地确定任一计算节点是否满足虚拟机迁移条件,也即是确认任一计算节点是否为故障节点,并将该计算节点上的各虚拟机进行迁移,以此可以有效地确保故障节点上业务服务的连续性、可靠性。
可选地,所述控制节点接收所述m个计算节点各自发送的m个计算节点的状态信息,包括:
所述控制节点通过配置的收集组件中的集群计算节点信息收集进程,分别接收所述m个计算节点各自发送的m个计算节点的状态信息;
所述控制节点对所述m个计算节点各自发送的m个计算节点的状态信息进行处理,并针对任一计算节点,在确定所述计算节点满足虚拟机迁移条件时,将所述计算节点上的各虚拟机进行迁移,包括:
所述控制节点通过收集组件中的计算节点状态检测进程,统计所述m个计算节点各自发送的m个计算节点的状态信息,确定出每个计算节点的状态信息为异常状态信息的数量;
针对任一计算节点,若确定所述计算节点的状态信息为异常状态信息的数量大于等于设定数量阈值,则所述控制节点通过所述收集组件中的虚拟机迁移进程,将所述计算节点上的各虚拟机进行迁移。
上述技术方案中,在收集组件中设置三个具有不同执行功能的进程,以便该三个不同的进程分别执行不同的任务,从而使得收集组件所承载的各任务能够及时地并行执行,从而可以有效地提升收集组件处理任务的效率。其中,通过集群计算节点信息收集进程,接收m个计算节点各自发送的m个计算节点的状态信息;通过计算节点状态检测进程,统计m个计算节点各自发送的m个计算节点的状态信息,以便准确地确定出每个计算节点的状态信息为异常状态信息的数量,同时也可以确定出每个计算节点的状态信息为正常状态信息的数量;以及在确定计算节点的状态信息为异常状态信息的数量大于等于设定数量阈值时,通过虚拟机迁移进程,将计算节点上的各虚拟机进行迁移。
可选地,在将所述计算节点上的各虚拟机进行迁移之前,还包括:
所述控制节点通过所述收集组件将所述计算节点进行隔离,并将所述计算节点的状态标记为不可用状态;
所述控制节点通过所述收集组件,调用所述计算节点的管理接口重启所述计算节点,得到所述计算节点重启后的状态;
若所述计算节点重启后的状态为可用状态,则所述控制节点通过所述收集组件解除针对所述计算节点的隔离,否则继续对所述计算节点进行隔离。
上述技术方案中,在将计算节点(即故障节点)上的各虚拟机进行迁移之前,控制节点需要通过收集组件将该故障节点进行隔离,以便防止用户在继续访问该故障节点时不能正常使用该故障节点上的各服务,也即是不能正常使用该故障节点上各虚拟机所承载的各服务,从而使得因该故障节点上各服务的中断而给用户带来极大地不便。如此,通过针对故障节点进行有效地隔离,并将该故障节点的状态标记为不可用状态,那么在用户需要访问这一故障节点时,即可将用户的访问转移到承载该故障节点的相应服务的计算节点(即承载相应服务的虚拟机所迁移的计算节点)上,以便用户能够及时准确地使用所需的服务,从而可以有效地确保故障节点上业务服务的连续性、可靠性。此外,如果在通过收集组件重启该故障节点后,该故障节点能够恢复正常状态,那么控制节点就可以解除针对该故障节点的隔离,以便用户能够及时地在该恢复正常状态的计算节点上新建虚拟机以及新建虚拟机所承载的相应服务。
第三方面,本发明实施例提供了基于OpenStack的节点虚拟机迁移装置,适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统,所述装置包括:
检测单元,用于在确定满足所述第一计算节点的各服务的检测时间时,对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态,生成所述第一计算节点的第一状态信息,将所述第一计算节点的第一状态信息同步给m-1个第二计算节点;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
第一处理单元,用于针对每个第二计算节点,基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况,确定所述第二计算节点的第二状态信息,并将所述m个计算节点的状态信息发送给所述控制节点;所述m个计算节点的状态信息包括所述第一计算节点的第一状态信息以及所述m-1个第二计算节点各自的第二状态信息;所述控制节点用于通过所述m个计算节点的状态信息,在确定至少一个计算节点满足虚拟机迁移条件时将所述至少一个计算节点上的各虚拟机进行迁移。
可选地,所述检测单元具体用于:
若确定所述各服务中存在至少一个服务在连续多个检测时间的服务状态为异常状态,则生成所述第一计算节点的异常状态信息;
所述第一计算节点若确定所述各服务在连续多个检测时间的服务状态均为正常状态,则生成所述第一计算节点的正常状态信息。
可选地,所述检测单元具体用于:
通过配置的监控组件,在确定满足各服务的检测时间时,对所述各服务中的至少一个软件服务和至少一个网络服务进行检测,得到所述至少一个软件服务的软件服务状态以及所述至少一个网络服务的网络服务状态。
可选地,所述检测单元还用于:
针对任一软件服务,在通过所述监控组件确定所述软件服务的软件服务状态为异常状态时,重启所述软件服务,得到重启后的软件服务状态,并将所述重启后的软件服务状态作为用于生成所述第一计算节点的第一状态信息所需的软件服务状态;以及,
针对任一网络服务,在通过所述监控组件确定所述网络服务的网络服务状态为异常状态时,重启所述网络服务,得到重启后的网络服务状态,并将所述重启后的网络服务状态作为用于生成所述第一计算节点的第一状态信息所需的网络服务状态。
可选地,所述第一处理单元具体用于:
若确定所述第一计算节点与所述第二计算节点之间的通信状况为异常,则生成所述第二计算节点的异常状态信息;
若确定所述第一计算节点与所述第二计算节点之间的通信状况为正常,且确定所述第二计算节点反馈的状态信息为正常状态信息,则生成所述第二计算节点的正常状态信息;或者,所述第一计算节点若确定所述第一计算节点与所述第二计算节点之间的通信状况为正常,且确定所述第二计算节点反馈的状态信息为异常状态信息,则生成所述第二计算节点的异常状态信息。
第四方面,本发明实施例提供了一种基于OpenStack的节点虚拟机迁移装置,适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统,所述装置包括:
接收单元,用于接收所述m个计算节点各自发送的m个计算节点的状态信息;所述m个计算节点的状态信息包括第一计算节点的第一状态信息以及m-1个第二计算节点各自的第二状态信息;所述第一计算节点的第一状态信息是在确定满足所述第一计算节点的各服务的检测时间时对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态生成的;每个第二计算节点的第二状态信息是所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况确定的;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
第二处理单元,用于对所述m个计算节点各自发送的m个计算节点的状态信息进行处理,并针对任一计算节点,在确定所述计算节点满足虚拟机迁移条件时,将所述计算节点上的各虚拟机进行迁移。
可选地,所述接收单元具体用于:
通过配置的收集组件中的集群计算节点信息收集进程,分别接收所述m个计算节点各自发送的m个计算节点的状态信息;
所述第二处理单元具体用于:
通过收集组件中的计算节点状态检测进程,统计所述m个计算节点各自发送的m个计算节点的状态信息,确定出每个计算节点的状态信息为异常状态信息的数量;
针对任一计算节点,若确定所述计算节点的状态信息为异常状态信息的数量大于等于设定数量阈值,则通过所述收集组件中的虚拟机迁移进程,将所述计算节点上的各虚拟机进行迁移。
可选地,所述第二处理单元还用于:
在将所述计算节点上的各虚拟机进行迁移之前,通过所述收集组件将所述计算节点进行隔离,并将所述计算节点的状态标记为不可用状态;
通过所述收集组件,调用所述计算节点的管理接口重启所述计算节点,得到所述计算节点重启后的状态;
若所述计算节点重启后的状态为可用状态,则通过所述收集组件解除针对所述计算节点的隔离,否则继续对所述计算节点进行隔离。
第五方面,本发明实施例提供一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面或第二方面任意所述的基于OpenStack的节点虚拟机迁移方法。
第六方面,本发明实施例提供一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一方面或第二方面任意所述的基于OpenStack的节点虚拟机迁移方法。
第七方面,本发明实施例提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述第一方面或第二方面任意所述的基于OpenStack的节点虚拟机迁移方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种OpenStack的网络架构示意图;
图2为本发明实施例提供的一种基于OpenStack的节点虚拟机迁移方法的流程示意图;
图3为本发明实施例提供的一种基于OpenStack的节点虚拟机迁移装置的结构示意图;
图4为本发明实施例提供的另一种基于OpenStack的节点虚拟机迁移装置的结构示意图;
图5为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种OpenStack的网络架构。如图1所示,该网络架构可以包括OpenStack网络、控制节点100、至少一个计算节点(比如计算节点201、计算节点202和计算节点203等)以及存储节点300。
其中,OpenStack网络分为带内管理网、带外管理网、存储网、业务网。其中,带内管理网络用于各计算节点与控制节点100之间的管理数据通信;带外管理用于计算节点的IPMI((Intelligent Platform Management Interface,智能平台管理接口)管理;存储网用于各计算节点与存储节点300,比如Nas(Network Attached Storage,网络附属存储)存储节点,的网络通信;业务网用于负责租户或用户的overlay网络通信以及租户或用户的南北向通信。
需要说明的是,上述图1所示的架构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2示例性的示出了本发明实施例提供的一种基于OpenStack的节点虚拟机迁移方法的流程,该流程可以由基于OpenStack的节点虚拟机迁移装置执行。其中,本发明实施例中的基于OpenStack的节点虚拟机迁移方法适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统。下面以控制节点和第一计算节点的交互为例对基于OpenStack的节点虚拟机迁移方法进行描述,其中,第一计算节点为m个计算节点中的任一个。
如图2所示,该流程具体包括:
步骤201,第一计算节点在确定满足所述第一计算节点的各服务的检测时间时,对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态,生成所述第一计算节点的第一状态信息。
本发明实施例中,通过在每个计算节点上配置监控组件(monitor),在控制节点上配置收集组件(server)。其中,计算节点可以是承载虚拟化IaaS(Infrastructure as aService,基础设施即服务)层虚拟机的服务器;监控组件用于实现对计算节点compute中各服务中的软件服务,例如nova-compute、libvirtd、ovn-controller、ovsdb-server、ovs-vswitchd等软件服务组件以及网络服务,例如业务网、管理网、存储网等网络服务的实时性能状态进行多维度地周期性采集,并在每个采集周期,将该采集周期所采集到的计算节点的状态信息同步给集群中的其它计算节点,同时会将采集到的计算节点的状态信息以及集群中其它计算节点的状态信息上报给收集组件;收集组件并不直接监控Openstack组件服务,主要是负责对监控组件上报的数据的收集,并根据预定义规则自动对故障节点进行隔离fence重启和虚拟机迁移。
具体地,针对每个计算节点,在该计算节点的监控组件启动之前,会向收集组件发送注册请求,以便该计算节点的监控组件具有向收集组件上报数据的权限,同时便于控制节点通过收集组件针对该计算节点进行相应的管理操作。在注册完成后,针对任一计算节点,比如第一计算节点,该第一计算节点通过监控组件,在确定满足该第一计算节点中各服务的检测时间时,对各服务中的至少一个软件服务和至少一个网络服务进行检测,得到至少一个软件服务的软件服务状态以及至少一个网络服务的网络服务状态。例如,该第一计算节点可以按照设定的时间间隔,即每隔一个检测周期(比如每隔3秒、5秒、10秒或30秒等),对各服务中的至少一个软件服务和至少一个网络服务进行周期性地检测。针对任一软件服务,该第一计算节点在通过监控组件确定软件服务的软件服务状态为异常状态时,重启该软件服务,得到重启后的软件服务状态,并将重启后的软件服务状态作为用于生成该第一计算节点的第一状态信息所需的软件服务状态。以及,针对任一网络服务,该第一计算节点在通过监控组件确定网络服务的网络服务状态为异常状态时,重启该网络服务,得到重启后的网络服务状态,并将重启后的网络服务状态作为用于生成该第一计算节点的第一状态信息所需的网络服务状态。例如,以软件服务为nova-compute为例,如果检测到nova-compute的软件服务状态为inactice(不活跃的)或failed(失败的)状态,则对该nova-compute执行重启restart操作。比如,针对该nova-compute执行重启操作后,该nova-compute的软件服务状态仍然为异常状态,那么就可以更加可靠准确地确定该nova-compute就是处于异常状态,在生成第一计算节点的第一状态信息时,所依据的就是该nova-compute的异常软件服务状态。或者,针对该nova-compute执行重启操作后,该nova-compute的软件服务状态恢复为正常状态,那么就可以更加可靠准确地确定该nova-compute就是处于正常状态,只是由于某些因素(比如该nova-compute卡顿等)导致该nova-compute在检测时间是异常的,但是实际上该nova-compute是处于正常状态的,那么在生成第一计算节点的第一状态信息时,所依据的就是该nova-compute的正常软件服务状态。此外,针对任一网络服务,以网络服务为业务网为例,如果检测到该第一计算节点与业务网的网关通信中断,则会尝试重启业务网卡,以此来确定是否能够恢复该第一计算节点与业务网的网络通信;或者,以网络服务为存储网为例,如果检测到共享文件系统的文件读写状态为异常时,则可以尝试重新挂载网络文件系统存储和重启存储网卡;或者,以网络服务为管理网为例,如果检测不到相连的计算节点反馈的心跳响应报文,则确定该第一计算节点与相连的计算节点之间的网络通信处于中断状态,因此可以发起重连请求或重启该第一计算节点与相连的计算节点之间的网络。比如,针对该第一计算节点与业务网的网卡执行重启操作后,该第一计算节点与业务网的网络通信仍然为异常状态,那么就可以更加可靠准确地确定该业务网就是处于异常状态,在生成第一计算节点的第一状态信息时,所依据的就是该业务网的异常网络服务状态。或者,针对该第一计算节点与业务网的网卡执行重启操作后,该第一计算节点与业务网的网络通信恢复为正常状态,那么就可以更加可靠准确地确定该业务网就是处于正常状态,只是由于某些因素(比如该业务网的网络延迟或短暂的网络中断等)导致该业务网在检测时间是异常的,但是实际上该业务网是处于正常状态的,那么在生成第一计算节点的第一状态信息时,所依据的就是该业务网的正常网络服务状态。
在检测出各服务的服务状态后,比如至少一个软件服务的软件服务状态以及至少一个网络服务的网络服务状态,即可针对在连续多个检测时间所检测出的各服务的服务状态进行判断,即,如果各服务中存在至少一个服务在连续多个检测时间的服务状态为异常状态,比如某一个服务在连续多个检测时间的服务状态均为异常状态,或者某几个服务在连续多个检测时间的服务状态均为异常状态,则可以更加可靠准确地确定该第一计算节点就是处于异常状态(或故障状态),同时生成该第一计算节点的异常状态信息;如果各服务在连续多个检测时间的各服务状态均为正常状态,也即是,每个服务在连续多个检测时间所对应的各服务状态均为正常状态,则可以更加可靠准确地确定该第一计算节点就是处于正常状态,同时生成该第一计算节点的正常状态信息,从而可以为控制节点准确地判断出故障节点提供支持。示例性地,以至少一个软件服务中的nova-compute为例,且以连续三个检测周期为例,如果该nova-compute在连续三个检测周期所确定的服务状态均为异常状态,也即是,该nova-compute在连续三个检测周期中每个检测周期检测为异常时重启后的服务状态仍为异常状态,则可以判断该nova-compute就是处于异常状态,那么就可以将该nova-compute所在的第一计算节点的状态确定为异常状态,也即是,将该nova-compute所在的第一计算节点的状态从在线online状态设置为离线offline状态。或者,如果至少一个软件服务以及至少一个网络服务在连续三个检测周期所确定的服务状态均为正常状态,则可以该第一计算节点的状态确定为正常状态,也即是,将该第一计算节点的状态设置为在线online状态。
步骤202,所述第一计算节点将所述第一计算节点的第一状态信息同步给m-1个第二计算节点。
本发明实施例中,在生成第一计算节点的第一状态信息后,可以将该第一计算节点的第一状态信息以组播的方式同步给其它m-1个第二计算节点,以便实现每个计算节点的状态信息的分布式存储,比如该第一计算节点将该第一计算节点的第一状态信息以组播的方式从业务网、管理网以及存储网来同步给其它m-1个第二计算节点。其中,第二计算节点为m个计算节点中的除第一计算节点外的任一个。如此,可以避免由于控制节点只能通过管理网与计算节点相通,而管理网故障后,计算节点上的虚拟机业务并未中断,导致针对计算节点的故障误判从而造成故障扩大化;而且,集群中各计算节点的状态信息会同步到该集群中的每一个计算节点上,可以避免由于故障计算节点仅与控制节点通信中断,但计算节点的服务正常并与其它计算节点通信正常,从而导致控制节点将该计算节点误判为故障节点。
步骤203,针对每个第二计算节点,所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况,确定所述第二计算节点的第二状态信息。
本发明实施例中,在第一计算节点启动后,该第一计算节点也会与各第二计算节点进行心跳交互,也即是,该第一计算节点会发送心跳检测报文给各第二计算节点,通过各第二计算节点针对心跳检测报文的响应状况,来确定该第一计算节点与各第二计算节点之间的通信连接是否均处于正常连接状态。具体地,针对每个第二计算节点,该第一计算节点会发送心跳检测报文给该第二计算节点,如果在设定时间内未收到该第二计算节点针对心跳检测报文的响应报文,则确定该第一计算节点与该第二计算节点之间的通信连接处于中断状态,并不能接收到该第二计算节点所发送的状态信息,则可以直接确定该第二计算节点处于异常状态,同时生成该第二计算节点的异常状态信息;如果在设定时间内收到该第二计算节点针对心跳检测报文的响应报文,则确定该第一计算节点与该第二计算节点之间的通信连接处于正常状态,则可以需要根据所接收的该第二计算节点发送的状态信息来确定该第二计算节点是否处于正常状态,比如该第二计算节点发送的状态信息为异常状态信息,则生成该第二计算节点的异常状态信息。如此,该方案通过基于该第一计算节点与该第二计算节点之间的通信状况以及所接收到的第二计算节点发送的状态信息,能够更加可靠准确地确定出该第二计算节点是处于正常状态还是处于异常状态。
步骤204,所述第一计算节点发送所述m个计算节点的状态信息给所述控制节点。
本发明实施例中,在第一计算节点确定其它m-1个第二计算节点各自的第二状态信息后,即可将该第一计算节点的第一状态信息以及其它m-1个第二计算节点各自的第二状态信息打包为一个数据包,该数据包中包含m个计算节点的状态信息,也即是包括该第一计算节点的第一状态信息以及其它m-1个第二计算节点各自的第二状态信息。然后,将该m个计算节点的状态信息发送给控制节点。其中,同理,针对其它m-1个第二计算节点中的每个第二计算节点,该第二计算节点也可以确定出m个计算节点的状态信息,并将该第二计算节点所确定的m个计算节点的状态信息发送给控制节点,以便控制节点在接收到m个计算节点各自发送的m个计算节点的状态信息后,针对m个计算节点各自发送的m个计算节点的状态信息进行相应的处理。
步骤205,所述控制节点对所述m个计算节点各自发送的m个计算节点的状态信息进行处理,并针对任一计算节点,在确定所述计算节点满足虚拟机迁移条件时,将所述计算节点上的各虚拟机进行迁移。
本发明实施例中,在控制节点的收集组件中设置三个具有不同执行功能的进程,以便该三个不同的进程分别执行不同的任务,从而使得收集组件所承载的各任务能够及时地并行执行,从而可以有效地提升收集组件处理任务的效率。其中,控制节点通过配置的收集组件中的集群计算节点信息收集进程,分别接收m个计算节点各自发送的m个计算节点的状态信息;通过计算节点状态检测进程,统计m个计算节点各自发送的m个计算节点的状态信息,以便准确地确定出每个计算节点的状态信息为异常状态信息的数量,同时也可以确定出每个计算节点的状态信息为正常状态信息的数量;以及在确定计算节点的状态信息为异常状态信息的数量大于等于设定数量阈值时,通过虚拟机迁移进程,将计算节点上的各虚拟机进行迁移。其中,设定数量阈值可以根据本领域技术人员的经验进行设置或者根据实际应用场景进行设置,本发明实施例对此并不作限定。示例性地,假设有三个计算节点,即计算节点A、计算节点B和计算节点C,假设设定数量阈值为2。假设计算节点A发送给控制节点的三个计算节点的状态信息分别为:计算节点A的状态为正常状态,即在线online状态;计算节点B的状态为异常状态,即离线offline状态;计算节点C的状态为正常状态,即在线online状态。并假设计算节点B发送给控制节点的三个计算节点的状态信息分别为:计算节点A的状态为异常状态,即离线offline状态;计算节点B的状态为正常状态,即在线online状态;计算节点C的状态为异常状态,即离线offline状态。以及假设计算节点C发送给控制节点的三个计算节点的状态信息分别为:计算节点A的状态为异常状态,即离线offline状态;计算节点B的状态为正常状态,即在线online状态;计算节点C的状态为正常状态,即在线online状态。如此,通过计算节点状态检测进程,统计三个计算节点各自发送的三个计算节点的状态信息,即可统计出计算节点A的状态为正常状态的数量为1,为异常状态的数量为2;计算节点B的状态为正常状态的数量为2,为异常状态的数量为1;计算节点C的状态为正常状态的数量为2,为异常状态的数量为1。那么就可以确定计算节点A的状态为异常状态的数量2等于2,符合虚拟机迁移条件,并确定计算节点B的状态为异常状态的数量1小于2,不符合虚拟机迁移条件,以及确定计算节点C的状态为异常状态的数量1小于2,不符合虚拟机迁移条件。因此,控制节点可以通过虚拟机迁移进程,将计算节点A上的各虚拟机进行迁移。
其中,在将计算节点(即故障节点)上的各虚拟机进行迁移之前,控制节点需要通过收集组件将该故障节点进行隔离,以便防止用户在继续访问该故障节点时不能正常使用该故障节点上的各服务,也即是不能正常使用该故障节点上各虚拟机所承载的各服务,从而使得因该故障节点上各服务的中断而给用户带来极大地不便,并可以避免用户或租户在新创建虚拟机时使用该故障节点。具体地,在将故障节点上的各虚拟机进行迁移之前,通过收集组件将故障节点进行隔离,并将故障节点的状态标记为不可用状态,同时,基于收集组件,通过带外管理网,调用计算节点的管理接口(比如IPMI管理接口)进行重启该故障节点,得到该故障节点重启后的状态,如此在尝试恢复故障节点的正常状态时也会释放虚拟机进程对存储IO(input/output,输入输出)的占用,以便后续在迁移完成该故障节点上的各虚拟机后能够正常地使用各虚拟机。如果该故障节点重启后的状态为可用状态,也即是该故障节点在重启后恢复正常状态,那么控制节点可以通过收集组件解除针对计算节点的隔离,如果该故障节点重启后的状态仍然为不可用状态,也即是该故障节点在重启后没有恢复正常状态,那么控制节点不会解除针对计算节点的隔离。如此,通过针对故障节点进行有效地隔离,并将该故障节点的状态标记为不可用状态,那么在用户需要访问这一故障节点时,即可将用户的访问转移到承载该故障节点的相应服务的计算节点(即承载相应服务的虚拟机所迁移的计算节点)上,以便用户能够及时准确地使用所需的服务,从而可以有效地确保故障节点上业务服务的连续性、可靠性。
上述实施例表明,通过针对计算节点的各服务进行多维度的周期性检测来确定计算节点的状态信息,可以便于更加全面且更加综合性的评估计算节点的状态,有助于避免因控制节点对计算节点的状态的误判导致计算节点的故障影响范围扩大化,从而可以实现针对故障节点的精准判断,并针对故障节点上的各虚拟机进行迁移,以此可以有效地确保故障节点上业务服务的连续性、可靠性。具体来说,第一计算节点在确定满足第一计算节点的各服务的检测时间时,通过针对该第一计算节点的各服务进行多维度地检测,以此可以更加全面地获取到该第一计算节点的服务状态信息,并根据该全面的服务状态信息能够准确地确定出该第一计算节点的第一状态信息,同时针对每个第二计算节点,基于该第二计算节点反馈的状态信息以及第一计算节点与该第二计算节点之间的通信状况,即可准确地确定出该第二计算节点的第二状态信息。然后,将第一计算节点的第一状态信息以及m-1个第二计算节点各自的第二状态信息发送给控制节点,以使控制节点能够综合m个计算节点各自所发送的m个计算节点的状态信息,即可准确地判断出故障节点,并可以针对故障节点上的各虚拟机进行迁移。如此,该方案通过多维度地周期性检测计算节点的状态信息,来辅助控制节点准确地判断出故障节点,并将故障节点上的各虚拟机进行迁移,即可有效地确保故障节点上业务服务的连续性、可靠性。
基于相同的技术构思,图3示例性的示出了本发明实施例提供的一种基于OpenStack的节点虚拟机迁移装置,该装置可以执行基于OpenStack的节点虚拟机迁移方法的流程。其中,本发明实施例中的基于OpenStack的节点虚拟机迁移装置适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统。
如图3所示,该装置包括:
检测单元301,用于在确定满足所述第一计算节点的各服务的检测时间时,对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态,生成所述第一计算节点的第一状态信息,将所述第一计算节点的第一状态信息同步给m-1个第二计算节点;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
第一处理单元302,用于针对每个第二计算节点,基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况,确定所述第二计算节点的第二状态信息,并将所述m个计算节点的状态信息发送给所述控制节点;所述m个计算节点的状态信息包括所述第一计算节点的第一状态信息以及所述m-1个第二计算节点各自的第二状态信息;所述控制节点用于通过所述m个计算节点的状态信息,在确定至少一个计算节点满足虚拟机迁移条件时将所述至少一个计算节点上的各虚拟机进行迁移。
可选地,所述检测单元301具体用于:
若确定所述各服务中存在至少一个服务在连续多个检测时间的服务状态为异常状态,则生成所述第一计算节点的异常状态信息;
所述第一计算节点若确定所述各服务在连续多个检测时间的服务状态均为正常状态,则生成所述第一计算节点的正常状态信息。
可选地,所述检测单元301具体用于:
通过配置的监控组件,在确定满足各服务的检测时间时,对所述各服务中的至少一个软件服务和至少一个网络服务进行检测,得到所述至少一个软件服务的软件服务状态以及所述至少一个网络服务的网络服务状态。
可选地,所述检测单元301还用于:
针对任一软件服务,在通过所述监控组件确定所述软件服务的软件服务状态为异常状态时,重启所述软件服务,得到重启后的软件服务状态,并将所述重启后的软件服务状态作为用于生成所述第一计算节点的第一状态信息所需的软件服务状态;以及,
针对任一网络服务,在通过所述监控组件确定所述网络服务的网络服务状态为异常状态时,重启所述网络服务,得到重启后的网络服务状态,并将所述重启后的网络服务状态作为用于生成所述第一计算节点的第一状态信息所需的网络服务状态。
可选地,所述第一处理单元302具体用于:
若确定所述第一计算节点与所述第二计算节点之间的通信状况为异常,则生成所述第二计算节点的异常状态信息;
若确定所述第一计算节点与所述第二计算节点之间的通信状况为正常,且确定所述第二计算节点反馈的状态信息为正常状态信息,则生成所述第二计算节点的正常状态信息;或者,所述第一计算节点若确定所述第一计算节点与所述第二计算节点之间的通信状况为正常,且确定所述第二计算节点反馈的状态信息为异常状态信息,则生成所述第二计算节点的异常状态信息。
基于相同的技术构思,图4示例性的示出了本发明实施例提供的另一种基于OpenStack的节点虚拟机迁移装置,该装置可以执行基于OpenStack的节点虚拟机迁移方法的流程。其中,本发明实施例中的基于OpenStack的节点虚拟机迁移装置适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统。
如图4所示,该装置包括:
接收单元401,用于接收所述m个计算节点各自发送的m个计算节点的状态信息;所述m个计算节点的状态信息包括第一计算节点的第一状态信息以及m-1个第二计算节点各自的第二状态信息;所述第一计算节点的第一状态信息是在确定满足所述第一计算节点的各服务的检测时间时对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态生成的;每个第二计算节点的第二状态信息是所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况确定的;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
第二处理单元402,用于对所述m个计算节点各自发送的m个计算节点的状态信息进行处理,并针对任一计算节点,在确定所述计算节点满足虚拟机迁移条件时,将所述计算节点上的各虚拟机进行迁移。
可选地,所述接收单元401具体用于:
通过配置的收集组件中的集群计算节点信息收集进程,分别接收所述m个计算节点各自发送的m个计算节点的状态信息;
所述第二处理单元402具体用于:
通过收集组件中的计算节点状态检测进程,统计所述m个计算节点各自发送的m个计算节点的状态信息,确定出每个计算节点的状态信息为异常状态信息的数量;
针对任一计算节点,若确定所述计算节点的状态信息为异常状态信息的数量大于等于设定数量阈值,则通过所述收集组件中的虚拟机迁移进程,将所述计算节点上的各虚拟机进行迁移。
可选地,所述第二处理单元402还用于:
在将所述计算节点上的各虚拟机进行迁移之前,通过所述收集组件将所述计算节点进行隔离,并将所述计算节点的状态标记为不可用状态;
通过所述收集组件,调用所述计算节点的管理接口重启所述计算节点,得到所述计算节点重启后的状态;
若所述计算节点重启后的状态为可用状态,则通过所述收集组件解除针对所述计算节点的隔离,否则继续对所述计算节点进行隔离。
基于相同的技术构思,本发明实施例还提供了一种计算设备,如图5所示,包括至少一个处理器501,以及与至少一个处理器连接的存储器502,本发明实施例中不限定处理器501与存储器502之间的具体连接介质,图5中处理器501和存储器502之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令,可以执行前述的基于OpenStack的节点虚拟机迁移方法中所包括的步骤。
其中,处理器501是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器502内的指令以及调用存储在存储器502内的数据,从而实现数据处理。可选的,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器501可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合基于OpenStack的节点虚拟机迁移方法实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述基于OpenStack的节点虚拟机迁移方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种基于OpenStack的节点虚拟机迁移方法,其特征在于,适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统,所述方法包括:
第一计算节点在确定满足所述第一计算节点的各服务的检测时间时,对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态,生成所述第一计算节点的第一状态信息,将所述第一计算节点的第一状态信息同步给m-1个第二计算节点;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
针对每个第二计算节点,所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况,确定所述第二计算节点的第二状态信息,并将所述m个计算节点的状态信息发送给所述控制节点;所述m个计算节点的状态信息包括所述第一计算节点的第一状态信息以及所述m-1个第二计算节点各自的第二状态信息;所述控制节点用于通过所述m个计算节点的状态信息,在确定至少一个计算节点满足虚拟机迁移条件时将所述至少一个计算节点上的各虚拟机进行迁移。
2.如权利要求1所述的方法,其特征在于,所述根据所述各服务的服务状态,生成所述第一计算节点的第一状态信息,包括:
所述第一计算节点若确定所述各服务中存在至少一个服务在连续多个检测时间的服务状态为异常状态,则生成所述第一计算节点的异常状态信息;
所述第一计算节点若确定所述各服务在连续多个检测时间的服务状态均为正常状态,则生成所述第一计算节点的正常状态信息。
3.如权利要求2所述的方法,其特征在于,所述对所述各服务进行检测,包括:
所述第一计算节点通过配置的监控组件,在确定满足各服务的检测时间时,对所述各服务中的至少一个软件服务和至少一个网络服务进行检测,得到所述至少一个软件服务的软件服务状态以及所述至少一个网络服务的网络服务状态。
4.如权利要求3所述的方法,其特征在于,还包括:
针对任一软件服务,所述第一计算节点在通过所述监控组件确定所述软件服务的软件服务状态为异常状态时,重启所述软件服务,得到重启后的软件服务状态,并将所述重启后的软件服务状态作为用于生成所述第一计算节点的第一状态信息所需的软件服务状态;以及,
针对任一网络服务,所述第一计算节点在通过所述监控组件确定所述网络服务的网络服务状态为异常状态时,重启所述网络服务,得到重启后的网络服务状态,并将所述重启后的网络服务状态作为用于生成所述第一计算节点的第一状态信息所需的网络服务状态。
5.如权利要求1所述的方法,其特征在于,所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况,确定所述第二计算节点的第二状态信息,包括:
所述第一计算节点若确定所述第一计算节点与所述第二计算节点之间的通信状况为异常,则生成所述第二计算节点的异常状态信息;
所述第一计算节点若确定所述第一计算节点与所述第二计算节点之间的通信状况为正常,且确定所述第二计算节点反馈的状态信息为正常状态信息,则生成所述第二计算节点的正常状态信息;或者,所述第一计算节点若确定所述第一计算节点与所述第二计算节点之间的通信状况为正常,且确定所述第二计算节点反馈的状态信息为异常状态信息,则生成所述第二计算节点的异常状态信息。
6.一种基于OpenStack的节点虚拟机迁移方法,其特征在于,适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统,所述方法包括:
控制节点接收所述m个计算节点各自发送的m个计算节点的状态信息;所述m个计算节点的状态信息包括第一计算节点的第一状态信息以及m-1个第二计算节点各自的第二状态信息;所述第一计算节点的第一状态信息是在确定满足所述第一计算节点的各服务的检测时间时对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态生成的;每个第二计算节点的第二状态信息是所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况确定的;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
所述控制节点对所述m个计算节点各自发送的m个计算节点的状态信息进行处理,并针对任一计算节点,在确定所述计算节点满足虚拟机迁移条件时,将所述计算节点上的各虚拟机进行迁移。
7.如权利要求6所述的方法,其特征在于,所述控制节点接收所述m个计算节点各自发送的m个计算节点的状态信息,包括:
所述控制节点通过配置的收集组件中的集群计算节点信息收集进程,分别接收所述m个计算节点各自发送的m个计算节点的状态信息;
所述控制节点对所述m个计算节点各自发送的m个计算节点的状态信息进行处理,并针对任一计算节点,在确定所述计算节点满足虚拟机迁移条件时,将所述计算节点上的各虚拟机进行迁移,包括:
所述控制节点通过收集组件中的计算节点状态检测进程,统计所述m个计算节点各自发送的m个计算节点的状态信息,确定出每个计算节点的状态信息为异常状态信息的数量;
针对任一计算节点,若确定所述计算节点的状态信息为异常状态信息的数量大于等于设定数量阈值,则所述控制节点通过所述收集组件中的虚拟机迁移进程,将所述计算节点上的各虚拟机进行迁移。
8.如权利要求6所述的方法,其特征在于,在将所述计算节点上的各虚拟机进行迁移之前,还包括:
所述控制节点通过所述收集组件将所述计算节点进行隔离,并将所述计算节点的状态标记为不可用状态;
所述控制节点通过所述收集组件,调用所述计算节点的管理接口重启所述计算节点,得到所述计算节点重启后的状态;
若所述计算节点重启后的状态为可用状态,则所述控制节点通过所述收集组件解除针对所述计算节点的隔离,否则继续对所述计算节点进行隔离。
9.一种基于OpenStack的节点虚拟机迁移装置,其特征在于,适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统,所述装置包括:
检测单元,用于在确定满足所述第一计算节点的各服务的检测时间时,对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态,生成所述第一计算节点的第一状态信息,将所述第一计算节点的第一状态信息同步给m-1个第二计算节点;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
第一处理单元,用于针对每个第二计算节点,基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况,确定所述第二计算节点的第二状态信息,并将所述m个计算节点的状态信息发送给所述控制节点;所述m个计算节点的状态信息包括所述第一计算节点的第一状态信息以及所述m-1个第二计算节点各自的第二状态信息;所述控制节点用于通过所述m个计算节点的状态信息,在确定至少一个计算节点满足虚拟机迁移条件时将所述至少一个计算节点上的各虚拟机进行迁移。
10.一种基于OpenStack的节点虚拟机迁移装置,其特征在于,适用于具有一个控制节点和m个计算节点的虚拟机管理控制系统,所述装置包括:
接收单元,用于接收所述m个计算节点各自发送的m个计算节点的状态信息;所述m个计算节点的状态信息包括第一计算节点的第一状态信息以及m-1个第二计算节点各自的第二状态信息;所述第一计算节点的第一状态信息是在确定满足所述第一计算节点的各服务的检测时间时对所述各服务进行检测,并根据所述各服务在连续多个检测时间的服务状态生成的;每个第二计算节点的第二状态信息是所述第一计算节点基于所述第二计算节点反馈的状态信息以及所述第一计算节点与所述第二计算节点之间的通信状况确定的;所述第一计算节点为所述m个计算节点中的任一个;第二计算节点为所述m个计算节点中的除所述第一计算节点外的任一个;
第二处理单元,用于对所述m个计算节点各自发送的m个计算节点的状态信息进行处理,并针对任一计算节点,在确定所述计算节点满足虚拟机迁移条件时,将所述计算节点上的各虚拟机进行迁移。
11.一种计算设备,其特征在于,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1至8任一权利要求所述的方法。
12.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1至8任一权利要求所述的方法。
13.一种计算机程序产品,其特征在于,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至8任一权利要求所述的方法。
CN202111434934.2A 2021-11-29 2021-11-29 一种基于OpenStack的节点虚拟机迁移方法及装置 Active CN114064217B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111434934.2A CN114064217B (zh) 2021-11-29 2021-11-29 一种基于OpenStack的节点虚拟机迁移方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111434934.2A CN114064217B (zh) 2021-11-29 2021-11-29 一种基于OpenStack的节点虚拟机迁移方法及装置

Publications (2)

Publication Number Publication Date
CN114064217A true CN114064217A (zh) 2022-02-18
CN114064217B CN114064217B (zh) 2024-04-19

Family

ID=80277328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111434934.2A Active CN114064217B (zh) 2021-11-29 2021-11-29 一种基于OpenStack的节点虚拟机迁移方法及装置

Country Status (1)

Country Link
CN (1) CN114064217B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115190040A (zh) * 2022-05-23 2022-10-14 浪潮通信技术有限公司 虚拟机高可用的实现方法及装置
CN115499298A (zh) * 2022-11-15 2022-12-20 济南浪潮数据技术有限公司 一种虚拟机热迁移方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104065716A (zh) * 2014-06-18 2014-09-24 江苏物联网研究发展中心 一种基于OpenStack的提供Hadoop服务的方法
CN107544839A (zh) * 2016-06-27 2018-01-05 腾讯科技(深圳)有限公司 虚拟机迁移系统、方法及装置
CN107885576A (zh) * 2017-10-16 2018-04-06 北京易讯通信息技术股份有限公司 一种基于OpenStack的私有云中虚拟机HA的方法
US20190268262A1 (en) * 2015-12-31 2019-08-29 New H3C Technologies Co., Ltd Controlling packets of virtual machines
CN110377396A (zh) * 2019-07-04 2019-10-25 深圳先进技术研究院 一种虚拟机自动迁移方法、系统及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104065716A (zh) * 2014-06-18 2014-09-24 江苏物联网研究发展中心 一种基于OpenStack的提供Hadoop服务的方法
US20190268262A1 (en) * 2015-12-31 2019-08-29 New H3C Technologies Co., Ltd Controlling packets of virtual machines
CN107544839A (zh) * 2016-06-27 2018-01-05 腾讯科技(深圳)有限公司 虚拟机迁移系统、方法及装置
CN107885576A (zh) * 2017-10-16 2018-04-06 北京易讯通信息技术股份有限公司 一种基于OpenStack的私有云中虚拟机HA的方法
CN110377396A (zh) * 2019-07-04 2019-10-25 深圳先进技术研究院 一种虚拟机自动迁移方法、系统及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115190040A (zh) * 2022-05-23 2022-10-14 浪潮通信技术有限公司 虚拟机高可用的实现方法及装置
CN115190040B (zh) * 2022-05-23 2023-09-29 浪潮通信技术有限公司 虚拟机高可用的实现方法及装置
CN115499298A (zh) * 2022-11-15 2022-12-20 济南浪潮数据技术有限公司 一种虚拟机热迁移方法、装置、设备及介质
CN115499298B (zh) * 2022-11-15 2023-02-28 济南浪潮数据技术有限公司 一种虚拟机热迁移方法、装置、设备及介质

Also Published As

Publication number Publication date
CN114064217B (zh) 2024-04-19

Similar Documents

Publication Publication Date Title
CN102355369B (zh) 虚拟化集群系统及其处理方法和设备
CN107526659B (zh) 用于失效备援的方法和设备
CN108847982B (zh) 一种分布式存储集群及其节点故障切换方法和装置
US8910160B1 (en) Handling of virtual machine migration while performing clustering operations
WO2017152763A1 (zh) 物理机故障分类处理方法、装置和虚拟机恢复方法、系统
CN107544839B (zh) 虚拟机迁移系统、方法及装置
WO2017067484A1 (zh) 一种虚拟化数据中心调度系统和方法
CN109656742B (zh) 一种节点异常处理方法、装置及存储介质
US9098439B2 (en) Providing a fault tolerant system in a loosely-coupled cluster environment using application checkpoints and logs
CN114064217B (zh) 一种基于OpenStack的节点虚拟机迁移方法及装置
EP3472971B1 (en) Technique for resolving a link failure
CN111953566B (zh) 一种基于分布式故障监控的方法和虚拟机高可用系统
CN112506702B (zh) 数据中心容灾方法、装置、设备及存储介质
CN103152419A (zh) 一种云计算平台的高可用集群管理方法
CN103440160A (zh) 虚拟机恢复方法和虚拟机迁移方法以及装置与系统
WO2017075989A1 (zh) 虚拟机迁移方法、装置及系统
CN107656705B (zh) 一种计算机存储介质和一种数据迁移方法、装置及系统
CN108140035B (zh) 分布式系统的数据库复制方法及装置
CN104158707A (zh) 一种检测并处理集群脑裂的方法和装置
CN104899071A (zh) 集群中虚拟机的恢复方法和系统
CN117130730A (zh) 面向联邦Kubernetes集群的元数据管理方法
CN112068935A (zh) kubernetes程序部署监控方法、装置以及设备
CN109684130B (zh) 一种机房间数据备份的方法及装置
CN103186435A (zh) 系统错误处理方法与使用该方法的服务器系统
US11544091B2 (en) Determining and implementing recovery actions for containers to recover the containers from failures

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
GR01 Patent grant
GR01 Patent grant