CN116382850B - 一种利用多存储心跳检测的虚拟机高可用管理装置及系统 - Google Patents

一种利用多存储心跳检测的虚拟机高可用管理装置及系统 Download PDF

Info

Publication number
CN116382850B
CN116382850B CN202310372476.7A CN202310372476A CN116382850B CN 116382850 B CN116382850 B CN 116382850B CN 202310372476 A CN202310372476 A CN 202310372476A CN 116382850 B CN116382850 B CN 116382850B
Authority
CN
China
Prior art keywords
heartbeat
virtual machine
storage
node
current node
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
Application number
CN202310372476.7A
Other languages
English (en)
Other versions
CN116382850A (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.)
Beijing Zhiling Haina Technology Co ltd
Original Assignee
SmartX Inc
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 SmartX Inc filed Critical SmartX Inc
Priority to CN202310372476.7A priority Critical patent/CN116382850B/zh
Publication of CN116382850A publication Critical patent/CN116382850A/zh
Application granted granted Critical
Publication of CN116382850B publication Critical patent/CN116382850B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及虚拟机高可用技术领域,提供了一种利用多存储心跳检测的虚拟机高可用管理装置,包括:存储初始化模块,在存储中分配一块空间用于集群中节点的心跳检测;心跳发送模块,运行在所述集群中所有的所述节点上,用于定期更新当前所述节点在所述存储中的心跳信息;虚拟机清理模块,当当前所述节点超过预设时间更新在所述存储中的所述心跳信息失败时,完成虚拟机的清理工作;心跳检测模块,用于检测到所述节点的故障并在其他健康的所述节点上重建故障的所述节点上受影响的所述虚拟机。通过在多个存储上进行心跳检测,提出虚拟机在存储上的高可用这一更为细粒度的高可用概念,避免了因为存储单点故障导致错误地触发虚拟机高可用。

Description

