CN103457775A - 一种基于角色的高可用虚拟机池化管理系统 - Google Patents

一种基于角色的高可用虚拟机池化管理系统 Download PDF

Info

Publication number
CN103457775A
CN103457775A CN2013103987843A CN201310398784A CN103457775A CN 103457775 A CN103457775 A CN 103457775A CN 2013103987843 A CN2013103987843 A CN 2013103987843A CN 201310398784 A CN201310398784 A CN 201310398784A CN 103457775 A CN103457775 A CN 103457775A
Authority
CN
China
Prior art keywords
node
master
backup
virtual machine
slave
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
CN2013103987843A
Other languages
English (en)
Other versions
CN103457775B (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201310398784.3A priority Critical patent/CN103457775B/zh
Publication of CN103457775A publication Critical patent/CN103457775A/zh
Application granted granted Critical
Publication of CN103457775B publication Critical patent/CN103457775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

一种基于角色的高可用虚拟机池化管理系统,所述虚拟机池化管理方法中包括主节点即master节点、从节点即slave节点和备份节点即backup节点;master节点是虚拟机资源池的唯一逻辑入口,负责管理资源池中的所有节点;slave节点主要负责本节点的虚拟机生命周期的管理;backup节点用于备份master节点的状态信息,保证与master节点的状态信息一致,并在master节点失效时接管其工作;所述虚拟机池化管理过程中各个节点会随着不同条件在三种角色,即master节点、从节点slave和备份节点backup中转换;通过序列法保障系统中只有一个master节点和备份节点,以及通过双向异步通信机制来保障master节点和备份节点的数据一致性。本发明提高了虚拟化系统的可靠性以及管理的灵活性。

Description

一种基于角色的高可用虚拟机池化管理系统
技术领域
本发明涉及一种基于角色的高可用虚拟机池化管理系统,该系统扩展了传统的故障切换集群高可用保障技术,用于解决虚拟机池化管理的单点失效导致的故障恢复时间长和管理复杂的问题,属于软件技术领域。
背景技术
虚拟机能够为操作系统和应用程序提供一个虚拟的计算机系统,它所构造的运行环境能够运行一个完整的操作系统,对上层的应用程序完全透明。虚拟机池化管理是指以统一管理视角提供虚拟机生命周期管理和资源按需提供的虚拟化技术。近几年来,虚拟机池化管理已成为构建主流云计算平台的关键技术之一。
虚拟机池化管理普遍采取master/slave的管理模式,通过统一的逻辑入口来管理整个资源池中节点(本发明中的节点指的是物理服务器)及运行其上的虚拟机。代表的产品有Microsoft Hyper-V,Citrix XenServer和VMware vSphere等。通过虚拟机池化管理带来以下几个优点:(1)虚拟机对节点的资源使用率是动态变化的,虚拟机资源池中的节点作为硬件资源提供给虚拟机使用。当某个时刻某个节点上的虚拟机消耗资源相对过高时,可以通过虚拟机在线迁移技术将它迁移到其它资源相对充裕的节点上,整个迁移过程对用户透明,保障资源的合理分配;(2)虚拟机池化管理通常采用“共享存储”的模式。所谓“共享存储”,是指虚拟机资源池中所有虚拟机磁盘文件会统一存储在磁盘阵列或其它存储设备上,各节点仅能通过网络连接存储设备实现虚拟机的实例化(内存态)。在这种管理模式下,当节点宕机导致运行其上的虚拟机不可用时,容易通过虚拟机实例在其它节点重启的模式实现虚拟机的高可用。
虚拟机池化管理带了管理简单优点的同时,也引入了风险集中,单点失效问题。在master/slave管理模式下,master节点保存了虚拟机资源池所有节点的全局状态信息,因此master节点宕机可能导致整个虚拟机资源池不可用或虚拟机资源池重装等严重后果。单点失效问题涉及到系统的高可用,高可用保障方法可以分为以下四大类(Chan H,Chieu T.Anapproach to high availability for cloud servers with snapshot mechanism[C]//Proceedings of theIndustrial Track of the13th ACM/IFIP/USENIX International Middleware Conference.ACM,2012:6.):镜像技术(Mirroring)、复制技术(Replication)、故障切换集群(Failover clustering)和快照技术(snapshot)。
镜像技术是指设置主节点和镜像节点,镜像节点每隔一段时间从主节点主动取数据备份到自身。复制技术是基于订阅者的模式,主节点在自身状态信息发生变化时主动发送给所有订阅的备份节点,通知其更新状态信息。故障切换集群通过多个节点组成一个集群,集群中任何一个节点发生故障都可以由其他节点接管。快照技术是通过节点每隔一段时间备份一个还原点,当节点发生故障后可以通过这个备份的还原点来恢复系统。
镜像技术和复制技术被HDFS文件系统(Borthakur D,Gray J,Sarma J S,et al.ApacheHadoop goes realtime at Facebook[C]//Proceedings of the2011international conference onManagement of data.ACM,2011:1071-1080.)用于解决NameNode节点的单点失效问题。通过设置一个备份节点,当用户对文件系统进行写操作导致文件系统的目录结构发生改变时,主NameNode通过复制技术将这一操作请求写入一个NFS共享节点上,然后备份的节点通过镜像技术不断的读取NFS共享节点上的操作请求执行,保障与主NameNode节点上保存的信息一致,在主节点失效时能接管其工作,但是这种方式备份节点是静态指定,缺乏灵活性,并且NFS节点也是个单点问题。
故障切换集群被广泛应用与XenServer和vSphere虚拟机池化管理系统中,通过slave节点来探知master节点是否失效,当某个slave节点探知到master节点失效时,通过一定的选举算法,比如Bully算法(Garcia-Molina H.Elections in a distributed computing system[J].Computers,IEEE Transactions on,1982,100(1):48-59)选举出一个新的节点充当master节点恢复之前保存的数据,继续管理资源池中的成员节点和虚拟机。由于新的master节点是通过所有的slave节点在故障发生后根据选举算法协同选举出来的,所以恢复时间相对较长。
此外的快照技术(snapshot),如果在设置的还原点之前需要备份数据改变并且发生故障,系统将难以恢复到故障发生之前的状态。
综上所述,上述几种方法中存在的缺乏灵活性和故障恢复时间长的缺点。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于角色的虚拟机池高可用系统,提高了系统的灵活性和减少故障的恢复时间。
本发明技术解决方案:一种基于角色的高可用虚拟机池化管理系统,通过序列法保障系统中只有一个master节点和备份节点,以及通过双向异步通信机制来保障master节点和备份节点的数据一致性。
通过增加一个backup节点的角色,这个节点由master节点主动选举出来,然后master节点失效由backup节点主动接管其工作,这样达到backup节点自动选取和master节点主动替换的效果。如图1所示,该系统包括三个模块:
1)节点管理模块:负责本节点的虚拟机的生命周期管理,包括虚拟机的创建,关闭,启动,迁移,周期性地监听本节点和运行其上的每个虚拟机的资源使用情况,并写入本地的文件方便远程客户端解析;周期性地向master节点和backup节点发送状态信息,状态信息包括运行了哪些虚拟机,虚拟机关联的磁盘文件等;
2)资源池管理模块:负责管理虚拟机资源池中的每个节点,如监听资源池中每个节点是否有效。根据用户的请求转发给目标节点进行相应的操作。提供虚拟机资源池的建立和弹性资源供给,即节点的添加和退出;
3)高可用管理模块:在master节点上,高可用模块负载监听backup节点的是否有效,当无效时,选举出新的备份节点继续监听。在backup节点上,高可用模块负载监听master节点是否有效,当无效时主动接管其工作,并广播给虚拟机资源池中的所有节点这一变化。master节点和backup节点同时负责接收来自slave节点的心跳信息,根据心跳信息来更新自身保存的状态信息。
在基于角色的双机热备高可用系统中,主要涉及到两种方法和一种机制,分别是基于角色的双机热备方法、序列法和双向异步通信机制。通过基于角色的双机热备方法消除master节点单点失效问题带来的服务间断。通过序列法保障资源池中只有一个master节点提供与用户交互的入口。通过双向异步通信机制保障master节点和backup节点两者的状态信息的一致性。
以下是详细描述。
3.1基于角色的节点描述和转换关系,如图2所示。
为了方便后面的表述,本文用三元组P=<Number,Role,Squence>来描述每个节点,其中不同的元素的具体含义如下:
1)Number,即节点的编号,如资源池中一共有三个节点,用N1,N2和N3来分别表示这三个节点;
2)Role,即节点的角色,这里有master,backup和slave三种角色,每种角色执行不同功能;
3)Squence,即节点的时间序号,每个节点都会有一个时间序号。
例如,<N3,backup,35>表示第3个节点的角色为backup,并且它的时间序号为35。
虚拟机资源池中的每个节点都赋予了一定的角色,每个角色具有不同的功能。分别如下:
1)master节点也称为主节点,它是虚拟机资源池的唯一逻辑入口,负责管理资源池中的所有节点;
2)slave节点主要负责本节点的虚拟机生命周期的管理;
3)backup节点用于备份master节点的状态信息,保证与master节点的状态信息一致,并在master节点失效时接管其工作。
资源池中各个节点所处的角色并不是固定的,而是随着不同条件在三种角色中转换,转换关系如图2所示,其中none表示节点不赋予任何角色,不在虚拟机资源池中:
(1)用户建立虚拟机资源池时指定一个none节点作为master节点;
(2)当用户需要将一个none节点加入虚拟机资源池时,该节点从none转变为slave节点,成为资源池中的成员节点;
(3)用户将某个节点从虚拟机资源池中移除后,该节点由slave节点转化为none节点,不再属于这个虚拟机资源池;
(4)当虚拟机资源池中的backup节点未被选取或者之前选取的backup节点失效时,由master节点选举出一个有效的slave节点,使其成为backup节点;
(5)当backup节点探测到虚拟机资源池中的master节点失效时,主动转换为master,接管master节点的工作;
(6)当backup节点故障恢复后,重新回到资源池中,转变为slave节点。
(7)当master节点故障恢复后,重新回到虚拟机资源池中,并转变为slave节点;
3.2基于角色的双机热备方法
master/slave模式下要消除单点失效问题,关键是在master节点发生故障时,能够有一个节点被选举出来主动接管其工作。本发明实现的基于角色的双机热备方法,该方法实现在master节点和backup节点的高可用模块,具体的算法如图3所示,其中定义Si(1≤i≤n)为虚拟机池中的第i个节点。
如果节点的角色为master时,具体执行步骤如下:
1)master节点监听backup节点是否有效或者未选举,如果backup节点有效则转步骤1)继续监听这个节点,如果无效则转步骤2);
2)master节点遍历资源池中的所有节点,若发现一个有效的节点,将这个节点角色转换为backup,并将保存的状态信息备份到这个节点上,转步骤1)监听这个backup节点。否则这次选举失败转步骤2)继续进行选举。
如果节点的角色为backup时,具体执行步骤如下:
1)backup节点监听资源池中的master节点是否有效,如果有效则转步骤1)继续进行监听,如果无效则转步骤2);
2)backup节点将自身角色转换为master节点,并开启对应master节点的服务,同时通知资源池中其他节点master节点发生了变化。
3.3序列法
在基于角色的双机热备方法中,master节点和backup节点的失效判定是通过一定的时间内能否接收到对方的响应消息来判定的。如果节点连接的网络短暂不可用,或者节点过于繁忙导致不能及时响应请求,则会被判定为发生宕机现象。这样会导致资源池中出现多个master节点和backup节点的情况,造成多个master和backup节点之间保存的数据不一致的现象。
传统的解决方法是通过仲裁的方式,即设置一个参考的IP,当master节点连接的网络发生故障时,master节点ping参考IP失败,则转换为slave节点,而backup节点ping参考IP成功,则转换为master节点选取出新的backup节点。当backup节点连接的网络发生故障时,master节点ping参考IP成功,则选取出新的backup节点,而backup节点ping参考IP失败,则转换为slave节点。但是这种方法不能解决节点繁忙的情况,节点繁忙时ping命令也不能及时执行。
为了解决这个问题,保障上述的方法有效,发明了序列法。具体的规定如下:
(1)slave节点的序列号为0;
(2)当每个节点被重新初始化时序列号都为0。
该方法实现于master节点的高可用模块,具体的算法如图4所示,其中定义Sequence(i)表示第i个节点的序列号。以master节点表示为<Ni,master,k>为例,它选举出第j个有效节点为backup节点,将这个节点的序列号设置为k+1,此时这个j结点表示为<Nj,backup,k+1>。Master节点即<Ni,master,k>每隔一段时间会检查资源池中的每个节点,若发现某个节点的角色不为slave,并且序列号小于等于自身,则通知这个节点关闭角色对应的服务,转换为slave节点。可以看到节点<Ni,master,k>只会把角色不为slave,并且序列号小于等于k的节点转换为slave节点,并不会影响到由它选举出来的<Nj,backup,k+1>备份节点。通过序列法能够保障资源池中只有一个master节点和backup节点。
3.4双向异步通信机制,如图10所示
系统采用基于角色的双机热备的方法来保障master节点的高可用,最重要的是保证backup节点和master节点保存的状态信息的一致性,这样backup节点才能无故障的接管master节点的工作。
为了保证这两个节点的状态信息的一致性,发明了一种双向异步通信机制,来自客户端的操作请求发送给master节点,由它转发给slave节点,slave节点完成操作后发送响应消息给master,由master将响应消息发送给客户端。slave节点每隔一段时间将自身的状态信息发送给master和backup节点,master和backup节点收到来自slave的状态信息,则更新保存的状态信息。这样,即使在master节点宕机时,slave节点也能将本节点的状态信息及时通知给新的master节点。同时master节点每隔一段时间广播一个消息给资源池中的所有节点,使得每个节点都能知道master和backup节点的目标地址,避免某个节点宕机恢复的过程中master节点和backup节点的地址发生变化时,不能将状态信息发送到正确的目标地址。
与现有技术相比,本发明具有如下技术优势:
(1)本发明中的master节点的故障判断和接管,backup节点的故障检测和主动选取都是有系统自身完成,无需人工干预,能够有效地解决单点失效问题。同时由于backup节点是由master节点在正常提供服务的过程中选举出来的,相比传统方法master节点出现故障后由其他节点探知然后协调选举出一个节点接管,本发明中的方法故障恢复时间短。
(2)本发明中的序列法,能够保障资源池中只存在一个master节点和backup节点。相比现有的技术,能够处理由于节点服务繁忙带来的“假死”现象。
(3)本发明才用了双向异步通信机制来保证master节点和backup节点的数据一致性,能在通过slave节点发送的状态信息,来恢复整个资源池的全局状态信息。
(4)上述几种方法中存在的缺乏灵活性和故障恢复时间长的缺点。本发明基于故障切换集群技术,实现了一种基于角色的双机热备的高可用系统。该系统通过备份节点的自动选举和master节点故障的主动接管替换的方式提高了系统的灵活性和减少故障的恢复时间。通过序列法保障系统中只有一个master节点和备份结点,以及通过双向异步通信机制来保障master节点和备份节点的数据一致性。
(5)在基于角色的双机热备方法中,master节点和backup节点的失效判定是通过一定的时间内能否接收到对方的响应消息来判定的。如果节点连接的网络短暂不可用,或者节点过于繁忙导致不能及时响应请求,则会被判定为发生宕机现象。这样会导致资源池中出现多个master节点和backup节点的情况,造成多个master和backup节点之间保存的数据不一致的现象。
(6)传统的解决方法是通过仲裁的方式,即设置一个参考的IP,当master节点连接的网络发生故障时,master节点ping参考IP失败,则转换为slave节点,而backup节点ping参考IP成功,则转换为master节点选取出新的backup节点。当backup节点连接的网络发生故障时,master节点ping参考IP成功,则选取出新的backup节点,而backup节点ping参考IP失败,则转换为slave节点。但是这种方法不能解决节点繁忙的情况,节点繁忙时ping命令也不能及时执行。为了解决这个问题,发明了序列法。
附图说明
图1为本发明系统的组成框图;
图2为本发明中角色转换图;
图3为本发明中本基于角色的节点选举替换算法;
图4为本发明中序列法算法;
图5为本发明中序列法处理master节点网络故障示例图;
图6为本发明中序列法处理master节点“假死”示例图;
图7为本发明中序列法处理backup节点网络故障示例图;
图8为本发明中序列法处理backup节点“假死”示例图;
图9为本发明中的基于角色的双机热备的处理过程图;
图10为本发明中双向异步通信机制的处理过程图。
具体实施方式
本发明基于角色的虚拟机池高可用保障技术及系统,通过master和backup节点的故障检测,故障恢复,能够有效地解决单点失效问题。以下结合具体实施例和附图对本发明进行详细说明。
在系统的高可用模块中,通过基于角色的双机热备的处理方法,来保障资源池中master节点宕机时,有一个有效的backup节点接管它的工作,保障系统能够正常提供服务,以下是根据具体的场景实例进行阐述。
1.基于角色的双机热备的处理过程,如图3所示。
在3.1节定义三元组的基础上,改变第三元来,用来表示节点是否有效(invalid表示无效,valid表示有效),假设资源池中有5个节点,分别表示为<N1,master,valid>,<N2,backup,valid>,<N3,slave,invalid>,<N4,slave,invalid>和<N5,slave,valid>,如图9(a)所示。
(1)当N2节点出现故障时,即表示为<N2,backup,invalid>,N1节点探知其无效,开始遍历资源池中的节点,选举出有效节点;
(2)如图9(b)所示,遍历到<N3,slave,invalid>时,发现其无效继续遍历。当遍历到<N4,slave,invalid>时,发现其无效继续遍历。当遍历到<N5,slave,valid>时,发现其有效,则将状态信息备份到这个节点上,并将其角色转换为backup,结束此次选举,此时N5节点表示为<N5,backup,valid>;
(3)如图9(c)所示,当N1节点出现故障,即表示为<N1,master,invalid>,N5节点探知其无效,则将自身转换为master的角色,即表示为<N5,master,valid>;
(4)N5节点始遍历资源池中的节点,选举出有效节点。当遍历到<N1,master,invalid>时,发现其无效继续遍历。当遍历到<N2,backup,invalid>时,发现其无效继续遍历。当遍历到<N3,slave,invalid>时,发现其无效继续遍历。当遍历到<N4,slave,invalid>时,发现其无效继续遍历。N5节点在这次遍历过程没有发现有效的节点,将进行新的一轮的遍历;
(5)如图9(d)所示,若某个时刻N3节点故障恢复成为有效节点,即表示为<N3,slave,valid>。它将被N5节点探知到,转换为backup节点,即为<N3,backup,valid>,则N5节点完成选举;
(6)如图(9e)所示,当某个时刻N1节点和N2节点故障恢复,它们都将转换为slave节点,即分别表示为<N1,slave,valid>和<N2,slave,valid>。
在系统的高可用模块中,通过序列法,来克服网络故障带来的资源池中出现多个maste节点冲突的情况,保障资源池中只有一个master节点来管理整个资源池的节点和虚拟机。以下是根据具体的场景实例来详细阐述这个方法的处理过程。
2.序列法的处理过程,如图4所示。
当master节点出现网络故障时如图5所示:
(1)当<Ni,master,k>出现网络故障,由它选举出来的<Nj,backup,k+1>得不到它的响应消息,同时<Ni,master,k>也不能选取出新的节点充当backup节点;
(2)<Nj,backup,k+1>而转变为<Nj,master,k+1>,然后选取出一个<Nk,backup,k+2>;
(3)若<Ni,master,k>的网络恢复,它会选取出<Nl,backup,k+1>;
(4)由于<Nj,master,k+1>是序列号最大的master节点,它会通知Ni和Nl节点关闭相应服务,转换为slave节点;
当master节点出现“假死”现象时如图6所示,与上述不同在步骤3),当<Ni,master,k>“假死”现象消除时,单方向监听节点b是否有效。最终会在步骤4)中,用<Nj,master,k+1>通知其转换为slave节点。
当backup节点出现网络故障时如图7所示:
(1)当<Nj,backup,k>出现网络故障时,不能得到<Ni,master,k-1>响应消息,同时<Ni,master,k-1>也不能得到<Nj,backup,k>的响应消息;
(2)由于网络故障,<Nj,backup,k>转换为<Nj,master,k>并且不能选取出新的节点作为backup节点。而<Ni,master,k-1>会重新选举一个新节点<Nk,backup,k>;
(3)当节点Nj网络恢复时,选举出一个新节点<Nl,backup,k+1>;
(4)由于<Ni,master,k>是序列号最大的master节点,它会通知Nj和Nk节点关闭相应服务,转换为slave节点。
当backup节点出现“假死”现象时如图8所示:
(1)当<Nj,backup,k>出现“假死”现象,<Ni,master,k-1>不能得到它的响应消息,<Nj,backup,k>此刻也暂时停止监听<Ni,master,k-1>;
(2)由于<Ni,master,k-1>不能得到Nj节点的响应消息,则选举出<Nk,backup,k>;
(3)Nj节点的“假死”现象消除,它会单方向监听Ni节点;
(4)当Ni节点出现宕机时,Nj节点和Nk节点都能探知Ni发生故障;
(5)由于得不到Ni节点的响应,Nk节点转换为<Nk,master,k>,选举出一个新节点<Nm,backup,k+1>。同时Nj节点转换为<Nj,master,k>,选举出一个新节点<Nn,backup,k+1>。当Nj节点通知Nk节点转换为slave节点时,Nk转换为<Nk,slave,0>,Nm节点单方向监听Nk节点。当Nk节点出现宕机,Nm节点会成为序列号最大的master节点,通知Nj和Nn节点转换为slave节点。当Nk节点通知Nj节点转换为slave节点的情况与上述类似。
3.双向异步通信机制的处理过程,如图10所示。
定义VM(i,j)表示第i个节点上的第j个虚拟机。假设资源池中有5个节点和3个虚拟机,这5个节点分别表示为<N1,master,valid>,<N2,backup,valid>,<N3,slave,valid>,<N4,slave,valid>和<N5,slave,valid>,3个虚拟机分别表示为VM(4,1),VM(4,2)和VM(5,1),如图10(a)所示。
(1)客户端通知<N1,master,valid>节点,要求将N4节点上的第1个虚拟机迁移到N5节点上;
(2)如图10(b)所示,N1节点将操作请求转发给N4节点,N4节点接收这个操作请求开始将VM(4,1)虚拟机迁移到N5节点;
(3)如图10(c)所示,在迁移的过程中,N1节点发生宕机故障,即表示为<N1,master,invalid>,此时迁移过程还在进行,而N2节点成为master节点,即为<N2,master,valid>。同时N2节点选举出N3节点充当backup节点,此时N3节点表示为<N3,backup,valid>;
(4)此时迁移过程完成,VM(4,1)成为VM(5,2),N4和N5节点将自身的状态信息通知给N1和N2节点。由于N1节点宕机,它将不接受来自N4和N5的状态信息。Master节点N2接收到来自N4和N5的状态信息进行更新,则它保存的虚拟机的状态信息为VM(4,2),VM(5,1)和VM(5,2)。而backup节点N3接收不到来自N4和N5的状态信息,则它保存的虚拟机的状态信息还是为VM(4,1),VM(4,2)和VM(5,1);
(5)N2节点遍历资源池中的所有节点,并将master节点N2和backup节点N3的位置信息通知给这些节点;
(6)N4节点和N5节点接收到来自master节点N2发送的位置信息,则开始将自身的状态信息发送N2和N3节点;
(7)如图10(d)所示,N3节点接收到来自N4和N5节点的状态信息进行更新,则它保存的虚拟机的状态信息为VM(4,2),VM(5,1)和VM(5,2),与N2节点的状态信息一致;
(8)如图10(d)所示,N1节点宕机恢复后将成为slave节点,即表示为<N1,slave,valid>,此时它会将自身的状态信息发送给N1和N2节点。当N1将接收到来自master节点N2发送的位置信息,开始将自身的状态信息发送给N2和N3节点。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (5)