一种利用多存储心跳检测的虚拟机高可用管理装置及系统
技术领域
本发明涉及虚拟机高可用的技术领域,尤其涉及一种利用多存储心跳检测的虚拟机高可用管理装置及系统。
背景技术
虚拟机高可用是一个虚拟机服务平台的高级功能,目的是为了保证虚拟机因宿主机故障而被终止时能够在集群其他健康节点上拉起运行,这里的故障指掉电关机,宕机等原因导致主机上所有应用都无法运行。需要注意的是,这里我们仅关心虚拟机的高可用,而不关心虚拟机内业务的高可用。
理想状态下我们希望能够区分主机故障和网络故障,因为网络故障通常不会影响虚拟机的运行,只有主机故障时才需要在其他节点重建虚拟机。然而在分布式集群中,我们无法区分主机故障和网络故障,因为故障的检测需要通过网络进行,我们只能将这两种情况做相同处理,即认为故障节点上的虚拟机已经停止运行并且需要在其他节点上被拉起运行。在网络故障场景下,为了保证同一个虚拟机不会同时在两个节点上运行,故障节点需要在其他节点判断其故障之前清理其上所有的虚拟机进程,本领域技术人员可以理解,这会导致使用共享存储的磁盘数据丢失甚至损坏。
当前主流的解决方案是在存储网络上进行心跳检测,因为存储或者存储网络故障时,虚拟机大概率也无法正常运行,此时触发虚拟机的高可用机制是一种合理的行为。为避免leader切换导致发送心跳的目标地址改变,一般通过向固定IP地址的存储中读写心跳实现存储网络上的心跳检测。如图1所示,图1是基于存储心跳的虚拟机高可用方案系统结构示意图,运行在集群中每台主机上的心跳发送模块hb sender通过存储网络向iSCSI存储中写入心跳,由集群中运行在单台主机上的心跳检测模块hb detector通过存储网络检测所有节点在iSCSI存储中的心跳信息,当发现某节点在存储中的心跳过期时(即超过一段时间没有更新),认定该节点故障,此时需要在其他健康节点重建故障节点上的虚拟机,重建虚拟机之前需要故障节点完成其上虚拟机实例的清理。若hb detector所在节点故障,集群中其他节点需要重新选举一个健康节点来运行hb detector,执行存储网络上的心跳检测。
需要注意的是,集群中节点在通过存储网络读写iSCSI存储时,需要采用block IO对其进行读写操作,避免节点挂载lun设备并使用文件系统访问iSCSI存储,本领域技术人员可以理解,文件系统的缓存可能会影响hb detector对心跳信息判断的准确性。若存储采用NFS这类NAS存储,节点在挂载NFS存储后需要对其进行格式化,并采用block IO的形式访问该存储。
以上现有技术中的方案,存在以下问题:
采用单一的存储心跳来判断集群节点的健康状态,存在单点故障,很容易因为存储本身故障导致误判,从而使原本正常运行的虚拟机被重建,这会造成用户正常业务一定时间的中断。
通过增加存储网络中使用的心跳存储数量可以在一定程度上避免上述单点故障问题,但这仍然无法避免某些正常工作的虚拟机被重建。例如,当故障是由心跳存储故障导致时,未使用故障存储的虚拟机在hb detector判定节点故障时仍然在正常运行,此时它将被重建。
重建故障节点上的虚拟机可能导致集群中存在同一虚拟机的多个实例,这是由于虚拟机在健康节点上被重建时,故障节点上的实例并未清理完成。本领域技术人员可以理解,多个虚拟机同时读写相同磁盘时,可能导致磁盘数据丢失甚至损坏。
发明内容
针对上述问题,本发明的目的在于提供一种利用多存储心跳检测的虚拟机高可用管理装置,通过在多个存储上进行心跳检测,提出虚拟机在存储上的高可用这一更为细粒度的高可用概念,避免了因为存储单点故障导致错误地触发虚拟机高可用。
本发明的上述发明目的是通过以下技术方案得以实现的:
一种利用多存储心跳检测的虚拟机高可用管理装置,包括:
存储初始化模块,在存储中分配一块空间用于集群中节点的心跳检测;
心跳发送模块,运行在所述集群中所有的所述节点上,用于定期更新当前所述节点在所述存储中的心跳信息;
虚拟机清理模块,当当前所述节点超过预设时间更新在所述存储中的所述心跳信息失败时,完成虚拟机的清理工作;
心跳检测模块,用于检测到所述节点的故障并在其他健康的所述节点上重建故障的所述节点上受影响的所述虚拟机。
进一步地,在所述存储初始化模块中,在所述存储中分配一块空间用于所述集群中所述节点的心跳检测,具体包括:
S101:当有新的所述存储需要添加到所述集群中时,记录所述存储的包括IP地址、存储类型、容量、IO时间间隔在内的基本信息,并将所述基本信息记录到所述集群的数据库中;
S102:在所述存储中创建一块预设大小的磁盘,并将所述磁盘格式化为若干个区块,每个所述区块用于记录一个所述节点的所述心跳信息;
S103:在所述集群中所有的所述节点上创建所述存储的所述心跳发送模块,并将步骤S102中创建的所述磁盘挂载到所有的所述节点上,当前所述节点上的所述心跳发送模块开始更新所述磁盘上与当前所述节点对应的所述区块上的所述心跳信息;
S104:在所述集群中创建所述心跳检测模块的多个实例,并在多个所述实例中选举产生一个leader负责检测所述集群中所有的所述节点的存储心跳,并当leader发生故障时,其余所述实例选举产生新的leader执行心跳检测任务。
进一步地,在步骤S102中,每个所述区块上记录的所述节点的所述心跳信息,具体包括:
Host ID:所述集群中为每个所述节点对应的主机分配的唯一ID,并与当前所述节点对应的所述区块的编号对应;
Host name:所述集群中每个所述节点对应的所述主机的主机名,所述集群中的所有的所述主机名不重复;
Timestamp:所述节点对应的所述主机启动后正常的运行时间;
gen:所述节点对应的所述主机加入所述存储的次数。
进一步地,所述心跳发送模块,定期更新当前所述节点在所述存储中的所述心跳信息,具体为:
S201:读取所述磁盘上与当前所述节点对应的所述区块上的所述心跳信息;
S202:依据当前所述节点的所述主机信息,设置所述心跳信息,其中gen值需要自加1;
S203:在所述磁盘中与当前所述节点对应的所述区块上更新所述心跳信息,只有当所述心跳发送模块成功更新所述心跳信息后,在所述存储上开启高可用功能的所述虚拟机才能被调度到当前所述节点上;
S204:所述心跳发送模块以第一数量个所述IO时间间隔的区间定期更新所述心跳信息;
S205:若所述心跳发送模块更新所述心跳信息失败,则所述心跳发送模块以第二数量个所述IO时间间隔更新所述心跳信息,这一步骤将持续到距离上一次成功更新所述心跳信息第三数量个所述IO时间间隔前,直到再次成功更新所述心跳信息,其中所述第一数量大于所述第二数量,所述第三数量大于所述第一数量;
S206:当距离上一次成功更新所述心跳信息所述第三数量个所述IO时间间隔后,还未成功更新所述心跳信息时,则所述心跳发送模块不再尝试更新所述心跳信息,进入修复模式。
进一步地,所述虚拟机清理模块,进行所述虚拟机的清理工作,具体为:
S301:所述虚拟机清理模块打开看门狗设备,并预设所述看门狗设备的超时时间,并当所述虚拟机清理模块超过所述超时时间没有喂狗时,所述看门狗设备将强制重置所述主机,所述主机重置后其上的所述虚拟机不会被自动拉起运行;
S302:检测当前所述节点上的所有的所述存储的所述心跳发送模块的状态;
S303:若当前所述节点上的所有的所述心跳发送模块都没有处于所述修复模式的,则所述虚拟机清理模块喂狗,避免所述看门狗设备因为超过所述超时时间强制重置所述主机,所述虚拟机清理模块成功喂狗所述IO时间间隔后,将再次回到步骤S302,重新检测当前所述节点上的所有的所述存储的所述心跳发送模块的状态;
S304:若当前所述节点上存在所述心跳发送模块处于所述修复模式,所述虚拟机清理模块尝试清理在所述心跳发送模块对应的所述存储上开启高可用的所述虚拟机。
进一步地,在步骤S304中,所述虚拟机清理模块尝试清理在所述心跳发送模块对应的所述存储上开启高可用的所述虚拟机,具体为:
清理阶段的前第一预设时间内,尝试使用SIGTERM信号使所述虚拟机的进程正常终止;
若超过所述第一预设时间之后,所述虚拟机的进程仍然存在,则使用SIGKILL信号强制终止所述虚拟机的进程;
若所述虚拟机的进程未在距离上一次所述看门狗设备喂狗的所述超时时间内被清理,则所述看门狗设备将强制重置所述主机;
其中,所述第一预设时间小于所述看门狗设备的所述超时时间。
进一步地,创建所述虚拟机时,需要指定是否开启所述虚拟机的高可用功能,同时基于所述虚拟机指定在所述虚拟机上开启高可用的所述存储的类型;仅当所述虚拟机开启高可用功能,且在所述虚拟机上开启高可用的所述存储中的至少一个所述心跳发送模块处于所述修复模式时,所述虚拟机清理模块清理所述虚拟机。
进一步地,在所述心跳检测模块中,检测到所述节点的故障并在其他健康的所述节点上重建故障的所述节点上受影响的所述虚拟机,具体为:
S401:多个所述心跳检测模块通过选举产生一个leader负责对应的所述存储中的心跳检测;
S402:所述心跳检测模块以所述IO时间间隔定期读取对应的所述存储上的所述心跳信息;
S403:当所述心跳信息读取成功时,则判断所述集群中的所有的所述节点在所述存储中的健康状态;
S404:当判断当前所述节点处于live状态时,将当前所述节点从对应的所述存储的不可调度列表中移除,表明当前所述节点可以接受调度在对应的所述存储上开启高可用的所述虚拟机;
S405:当判断当前所述节点处于failed状态时,将当前所述节点加入到对应的所述存储的不可调度列表中,表明当前所述节点不可接受调度在对应的所述存储上开启高可用的所述虚拟机;
S406:当判断当前所述节点处于dead状态时,在其他健康的所述节点上重建受影响的所述虚拟机;
S407:若所述心跳检测模块经过所述第三数量个所述IO时间间隔没有成功读取到所述存储上的所述心跳信息,则主动退出,由对应存储的其他所述心跳检测模块重新选举一个leader。
进一步地,在步骤S403中,当所述心跳信息读取成功时,则判断所述集群中的所有的所述节点在所述存储中的所述健康状态,节点的状态具体包括:
free状态:表示存储所述心跳信息的所述磁盘中当前所述节点还未发送所述心跳信息,对于不存在的所述节点,对应的所述区块将被忽略,此时Timestamp为0,当所述心跳检测模块后续读取到Timestamp不为0时,标明所述区块对应节点进入了live状态;
live状态,表示对应的所述节点处于所述健康状态,若在所述第三数量个所述IO时间间隔内,Timestamp和gen值未被更新,当前所述节点仍将处于所述健康状态,若所述第三数量个所述IO时间间隔后,Timestamp和gen值未被更新,表示当前所述节点已经进入了failed状态,若Timestamp为0则表示对应的所述节点从所述集群中被移除;
failed状态,表示当前所述节点上对应的所述存储的所述心跳发送模块处于所述修复模式,开始进行所述虚拟机的清理工作,此时,Timestamp和gen值都不会被更新,直至经过一预设时间后进入dead状态;
dead状态,表示当前所述节点上在对应的所述存储上开启高可用的所述虚拟机已经清理完成,此时可以在其他健康的所述节点上重建受影响的所述虚拟机,若观察到Timestamp和gen值被更新,表示当前所述节点已经从故障中恢复,手动删除故障节点上的所述心跳发送模块并重建;
unknown状态,一种未知状态,所述心跳检测模块首次读取到的所述心跳信息中,Timestamp和gen值不为0;若Timestamp和gen值在一预设时间内没有被更新,则继续处于未知状态;若Timestamp变为0,则表示当前所述节点从所述集群中被移除;若Timestamp或者gen值被更新,则表示当前所述节点处于live状态;若Timestamp和gen值在所述第三数量个所述IO时间间隔之后没有被更新,则当前所述节点进入failed状态,故障的所述节点上的所述心跳发送模块进入所述修复模式。
一种利用多存储心跳检测的虚拟机高可用系统,包括:采用如上述的利用多存储心跳检测的虚拟机高可用管理装置进行管理。
与现有技术相比,本发明包括以下至少一种有益效果是:
(1)本发明通过在多个存储上进行心跳检测,提出虚拟机在存储上的高可用这一更为细粒度的高可用概念,避免了因为存储单点故障导致错误地触发虚拟机高可用,并且当节点在存储上无心跳时,仅在对应存储启用高可用的的虚拟机将被清理后重建,节点上其余虚拟机将继续运行不受高可用组件影响,这一灵活的方式保证了触发高可用时不会中断用户正常运行的业务。
例如:节点上虚拟机A系统盘来自存储iSCSI,它在存储iSCSI上开启高可用,节点上虚拟机B系统盘来自存储NFS,它在存储NFS上开启高可用;节点在存储iSCSI上写入心跳失败,在存储NFS上写入心跳成功。本领域技术人员可以理解,当节点读写iSCSI存储失败时,代表节点已经无法正常访问iSCSI存储,此时虚拟机A无法读写系统盘,它通常无法正常运行,大概率会崩溃甚至无法开机,此时清理并在其他节点重建虚拟机A是一种合理的行为。虚拟机B仍在正常运行,它将不会受到高可用组件的干扰。
(2)另外,在清理受影响的虚拟机时采用看门狗设备watchdog来保证在某些极端情况下虚拟机能够在规定的时间内被清理完成,避免了因为高可用导致集群中出现同一虚拟机的多个实例同时运行的情况。本领域技术人员可以理解,当同一虚拟机的多个实例同时读写一块磁盘时,可能导致数据丢失甚至整个磁盘的损坏。
附图说明
图1为本发明当前主流的基于存储心跳的虚拟机高可用方案的结构示意图;
图2为本发明灵活利用多存储心跳检测的虚拟高可用实现结构示意图;
图3为本发明灵活利用多存储心跳检测的虚拟高可用实现结构框图;
图4为本发明灵活利用多存储心跳检测的虚拟机高可用实现一实施例中存储初始化模块流程示意图;
图5是本发明灵活利用多存储心跳检测的虚拟机高可用实现一实施例中心跳发送模块流程示意图;
图6是本发明灵活利用多存储心跳检测的虚拟机高可用实现一实施例中虚拟机清理模块流程示意图;
图7是本发明灵活利用多存储心跳检测的虚拟机高可用实现一实施例中心跳检测模块流程示意图;
图8是本发明灵活利用多存储心跳检测的虚拟机高可用实现一实施例中节点状态变化有限状态机示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
如图2所示,为本发明涉及的一种利用多存储心跳检测的虚拟机高可用管理装置的结构示意图。其中虚拟机(VM)可运行在集群任何健康节点上,且通过存储网络使用不同存储,如果存储的健康状态会影响虚拟机的正常运行,例如虚拟机的系统盘所在存储故障时将导致虚拟机崩溃甚至无法开机,此时可开启虚拟机针对该存储的高可用功能,在当前节点无法正常读写该存储时,可在其他健康节点重建该虚拟机,未在该存储上开启高可用的虚拟机不受高可用功能模块的影像。
心跳发送模块hb sender运行在集群中所有节点上,负责定期向对应存储写入心跳信息,表明当前节点可以正常读写对应存储,需要注意的是,不同存储需要采用不同的心跳发送模块hb sender负责不同的存储心跳,当超过一定时间没有向对应存储正确写入心跳信息时,则心跳发送模块hb sender认定自己已经无法正常访问该存储,此时不在尝试写入心跳信息,而是进入虚拟机的清理阶段,虚拟机清理阶段将清理对应主机所有在该存储上开启高可用功能的虚拟机。
心跳检测模块hb detector负责定期检测集群节点在对应存储上的心跳信息,不同存储使用不同的心跳检测模块hb detector,在检测到某主机在该存储上发生故障时,将在其他节点重建对应虚拟机,通常一个存储拥有多个分布在不同节点运行的心跳检测模块hb detector实例,这些实例之间需要选举一个leader担任当前心跳探测的职责,当leader发生故障时,其余实例可再次选举新的leader进行存储心跳的检测。
第一实施例
如图3所示,本实施例提供了一种利用多存储心跳检测的虚拟机高可用管理装置,包括:
存储初始化模块10,在存储中分配一块空间用于集群中节点的心跳检测;
心跳发送模块20,运行在所述集群中所有的所述节点上,用于定期更新当前所述节点在所述存储中的心跳信息;
虚拟机清理模块30,当当前所述节点超过预设时间更新在所述存储中的所述心跳信息失败时,完成虚拟机的清理工作,若虚拟机清理模块30本身故障则会触发看门狗设备watchdog强制重置主机;
心跳检测模块40,用于检测到所述节点的故障并在其他健康的所述节点上重建故障的所述节点上受影响的所述虚拟机。
以下对本实施例利用多存储心跳检测的虚拟机高可用管理装置中的每一个模块进行详细说明。
(1)存储初始化模块10
如图4所示,在所述存储初始化模块10中,在所述存储中分配一块空间用于所述集群中所述节点的心跳检测,具体包括:
S101:当有新的所述存储需要添加到所述集群中时,记录所述存储的包括IP地址、存储类型、容量、IO时间间隔(io_interval)在内的基本信息,并将所述基本信息记录到所述集群的数据库中。其中,在本实施例中IO时间间隔(io_interval)默认为10s,该参数的大小会影响高可用故障恢复的时间,若设置的值过小可能会导致虚拟机因为存储网络的延迟而错误地触发高可用,若设置的值过大则会导致虚拟机在故障发生时高可用恢复时间过长。
S102:在所述存储中创建一块预设大小的磁盘,并将所述磁盘格式化为若干个区块,每个所述区块用于记录一个所述节点的所述心跳信息。在本实施例中,举个例子来说,可以在存储中创建一块1MB大小的磁盘,并将其格式化为2048个大小为512字节的区块,每个区块用于记录一台主机的心跳信息。
其中,每个所述区块上记录的所述节点的所述心跳信息,具体包括:Host ID:所述集群中为每个所述节点对应的主机分配的唯一ID,并与当前所述节点对应的所述区块的编号对应,如取值1~2048对应区块的编号;Host name:所述集群中每个所述节点对应的所述主机的主机名,所述集群中的所有的所述主机名不重复;Timestamp:所述节点对应的所述主机启动后正常的运行时间,如可以来自文件/proc/uptime,由于没有采用系统时间,所以不要求集群中所有主机时钟同步;gen:所述节点对应的所述主机加入所述存储的次数,例如心跳发送模块hb sender启动后向该存储写入心跳时,gen值为1,由于某些原因导致心跳发送模块hb sender重启后(例如主机重启),再次向该存储写入心跳时,gen值需要完成一次自加,结果为2。
需要注意的是,心跳的读写都需要通过block IO完成,本领域技术人员可以理解,使用文件系统时由于客户端文件系统缓存可能导致其他客户端读写心跳信息存在延迟。对于NFS这类NAS存储,需要对文件进行格式化,并采用block IO方式进行读写。
S103:在所述集群中所有的所述节点上创建所述存储的所述心跳发送模块,并将步骤S102中创建的所述磁盘挂载到所有的所述节点上,当前所述节点上的所述心跳发送模块开始更新所述磁盘上与当前所述节点对应的所述区块上的所述心跳信息。
需要注意的是,不同存储由不同的心跳发送模块负责心跳信息的更新,例如添加NFS存储时,需要在集群中所有节点上创建针对于NFS存储的心跳发送模块。
S104:在所述集群中创建所述心跳检测模块的多个实例,并在多个所述实例中选举产生一个leader负责检测所述集群中所有的所述节点的存储心跳,并当leader发生故障时,其余所述实例选举产生新的leader执行心跳检测任务。
需要注意的是,不同存储由不同的心跳检测模块负责心跳检测,例如添加NFS存储时,需要在集群中添加针对NFS存储的心跳检测模块。
(2)心跳发送模块20
如图5所示,当存储上的心跳磁盘被挂载到集群所有节点后,心跳发送模块开始在磁盘内更新本节点的心跳信息。具体为:
S201:读取所述磁盘上与当前所述节点对应的所述区块上的所述心跳信息。
S202:依据当前所述节点的所述主机信息,设置包括host ID、host name、timestamp、gen值在内的所述心跳信息,其中,timestamp来自本地文件/proc/uptime,表示主机开机后正常运行的时间,gen值需要自加1。
S203:在所述磁盘中与当前所述节点对应的所述区块上更新所述心跳信息,只有当所述心跳发送模块成功更新所述心跳信息后,在所述存储上开启高可用功能的所述虚拟机才能被调度到当前所述节点上。
S204:所述心跳发送模块以第一数量个所述IO时间间隔(本实施例中为20s)的区间定期更新所述心跳信息,这里以主机上/proc/uptime中的时间更新对应区块中的timestamp值。
S205:若所述心跳发送模块更新所述心跳信息失败,则所述心跳发送模块以第二数量个所述IO时间间隔(本实施例中为10S)更新所述心跳信息,这一步骤将持续到距离上一次成功更新所述心跳信息第三数量个所述IO时间间隔(本实施例中为80S)前,直到再次成功更新所述心跳信息,其中所述第一数量大于所述第二数量,所述第三数量大于所述第一数量。
S206:当距离上一次成功更新所述心跳信息所述第三数量个所述IO时间间隔后,还未成功更新所述心跳信息时,则所述心跳发送模块不再尝试更新所述心跳信息,进入修复模式。
(3)虚拟机清理模块30
如图6所示,虚拟机清理模块30定期检测心跳发送模块10的状态,当发现心跳发送模块进入修复模式时,开始虚拟机清理流程,具体为:
S301:所述虚拟机清理模块打开看门狗设备watchdog,并预设所述看门狗设备的超时时间fire timeout(本实施例中为60S)。通过使用看门狗设备可以提高故障存储上虚拟机清理的可靠性,避免因为高可用机制导致的同一虚拟机的多个实例同时运行,本领域技术人员可以理解,多个虚拟机实例同时读写一块磁盘可能导致数据丢失甚至整个磁盘的损坏。在某些极端场景下,如虚拟机清理模块自身故障、虚拟机未在规定时间内被清理,虚拟机管理模块不会“喂狗”,并当所述虚拟机清理模块超过所述超时时间没有“喂狗”时,所述看门狗设备会因为到达超时时间将强制重置所述主机,所述主机重置后其上的所述虚拟机不会被自动拉起运行。
S302:检测当前所述节点上的所有的所述存储的所述心跳发送模块的状态。需要注意的是,虚拟机处理模块需要在集群中的所有节点上运行,且不同于心跳发送模块,虚拟机处理模块在每个节点上仅需运行一个实例,尽管集群中存在多个存储。
S303:若当前所述节点上的所有的所述心跳发送模块都没有处于所述修复模式的,则所述虚拟机清理模块喂狗,避免所述看门狗设备因为超过所述超时时间强制重置所述主机,所述虚拟机清理模块成功喂狗所述IO时间间隔(10S)后,将再次回到步骤S302,重新检测当前所述节点上的所有的所述存储的所述心跳发送模块的状态。
S304:若当前所述节点上存在所述心跳发送模块处于所述修复模式,所述虚拟机清理模块尝试清理在所述心跳发送模块对应的所述存储上开启高可用的所述虚拟机。
清理阶段的前第一预设时间(在本实施例中为40S)内,尝试使用SIGTERM信号使所述虚拟机的进程正常终止;若超过所述第一预设时间之后,所述虚拟机的进程仍然存在,则使用SIGKILL信号强制终止所述虚拟机的进程;若所述虚拟机的进程未在距离上一次所述看门狗设备“喂狗”的所述超时时间(60S)内被清理,则所述看门狗设备将强制重置所述主机;其中,所述第一预设时间小于所述看门狗设备的所述超时时间。
需要注意的是,创建所述虚拟机时,需要指定是否开启所述虚拟机的高可用功能,同时基于所述虚拟机指定在所述虚拟机上开启高可用的所述存储的类型;仅当所述虚拟机开启高可用功能,且在所述虚拟机上开启高可用的所述存储中的至少一个所述心跳发送模块处于所述修复模式时,所述虚拟机清理模块清理所述虚拟机。例如,某虚拟机在存储iSCSI和存储NFS上均开启了高可用,当iSCSI或者NFS中的任意一个心跳发送模块处于修复模式时,虚拟机清理模块都会清理上述虚拟机,而本节点上未在iSCSI或者NFS上开启高可用的虚拟机不受虚拟机清理模块影响。
(4)心跳检测模块40
如图7所示,当节点上故障虚拟机被清理完成后,心跳检测模块能够检测到对应节点在存储上出现故障,此时将在其他健康节点上重建受影响的虚拟机,具体为:
S401:多个所述心跳检测模块通过选举产生一个leader负责对应的所述存储中的心跳检测。需要注意的是,每个存储均存在多个心跳检测模块hb detector实例,这些实例选举产生的leader仅负责对应存储中的心跳检测。
本领域技术人员可以理解,关于的leader的选举可以采用多种算法,一种简单的方法为在云计算管理平台API server处添加资源版本限制能力,创建一个带有版本的lease资源,所有心跳检测模块hb detector首先从API server处获取该lease,并更新该lease的拥有者为自己,然后将更新后的lease提交到API server处进行持久化,率先成功提交lease的心跳检测模块hb detector即获取leader身份。lease更新后API server立即将其版本号增加1,随后其他心跳检测模块hb detector实例更新lease时,由于其要更新的lease版本号低于API server中的对应资源,该请求将被拒绝。leader需要定期更新lease中的时间戳,其他心跳检测模块hb detector定期检查lease的更新情况,当发现leader一段时间没有更新lease后,其他实例将重新进行选举。
S402:所述心跳检测模块leader以所述IO时间间隔定期读取对应的所述存储上的所述心跳信息。这些心跳来自对应存储运行在所有节点的心跳发送模块发送,用于检测节点在对应存储中的心跳。
S403:当所述心跳信息读取成功时,则判断所述集群中的所有的所述节点在所述存储中的健康状态。需要说明的是,节点的健康状态并非一次读取心跳信息就能判断,而是需要多次读取心跳信息后并对比判断,具体地,节点状态变化的有限状态机如图8所示,包括如下状态:
free状态:表示存储所述心跳信息的所述磁盘中当前所述节点还未发送所述心跳信息,对于不存在的所述节点,对应的所述区块将被忽略,此时Timestamp为0,当所述心跳检测模块后续读取到Timestamp不为0时,标明所述区块对应节点进入了live状态。
live状态,表示对应的所述节点处于所述健康状态,若在所述第三数量个所述IO时间间隔(80S)内,Timestamp和gen值未被更新,当前所述节点仍将处于所述健康状态,若所述第三数量个所述IO时间间隔后,Timestamp和gen值未被更新,表示当前所述节点已经进入了failed状态,若Timestamp为0则表示对应的所述节点从所述集群中被移除。
failed状态,表示当前所述节点上对应的所述存储的所述心跳发送模块处于所述修复模式,开始进行所述虚拟机的清理工作,此时,Timestamp和gen值都不会被更新,直至经过一预设时间(本实施例中为70S)后进入dead状态。
dead状态,表示当前所述节点上在对应的所述存储上开启高可用的所述虚拟机已经清理完成,此时可以在其他健康的所述节点上重建受影响的所述虚拟机,若观察到Timestamp和gen值被更新,表示当前所述节点已经从故障中恢复,手动删除故障节点上的所述心跳发送模块并重建。
unknown状态,一种未知状态,所述心跳检测模块首次读取到的所述心跳信息中,Timestamp和gen值不为0;若Timestamp和gen值在一预设时间内没有被更新,则继续处于未知状态;若Timestamp变为0,则表示当前所述节点从所述集群中被移除;若Timestamp或者gen值被更新,则表示当前所述节点处于live状态;若Timestamp和gen值在所述第三数量个所述IO时间间隔(80S)之后没有被更新,则当前所述节点进入failed状态,故障的所述节点上的所述心跳发送模块进入所述修复模式。
S404:当判断当前所述节点处于live状态时,将当前所述节点从对应的所述存储的不可调度列表中移除,表明当前所述节点可以接受调度在对应的所述存储上开启高可用的所述虚拟机。需要注意的是,所有节点最初都会被加入到存储的不可调度列表中。
S405:当判断当前所述节点处于failed状态时,将当前所述节点加入到对应的所述存储的不可调度列表中,表明当前所述节点不可接受调度在对应的所述存储上开启高可用的所述虚拟机。需要注意的是,未在该存储上开启高可用的虚拟机仍然可以被调度到本节点,例如:节点在iSCSI存储中写入心跳失败且hb sender进入recover mode,在NFS存储中能够正常写入心跳,对于一个在iSCSI存储上开启高可用的虚拟机无法调度到本节点,而在NFS存储上开启高可用的虚拟机可被调度到本节点。
S406:当判断当前所述节点处于dead状态时,在其他健康的所述节点上重建受影响的所述虚拟机。当hb detector判断节点已经处于dead状态时,节点上受影响的虚拟机已经被清理完成,此时可在其他健康节点重建。需要注意的是,被重建的虚拟机仅是节点上受影响的虚拟机,而非全部的虚拟机,例如:iSCSI存储写入心跳失败,而NFS存储写入心跳成功,节点上在iSCSI存储开启高可用的虚拟机需要被重建,而在NFS存储开启高可用的虚拟机则不受高可用模块的影响。
S407:若所述心跳检测模块经过所述第三数量个所述IO时间间隔没有成功读取到所述存储上的所述心跳信息,则主动退出,由对应存储的其他所述心跳检测模块重新选举一个leader。
第二实施例
本实施例提供了一种利用多存储心跳检测的虚拟机高可用系统,采用如第一实施例中的利用多存储心跳检测的虚拟机高可用管理装置进行管理。
一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种利用多存储心跳检测的虚拟机高可用管理装置,其特征在于,包括:
存储初始化模块,在存储中分配一块空间用于集群中节点的心跳检测;
心跳发送模块,运行在所述集群中所有的所述节点上,用于定期更新当前所述节点在所述存储中的心跳信息,其中不同的所述存储由不同的所述心跳发送模块负责所述心跳信息的更新;
虚拟机清理模块,当当前所述节点超过预设时间更新在所述存储中的所述心跳信息失败时,完成虚拟机的清理工作;
其中,所述虚拟机清理模块,进行所述虚拟机的清理工作,具体为:
S301:所述虚拟机清理模块打开看门狗设备,并预设所述看门狗设备的超时时间,并当所述虚拟机清理模块超过所述超时时间没有喂狗时,所述看门狗设备将强制重置主机,所述主机重置后其上的所述虚拟机不会被自动拉起运行;
S302:检测当前所述节点上的所有的所述存储的所述心跳发送模块的状态;
S303:若当前所述节点上的所有的所述心跳发送模块都没有处于修复模式的,则所述虚拟机清理模块喂狗,避免所述看门狗设备因为超过所述超时时间强制重置所述主机,所述虚拟机清理模块成功喂狗IO时间间隔后,将再次回到步骤S302,重新检测当前所述节点上的所有的所述存储的所述心跳发送模块的状态;
S304:若当前所述节点上存在所述心跳发送模块处于所述修复模式,所述虚拟机清理模块尝试清理在所述心跳发送模块对应的所述存储上开启高可用的所述虚拟机;
创建所述虚拟机时,需要指定是否开启所述虚拟机的高可用功能,同时基于所述虚拟机指定在所述虚拟机上开启高可用的所述存储的类型;
仅当所述虚拟机开启高可用功能,且在所述虚拟机上开启高可用的所述存储中的至少一个所述心跳发送模块处于所述修复模式时,所述虚拟机清理模块清理所述虚拟机;
心跳检测模块,用于检测到所述节点的故障并在其他健康的所述节点上重建故障的所述节点上受影响的所述虚拟机。
2.根据权利要求1所述的利用多存储心跳检测的虚拟机高可用管理装置,其特征在于,在所述存储初始化模块中,在所述存储中分配一块空间用于所述集群中所述节点的心跳检测,具体包括:
S101:当有新的所述存储需要添加到所述集群中时,记录所述存储的包括IP地址、存储类型、容量、IO时间间隔在内的基本信息,并将所述基本信息记录到所述集群的数据库中;
S102:在所述存储中创建一块预设大小的磁盘,并将所述磁盘格式化为若干个区块,每个所述区块用于记录一个所述节点的所述心跳信息;
S103:在所述集群中所有的所述节点上创建所述存储的所述心跳发送模块,并将步骤S102中创建的所述磁盘挂载到所有的所述节点上,当前所述节点上的所述心跳发送模块开始更新所述磁盘上与当前所述节点对应的所述区块上的所述心跳信息;
S104:在所述集群中创建所述心跳检测模块的多个实例,并在多个所述实例中选举产生一个leader负责检测所述集群中所有的所述节点的存储心跳,并当leader发生故障时,其余所述实例选举产生新的leader执行心跳检测任务。
3.根据权利要求2所述的利用多存储心跳检测的虚拟机高可用管理装置,其特征在于,在步骤S102中,每个所述区块上记录的所述节点的所述心跳信息,具体包括:
Host ID:所述集群中为每个所述节点对应的主机分配的唯一ID,并与当前所述节点对应的所述区块的编号对应;
Host name:所述集群中每个所述节点对应的所述主机的主机名,所述集群中的所有的所述主机名不重复;
Timestamp:所述节点对应的所述主机启动后正常的运行时间;
gen:所述节点对应的所述主机加入所述存储的次数。
4.根据权利要求3所述的利用多存储心跳检测的虚拟机高可用管理装置,其特征在于,所述心跳发送模块,定期更新当前所述节点在所述存储中的所述心跳信息,具体为:
S201:读取所述磁盘上与当前所述节点对应的所述区块上的所述心跳信息;
S202:依据当前所述节点的所述主机信息,设置所述心跳信息,其中ge n值需要自加1;
S203:在所述磁盘中与当前所述节点对应的所述区块上更新所述心跳信息,只有当所述心跳发送模块成功更新所述心跳信息后,在所述存储上开启高可用功能的所述虚拟机才能被调度到当前所述节点上;
S204:所述心跳发送模块以第一数量个所述IO时间间隔的区间定期更新所述心跳信息;
S205:若所述心跳发送模块更新所述心跳信息失败,则所述心跳发送模块以第二数量个所述IO时间间隔更新所述心跳信息,这一步骤将持续到距离上一次成功更新所述心跳信息第三数量个所述IO时间间隔前,直到再次成功更新所述心跳信息,其中所述第一数量大于所述第二数量,所述第三数量大于所述第一数量;
S206:当距离上一次成功更新所述心跳信息所述第三数量个所述IO时间间隔后,还未成功更新所述心跳信息时,则所述心跳发送模块不再尝试更新所述心跳信息,进入修复模式。
5.根据权利要求4所述的利用多存储心跳检测的虚拟机高可用管理装置,其特征在于,在步骤S304中,所述虚拟机清理模块尝试清理在所述心跳发送模块对应的所述存储上开启高可用的所述虚拟机,具体为:
清理阶段的前第一预设时间内,尝试使用SIGTERM信号使所述虚拟机的进程正常终止;
若超过所述第一预设时间之后,所述虚拟机的进程仍然存在,则使用SI GKILL信号强制终止所述虚拟机的进程;
若所述虚拟机的进程未在距离上一次所述看门狗设备喂狗的所述超时时间内被清理,则所述看门狗设备将强制重置所述主机;
其中,所述第一预设时间小于所述看门狗设备的所述超时时间。
6.根据权利要求4所述的利用多存储心跳检测的虚拟机高可用管理装置,其特征在于,在所述心跳检测模块中,检测到所述节点的故障并在其他健康的所述节点上重建故障的所述节点上受影响的所述虚拟机,具体为:
S401:多个所述心跳检测模块通过选举产生一个leader负责对应的所述存储中的心跳检测;
S402:所述心跳检测模块以所述IO时间间隔定期读取对应的所述存储上的所述心跳信息;
S403:当所述心跳信息读取成功时,则判断所述集群中的所有的所述节点在所述存储中的健康状态;
S404:当判断当前所述节点处于live状态时,将当前所述节点从对应的所述存储的不可调度列表中移除,表明当前所述节点可以接受调度在对应的所述存储上开启高可用的所述虚拟机;
S405:当判断当前所述节点处于failed状态时,将当前所述节点加入到对应的所述存储的不可调度列表中,表明当前所述节点不可接受调度在对应的所述存储上开启高可用的所述虚拟机;
S406:当判断当前所述节点处于dead状态时,在其他健康的所述节点上重建受影响的所述虚拟机;
S407:若所述心跳检测模块经过所述第三数量个所述IO时间间隔没有成功读取到所述存储上的所述心跳信息,则主动退出,由对应存储的其他所述心跳检测模块重新选举一个leader。
7.根据权利要求6所述的利用多存储心跳检测的虚拟机高可用管理装置,其特征在于,在步骤S403中,当所述心跳信息读取成功时,则判断所述集群中的所有的所述节点在所述存储中的所述健康状态,节点的状态具体包括:
free状态:表示存储所述心跳信息的所述磁盘中当前所述节点还未发送所述心跳信息,对于不存在的所述节点,对应的所述区块将被忽略,此时Ti mestamp为0,当所述心跳检测模块后续读取到Timestamp不为0时,标明所述区块对应节点进入了live状态;
live状态,表示对应的所述节点处于所述健康状态,若在所述第三数量个所述IO时间间隔内,Timestamp和gen值未被更新,当前所述节点仍将处于所述健康状态,若所述第三数量个所述IO时间间隔后,Timestamp和gen值未被更新,表示当前所述节点已经进入了failed状态,若Timestamp为0则表示对应的所述节点从所述集群中被移除;
failed状态,表示当前所述节点上对应的所述存储的所述心跳发送模块处于所述修复模式,开始进行所述虚拟机的清理工作,此时,Timestamp和gen值都不会被更新,直至经过一预设时间后进入dead状态;
dead状态,表示当前所述节点上在对应的所述存储上开启高可用的所述虚拟机已经清理完成,此时在其他健康的所述节点上重建受影响的所述虚拟机,若观察到Timestamp和gen值被更新,表示当前所述节点已经从故障中恢复,手动删除故障节点上的所述心跳发送模块并重建;
unknown状态,一种未知状态,所述心跳检测模块首次读取到的所述心跳信息中,Timestamp和gen值不为0;若Timestamp和gen值在一预设时间内没有被更新,则继续处于未知状态;若Timestamp变为0,则表示当前所述节点从所述集群中被移除;若Timestamp或者gen值被更新,则表示当前所述节点处于live状态;若Timestamp和gen值在所述第三数量个所述IO时间间隔之后没有被更新,则当前所述节点进入failed状态,故障的所述节点上的所述心跳发送模块进入所述修复模式。
8.一种利用多存储心跳检测的虚拟机高可用系统,其特征在于,包括:采用如权利要求1-7任意一项所述的利用多存储心跳检测的虚拟机高可用管理装置进行管理。
CN202310372476.7A 2023-04-10 2023-04-10 一种利用多存储心跳检测的虚拟机高可用管理装置及系统 Active CN116382850B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310372476.7A CN116382850B (zh) 2023-04-10 2023-04-10 一种利用多存储心跳检测的虚拟机高可用管理装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310372476.7A CN116382850B (zh) 2023-04-10 2023-04-10 一种利用多存储心跳检测的虚拟机高可用管理装置及系统

Publications (2)

Publication Number Publication Date
CN116382850A CN116382850A (zh) 2023-07-04
CN116382850B true CN116382850B (zh) 2023-11-07

Family

ID=86970770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310372476.7A Active CN116382850B (zh) 2023-04-10 2023-04-10 一种利用多存储心跳检测的虚拟机高可用管理装置及系统

Country Status (1)

Country Link
CN (1) CN116382850B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104253860A (zh) * 2014-09-11 2014-12-31 武汉噢易云计算有限公司 一种基于共享存储消息队列的虚拟机高可用实现方法
CN106873918A (zh) * 2017-02-27 2017-06-20 郑州云海信息技术有限公司 一种虚拟化系统中的存储设置方法及装置
CN107888689A (zh) * 2017-11-16 2018-04-06 无锡地铁集团有限公司 基于共享存储的加锁资源配置方法
CN108449200A (zh) * 2018-02-02 2018-08-24 云宏信息科技股份有限公司 一种基于控制节点的屏蔽信息写入方法及装置
CN109614201A (zh) * 2018-12-04 2019-04-12 武汉烽火信息集成技术有限公司 防脑裂的OpenStack虚拟机高可用系统
CN109634716A (zh) * 2018-12-04 2019-04-16 武汉烽火信息集成技术有限公司 防脑裂的OpenStack虚拟机高可用管理端装置及管理方法
CN110535692A (zh) * 2019-08-12 2019-12-03 华为技术有限公司 故障处理方法、装置、计算机设备、存储介质及存储系统
CN112148485A (zh) * 2020-09-16 2020-12-29 杭州安恒信息技术股份有限公司 超融合平台故障恢复方法、装置、电子装置和存储介质
CN113778607A (zh) * 2020-06-10 2021-12-10 中兴通讯股份有限公司 虚拟机实现高可用方法及装置、云管理平台、存储介质
CN114035905A (zh) * 2021-11-19 2022-02-11 江苏安超云软件有限公司 基于虚拟机的故障迁移方法及装置、电子设备和存储介质
CN114090184A (zh) * 2021-11-26 2022-02-25 中国电信集团系统集成有限责任公司 一种虚拟化集群高可用性的实现方法和设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266472B2 (en) * 2006-05-03 2012-09-11 Cisco Technology, Inc. Method and system to provide high availability of shared data
US8924967B2 (en) * 2011-04-28 2014-12-30 Vmware, Inc. Maintaining high availability of a group of virtual machines using heartbeat messages
US10282261B2 (en) * 2016-06-20 2019-05-07 Vmware, Inc. Pooled memory heartbeat in shared memory architecture

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104253860A (zh) * 2014-09-11 2014-12-31 武汉噢易云计算有限公司 一种基于共享存储消息队列的虚拟机高可用实现方法
CN106873918A (zh) * 2017-02-27 2017-06-20 郑州云海信息技术有限公司 一种虚拟化系统中的存储设置方法及装置
CN107888689A (zh) * 2017-11-16 2018-04-06 无锡地铁集团有限公司 基于共享存储的加锁资源配置方法
CN108449200A (zh) * 2018-02-02 2018-08-24 云宏信息科技股份有限公司 一种基于控制节点的屏蔽信息写入方法及装置
CN109614201A (zh) * 2018-12-04 2019-04-12 武汉烽火信息集成技术有限公司 防脑裂的OpenStack虚拟机高可用系统
CN109634716A (zh) * 2018-12-04 2019-04-16 武汉烽火信息集成技术有限公司 防脑裂的OpenStack虚拟机高可用管理端装置及管理方法
CN110535692A (zh) * 2019-08-12 2019-12-03 华为技术有限公司 故障处理方法、装置、计算机设备、存储介质及存储系统
CN113778607A (zh) * 2020-06-10 2021-12-10 中兴通讯股份有限公司 虚拟机实现高可用方法及装置、云管理平台、存储介质
CN112148485A (zh) * 2020-09-16 2020-12-29 杭州安恒信息技术股份有限公司 超融合平台故障恢复方法、装置、电子装置和存储介质
CN114035905A (zh) * 2021-11-19 2022-02-11 江苏安超云软件有限公司 基于虚拟机的故障迁移方法及装置、电子设备和存储介质
CN114090184A (zh) * 2021-11-26 2022-02-25 中国电信集团系统集成有限责任公司 一种虚拟化集群高可用性的实现方法和设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A flexible clustered approach to high availability;G. Hughes-Fenchel;《Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing》;314-318 *
Virtual machines of high availability using hardware-assisted failure detection;Wei-Jen Wang 等;《2015 International Carnahan Conference on Security Technology (ICCST)》;1-6 *
基于KVM的虚拟机Post-Copy动态迁移算法稳定性优化;陈双喜 等;《电信科学》;第37卷(第7期);57-66 *