1.一种基于角色的高可用虚拟机池化管理系统,其特征在于:所述虚拟机池化中包括主节点即master节点、从节点即slave节点和备份节点即backup节点;master节点是虚拟机资源池的唯一逻辑入口,负责管理资源池中的所有节点;slave节点主要负责本节点的虚拟机生命周期的管理;backup节点用于备份master节点的状态信息,保证与master节点的状态信息一致,并在master节点失效时接管其工作;所述虚拟机池化中各个节点所处的角色并不是固定的,而是随着不同条件在三种角色,即master节点、从节点slave和备份节点backup中转换;
所述每个节点均包括节点管理模块、资源池管理模块和高可用管理模块;每个节点均包括若干个虚拟机;
节点管理模块:负责本节点的虚拟机的生命周期管理,包括虚拟机的创建、关闭、启动、迁移,周期性地监听本节点和运行其上的每个虚拟机的资源使用情况,并写入本地的文件方便远程客户端解析;周期性地向master节点和backup节点发送状态信息,状态信息包括运行了哪些虚拟机,虚拟机关联的磁盘文件;同时还接收来自master节点的操作请求,根据这个转发的请求在本节点完成相应的操作;
资源池管理模块:当节点作为master时,该模块功能开启,负责管理虚拟机资源池中的每个节点即slave和backup节点,接受来自slave和backup节点的状态信息,判定它们是否有效;同时负责接收用户的请求,将请求转发给正确的目标节点;
高可用管理模块:当节点为master节点和backup节点时,该模块功能开启,该模块通过基于角色的双机热备方法,保障在master节点宕机时,系统能迅速恢复功能服务;通过序列法来保障资源池中只有一个master节点和backup节点,利用双向异步通信机制来保障master节点和backup节点两者状态信息的一致性;
上述模块中,资源池管理模块和高可用管理模块共同负责管理各个节点在三种角色中的转换。
2.根据要求1所述的一种基于角色的高可用虚拟机池化管理系统,其特征在于:所述虚拟机池化中各个节点在三种角色,即master节点、从节点slave和备份节点backup中转换过程如下:
用三元组P=<Number,Role,Squence>来描述每个节点,其中不同的元素的具体含义如下:Number,即节点的编号,虚拟机池化中一共有三个节点,用N1,N2和N3来分别表示master,backup和slave这三个节点;Role,即节点的角色,master,backup和slave三种角色,每种角色执行不同功能;Squence,即节点的时间序号,每个节点都会有一个时间序号,实现步骤如下:
(1)用户建立虚拟机池化时指定一个none节点作为master节点;
(2)当用户需要将一个none节点加入虚拟机池化时,该节点从none转变为slave节点,成为虚拟机池化中的成员节点;
(3)用户将某个节点从虚拟机池化中移除后,该节点由slave节点转化为none节点,不再属于这个虚拟机池化;
(4)当虚拟机池化中的backup节点未被选取或者之前选取的backup节点失效时,由master节点选举出一个有效的slave节点,使其成为backup节点;
(5)当backup节点探测到虚拟机池化中的master节点失效时,主动转换为master,接管master节点的工作;
(6)当backup节点故障恢复后,重新回到虚拟机池化中,转变为slave节点;
(7)当master节点故障恢复后,重新回到虚拟机池化中,并转变为slave节点。
3.根据要求1所述的一种基于角色的高可用虚拟机池化管理系统,其特征在于:所述基于角色的双机热备方法具体如下:其中定义Si为虚拟机池中的第i个节点,1≤i≤n;
如果节点的角色为master时,具体执行步骤如下:
(1)master节点监听backup节点是否有效或者未选举,如果backuo节点有效则转步(1)继续监听这个节点,如果无效则转步骤(2);
(2)master节点遍历资源池中的所有节点,若发现一个有效的节点,将这个节点角色转换为backup,并将保存的状态信息备份到这个节点上,转步骤(1)监听这个backup节点,否则这次选举失败转步骤(2)继续进行选举;
如果节点的角色为backup时,具体执行步骤如下:
(1)backup节点监听资源池中的master节点是否有效,如果有效则转步骤(1)继续进行监听,如果无效则转步骤(2);
(2)backup节点将自身角色转换为master节点,并开启对应master节点的服务,同时通知资源池中其他节点master节点发生了变化。
4.根据要求1所述的一种基于角色的高可用虚拟机池化管理系统,其特征在于:所述序列法具体实现如下:
(1)slave节点的序列号为0;
(2)当每个节点被重新初始化时序列号都为0;
其中定义Sequence(i)表示第i个节点的序列号,以master节点表示为<Ni,master,k>为例,它选举出第j个有效节点为backup节点,将这个节点的序列号设置为k+1,此时这个j结点表示为<Nj,backup,k+1>;Master节点即<Ni,master,k>每隔一段时间会检查资源池中的每个节点,若发现某个节点的角色不为slave,并且序列号小于等于自身,则通知这个节点关闭角色对应的服务,转换为slave节点,节点<Ni,master,k>只会把角色不为slave,并且序列号小于等于k的节点转换为slave节点,并不会影响到由它选举出来的<Nj,backup,k+1>备份节点,通过序列法能够保障资源池中只有一个master节点和backup节点。
5.根据要求1所述的一种基于角色的高可用虚拟机池化管理系统,其特征在于:所述双向异步通信机制具体实现如下:来自客户端的操作请求发送给master节点,由它转发给slave节点,slave节点完成操作后发送响应消息给master,由master将响应消息发送给客户端。slave节点每隔一段时间将自身的状态信息发送给master和backup节点,master和backup节点收到来自slave的状态信息,则更新保存的状态信息,这样即使在master节点宕机时,slave节点也能将本节点的状态信息及时通知给新的master节点;同时master节点每隔一段时间广播一个消息给资源池中的所有节点,使得每个节点都能知道master和backup节点的目标地址,避免某个节点宕机恢复的过程中master节点和backup节点的地址发生变化时,不能将状态信息发送到正确的目标地址。
CN201310398784.3A 2013-09-05 2013-09-05 一种基于角色的高可用虚拟机池化管理系统 Active CN103457775B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310398784.3A CN103457775B (zh) 2013-09-05 2013-09-05 一种基于角色的高可用虚拟机池化管理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310398784.3A CN103457775B (zh) 2013-09-05 2013-09-05 一种基于角色的高可用虚拟机池化管理系统

Publications (2)

Publication Number Publication Date
CN103457775A true CN103457775A (zh) 2013-12-18
CN103457775B CN103457775B (zh) 2016-09-14

Family

ID=49739762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310398784.3A Active CN103457775B (zh) 2013-09-05 2013-09-05 一种基于角色的高可用虚拟机池化管理系统

Country Status (1)

Country Link
CN (1) CN103457775B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337780A (zh) * 2015-12-01 2016-02-17 迈普通信技术股份有限公司 一种服务器节点配置方法及物理节点
US9639389B1 (en) 2015-11-24 2017-05-02 International Business Machines Corporation Technology for dynamic resource pool master
CN106789350A (zh) * 2017-01-23 2017-05-31 郑州云海信息技术有限公司 一种支持服务器虚拟化系统主节点高可用的方法及装置
CN103823709B (zh) * 2014-02-28 2017-06-20 华为技术有限公司 虚拟化集群系统、资源分配方法和管理节点
CN106911524A (zh) * 2017-04-27 2017-06-30 紫光华山信息技术有限公司 一种ha实现方法及装置
CN107247729A (zh) * 2017-05-03 2017-10-13 中国银联股份有限公司 一种文件处理方法和装置
WO2017193846A1 (en) * 2016-05-12 2017-11-16 Huawei Technologies Co., Ltd. Worker node rebuild for parallel processing system
CN107592228A (zh) * 2017-09-21 2018-01-16 郑州云海信息技术有限公司 一种虚拟化资源池管理节点失效处理方法和装置
CN108134706A (zh) * 2018-01-02 2018-06-08 中国工商银行股份有限公司 区块链多活高可用系统、计算机设备以及方法
CN111078352A (zh) * 2019-10-31 2020-04-28 苏州浪潮智能科技有限公司 一种基于kvm虚拟化系统的双机热备部署方法及系统
CN112181593A (zh) * 2020-09-27 2021-01-05 北京首都在线科技股份有限公司 虚拟机调度方法、装置、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775942B (zh) * 2016-12-09 2020-06-16 中国科学院软件研究所 一种云应用导向的固态盘缓存管理系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110167298A1 (en) * 2010-01-04 2011-07-07 Avaya Inc. Packet mirroring between primary and secondary virtualized software images for improved system failover performance
CN102479099A (zh) * 2010-11-22 2012-05-30 中兴通讯股份有限公司 虚拟机管理系统及其使用方法
CN102761566A (zh) * 2011-04-26 2012-10-31 国际商业机器公司 迁移虚拟机的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110167298A1 (en) * 2010-01-04 2011-07-07 Avaya Inc. Packet mirroring between primary and secondary virtualized software images for improved system failover performance
CN102479099A (zh) * 2010-11-22 2012-05-30 中兴通讯股份有限公司 虚拟机管理系统及其使用方法
CN102761566A (zh) * 2011-04-26 2012-10-31 国际商业机器公司 迁移虚拟机的方法和装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823709B (zh) * 2014-02-28 2017-06-20 华为技术有限公司 虚拟化集群系统、资源分配方法和管理节点
US9946570B2 (en) 2015-11-24 2018-04-17 International Business Machines Corporation Technology for dynamic resource pool master
US9639389B1 (en) 2015-11-24 2017-05-02 International Business Machines Corporation Technology for dynamic resource pool master
CN105337780A (zh) * 2015-12-01 2016-02-17 迈普通信技术股份有限公司 一种服务器节点配置方法及物理节点
CN105337780B (zh) * 2015-12-01 2018-09-18 迈普通信技术股份有限公司 一种服务器节点配置方法及物理节点
US10203992B2 (en) 2016-05-12 2019-02-12 Futurewei Technologies, Inc. Worker node rebuild for parallel processing system
WO2017193846A1 (en) * 2016-05-12 2017-11-16 Huawei Technologies Co., Ltd. Worker node rebuild for parallel processing system
CN106789350A (zh) * 2017-01-23 2017-05-31 郑州云海信息技术有限公司 一种支持服务器虚拟化系统主节点高可用的方法及装置
CN106911524A (zh) * 2017-04-27 2017-06-30 紫光华山信息技术有限公司 一种ha实现方法及装置
CN106911524B (zh) * 2017-04-27 2020-07-07 新华三信息技术有限公司 一种ha实现方法及装置
CN107247729A (zh) * 2017-05-03 2017-10-13 中国银联股份有限公司 一种文件处理方法和装置
CN107592228A (zh) * 2017-09-21 2018-01-16 郑州云海信息技术有限公司 一种虚拟化资源池管理节点失效处理方法和装置
CN108134706A (zh) * 2018-01-02 2018-06-08 中国工商银行股份有限公司 区块链多活高可用系统、计算机设备以及方法
CN108134706B (zh) * 2018-01-02 2020-08-18 中国工商银行股份有限公司 区块链多活高可用系统、计算机设备以及方法
CN111078352A (zh) * 2019-10-31 2020-04-28 苏州浪潮智能科技有限公司 一种基于kvm虚拟化系统的双机热备部署方法及系统
CN112181593A (zh) * 2020-09-27 2021-01-05 北京首都在线科技股份有限公司 虚拟机调度方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN103457775B (zh) 2016-09-14