Also Published As

Publication number Publication date
CN116382850A (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
RU2751551C1 (ru) Способ и устройство для восстановления нарушенной работоспособности узла, электронное устройство и носитель данных
US7210061B2 (en) Data redundancy for writes using remote storage system cache memory
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
US7490103B2 (en) Method and system for backing up data
CN110535692B (zh) 故障处理方法、装置、计算机设备、存储介质及存储系统
US8856592B2 (en) Mechanism to provide assured recovery for distributed application
US20150186204A1 (en) Securing crash dump files
CN108509156B (zh) 数据读取方法、装置、设备及系统
CN107817950B (zh) 一种数据处理方法及装置
CN105589887B (zh) 分布式文件系统的数据处理方法及分布式文件系统
CN105607973B (zh) 一种虚拟机系统中设备故障处理的方法、装置及系统
JP2007133544A (ja) 障害情報解析方法及びその実施装置
CN111787113B (zh) 一种节点故障的处理方法、装置、存储介质和电子设备
CN111046024A (zh) 一种共享存储数据库的数据处理方法、装置、设备及介质
CN111342986B (zh) 分布式节点管理方法及装置、分布式系统、存储介质
US10990312B2 (en) Method, apparatus, device and storage medium for processing data location of storage device
JP4322240B2 (ja) 再起動方法、システム及びプログラム
CN110858168B (zh) 集群节点故障处理方法、装置及集群节点
CN108170375B (zh) 一种分布式存储系统中的超限保护方法和装置
CN113946471A (zh) 基于对象存储的分布式文件级备份方法及系统
JP6124644B2 (ja) 情報処理装置および情報処理システム
CN116382850B (zh) 一种利用多存储心跳检测的虚拟机高可用管理装置及系统
CN111240903A (zh) 数据恢复方法及相关设备
US20190026195A1 (en) System halt event recovery
CN115373896A (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100098

Patentee after: Beijing Zhiling Haina Technology Co.,Ltd.

Country or region after: China

Address before: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100098

Patentee before: Beijing zhilinghaina Technology Co.,Ltd.

Country or region before: China