Similar Documents

Publication Publication Date Title
CN103457775B (zh) 一种基于角色的高可用虚拟机池化管理系统
US9280430B2 (en) Deferred replication of recovery information at site switchover
US8239863B2 (en) Method and system for migrating a virtual machine
CN107707393B (zh) 基于Openstack O版特性的多活系统
US8996477B2 (en) Multiple node/virtual input/output (I/O) server (VIOS) failure recovery in clustered partition mobility
US8286026B2 (en) Fault-tolerance and fault-containment models for zoning clustered application silos into continuous availability and high availability zones in clustered systems during recovery and maintenance
TWI625621B (zh) 用於資料庫中進行回復的方法、電腦可用程式產品、與資料處理系統
CN109151045B (zh) 一种分布式云系统及监控方法
CN102325192B (zh) 云计算实现方法和系统
CN102402395B (zh) 基于仲裁磁盘的高可用系统不间断运行方法
US9280428B2 (en) Method for designing a hyper-visor cluster that does not require a shared storage device
US8583773B2 (en) Autonomous primary node election within a virtual input/output server cluster
CN110727709A (zh) 一种集群数据库系统
CN110912991A (zh) 一种基于超融合双节点高可用的实现方法
EP2805239A1 (en) Systems and methods for server cluster application virtualization
US10826812B2 (en) Multiple quorum witness
CN105159798A (zh) 一种虚拟机的双机热备方法、双机热备管理服务器和系统
CN102938705A (zh) 一种高可用多机备份路由表管理与切换方法
CN103532753A (zh) 一种基于内存换页同步的双机热备方法
CN111935244B (zh) 一种业务请求处理系统及超融合一体机
CN103106126A (zh) 一种基于虚拟化的高可用计算机系统
US9367413B2 (en) Detecting data loss during site switchover
CN112887367B (zh) 实现分布式集群高可用的方法、系统及计算机可读介质
US8621260B1 (en) Site-level sub-cluster dependencies
CN103793296A (zh) 一种在集群中用于辅助备份复制计算机系统的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant