CN104536842A - 基于kvm虚拟化的虚拟机容错方法 - Google Patents

基于kvm虚拟化的虚拟机容错方法 Download PDF

Info

Publication number
CN104536842A
CN104536842A CN201410790755.6A CN201410790755A CN104536842A CN 104536842 A CN104536842 A CN 104536842A CN 201410790755 A CN201410790755 A CN 201410790755A CN 104536842 A CN104536842 A CN 104536842A
Authority
CN
China
Prior art keywords
virtual machine
host
data
fault
virtual
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
Application number
CN201410790755.6A
Other languages
English (en)
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.)
CLP SECTION HUAYUN INFORMATION TECHNOLOGY Co Ltd
Original Assignee
CLP SECTION HUAYUN INFORMATION TECHNOLOGY 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 CLP SECTION HUAYUN INFORMATION TECHNOLOGY Co Ltd filed Critical CLP SECTION HUAYUN INFORMATION TECHNOLOGY Co Ltd
Priority to CN201410790755.6A priority Critical patent/CN104536842A/zh
Publication of CN104536842A publication Critical patent/CN104536842A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

本发明提供了一种基于KVM虚拟化的虚拟机容错方法,包括以下步骤:步骤一,主从宿主节点之间共享虚拟机磁盘所在的共享文件系统;步骤二,在从宿主节点上启动从虚拟机,作为主虚拟机的镜像虚拟机;步骤三,主虚拟机主动发起数据同步请求;步骤四,主虚拟机和从虚拟机进入循环同步阶段;步骤五,触发容错后,从虚拟机将启动虚拟CPU。本发明在虚拟化层控制提供虚拟机容错功能,在主节点发生异常时虚机进程能够迅速切换到旁路备份节点,对虚拟机内服务不产生影响,达到无缝容错的效果。

Description

基于KVM虚拟化的虚拟机容错方法
技术领域
本发明涉及一种虚拟机容错方法,具体地,涉及一种基于KVM虚拟化的虚拟机容错方法。
背景技术
目前KVM(基于内核的虚拟机)虚拟化没有提供虚拟机容错(fault tolerance)功能,一般对于KVM虚机的容错功能基于以下两种方法:
一,依赖上层管理策略,监控发现虚机异常后,在另一节点重启该虚机,这种方法的缺点在于,虚拟机在重启过程,其上的所有应用都会中断服务,并且有无法恢复的风险;
二,启动多个虚机,为虚机内某个应用(比如Web应用)做集群,达到单个应用层面的容错,这种方法的缺点在于只能针对单个应用做容错,并且并非所有应用程序都具备集群功能。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于KVM虚拟化的虚拟机容错方法,其在虚拟化层控制提供虚拟机容错功能,在主节点发生异常时虚机进程能够迅速切换到旁路备份节点,对虚拟机内服务不产生影响,达到无缝容错的效果。
根据本发明的一个方面,提供一种基于KVM虚拟化的虚拟机容错方法,其特征在于,包括以下步骤:
步骤一,针对主宿主节点准备从宿主节点,一般从宿主节点物理资源与主宿主节点相符,以便在住宿主节点故障时能够完全接管承载其上的虚拟机资源;主从宿主节点之间共享虚拟机磁盘所在的共享文件系统;
步骤二,在从宿主节点上启动从虚拟机,作为主虚拟机的镜像虚拟机,主虚拟机的定义和从虚拟机的定义必须相同;从虚拟机启动开始,虚拟CPU处于锁定状态,通过监听指定的TCP端口,等待接收主虚拟机发送来的同步请求;
步骤三,主虚拟机主动发起数据同步请求;
步骤四,主虚拟机和从虚拟机进入循环同步阶段;
步骤五,触发容错后,从虚拟机将启动虚拟CPU。
优选地,步骤三包括以下步骤:
步骤三十一,为使内存及状态数据能够尽可能快的保存与接受,主虚拟机、从虚拟机均预先在本地构造缓存空间;
步骤三十二,主虚拟机通过第二步指定的端口向从虚拟机发起TCP连接,并确认连接成功;
步骤三十三,主虚拟机将需要传输的虚拟内存及虚拟设备数据结构化地保存至本地缓存池中;
步骤三十四,通过数据通道,主虚拟机首先发送传输启动通知至从虚拟机,接着发送本次迭代保存的脏数据,最后发送传输完成通知,并等待从虚拟机发送来的传输确认通知;
步骤三十五,从虚拟机接受数据,将数据暂存于步骤三十一构造的缓冲池中,并向主虚拟机发送传输完成数据段,之后再由缓冲池中的数据构造还原出虚拟机内存和虚拟机设备状态数据,最后开始等待接受下一次循环的数据流;
步骤三十六,主虚拟机接收到从虚拟机发送的传输确认报文后,一次完整的同步过程完成;由主虚拟机端统计传输数据量和传输时间,可用于传输频率控制;
步骤三十七,循环执行以上步骤三十三至步骤三十六步骤,将不断同步传输虚拟机内存数据与设备状态数据到从虚拟机端,直到主虚拟机发生异常,触发容错切换动作。
优选地,所述步骤三十三前后需要为虚拟机I/O线程进行申请或释放锁的操作。
优选地,所述步骤五启动虚拟CPU后,从虚拟机立刻还原到主虚拟机运行的状态。
与现有技术相比,本发明具有如下的有益效果:本发明在虚拟化层控制提供虚拟机容错功能,在主节点发生异常时虚机进程能够迅速切换到旁路备份节点,对虚拟机内服务不产生影响,达到无缝容错的效果。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明中主宿主机、从宿主机、共享文件系统部署的示意图。
图2为本发明中主虚拟机、从虚拟机部署的示意图。
图3为本发明中循环同步过程的示意图。
图4为本发明中虚拟机容错触发的示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明构造一个从属虚拟机,使其不断接受主虚拟机同步来的变化数据,并能在主虚拟机发生故障时进行切换,将主虚拟机的运行态转移到从虚拟机中。
本发明基于KVM虚拟化的虚拟机容错方法包括以下步骤:
步骤一,针对主宿主节点(master-host)准备从宿主节点(slave-host),一般从宿主节点物理资源与主宿主节点相符,以便在住宿主节点故障时能够完全接管承载其上的虚拟机资源;主从宿主节点之间共享虚拟机磁盘所在的共享文件系统,以此保障主宿主节点异常后,从宿主节点仍能通过共享文件系统读写虚拟机磁盘文件内容;如图1所示,主宿主节点位于主宿主机内,从宿主节点位于从宿主机内。
步骤二,如图2所示,在从宿主节点上启动从虚拟机(slave-vm),作为主虚拟机(master-vm)的镜像虚拟机,主虚拟机的定义和从虚拟机的定义必须相同(如虚拟网卡mac地址,虚拟CPU型号等),以便从虚拟机能够接管主虚拟机提供的所有虚拟设备;从虚拟机启动开始,虚拟CPU处于锁定状态,通过监听指定的TCP端口,等待接收主虚拟机发送来的同步请求;
步骤三,主虚拟机主动发起数据同步请求,具体请求流程如下:
步骤三十一,为使内存及状态数据能够尽可能快的保存与接受,主虚拟机、从虚拟机均预先在本地构造缓存空间,此内存缓冲区一方面以节省循环申请、释放内存的开销,一方面提高脏数据对比效率,节省传输网络流量;
步骤三十二,主虚拟机通过第二步指定的端口向从虚拟机发起TCP连接,并确认连接成功;
步骤三十三,主虚拟机将需要传输的虚拟内存及虚拟设备数据结构化地保存至本地缓存池中;为保障数据的一致性,在此步骤前后需要为虚拟机I/O线程进行申请或释放锁的操作;
步骤三十四,通过数据通道,主虚拟机首先发送传输启动通知至从虚拟机,接着发送本次迭代保存的脏数据,最后发送传输完成通知,并等待从虚拟机发送来的传输确认通知,其中“传输启动”、“传输完成”、“传输确认”均应以协商的标示数据段指代;
步骤三十五,从虚拟机接受通过“传输启动”、“传输完成”等标识数据段分割的数据,将数据暂存于步骤三十一构造的缓冲池中,并向主虚拟机发送“传输完成”数据段,之后再由缓冲池中的数据构造还原出虚拟机内存和虚拟机设备状态数据,最后开始等待接受下一次循环的数据流;
步骤三十六,主虚拟机接收到从虚拟机发送的传输确认报文后,一次完整的同步过程完成;由主虚拟机端统计传输数据量和传输时间,可用于传输频率控制;控制传输频率的目的在于根据虚拟机应用特点的不同加以控制:对于内存变化较少的虚拟机,控制循环频率以节省宿主机资源;而对于内存变化较大的虚拟机,应尽量加快循环频率,使数据能够更密集地传输向从虚拟机;
步骤三十七,循环执行以上步骤三十三至步骤三十六步骤,将不断同步传输虚拟机内存数据与设备状态数据到从虚拟机端,直到主虚拟机发生异常,触发容错切换动作,具体如图3所示;
步骤四,主虚拟机和从虚拟机进入循环同步阶段,之后有两种条件将触发虚拟机容错机制:一,通过为指定信号或信号集设置处理句柄,使主虚拟机捕捉到相关信号异常执行退出(比如操作系统发来的2号中断)前,继续传输完成目前循环中需要同步的数据,并主动发送表示状态异常的报文至从虚拟机,以此触发虚拟机容错;二,从虚拟机从数据流中读取数据失败,以此触发虚拟机容错;
步骤五,触发容错后,从虚拟机将启动虚拟CPU;因为步骤三的循环动作中从虚拟机已经接受和构造了所有与主虚拟机相同的虚拟内存与虚拟设备数据,并且在第一步中设置了从虚拟机的虚拟磁盘与主虚拟机共享,所以启动虚拟CPU后,从虚拟机立刻还原到主虚拟机运行的状态,具体如图4所示。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (4)

1.一种基于KVM虚拟化的虚拟机容错方法,其特征在于,包括以下步骤:
步骤一,针对主宿主节点准备从宿主节点,一般从宿主节点物理资源与主宿主节点相符,以便在住宿主节点故障时能够完全接管承载其上的虚拟机资源;主从宿主节点之间共享虚拟机磁盘所在的共享文件系统;
步骤二,在从宿主节点上启动从虚拟机,作为主虚拟机的镜像虚拟机,主虚拟机的定义和从虚拟机的定义必须相同;从虚拟机启动开始,虚拟CPU处于锁定状态,通过监听指定的TCP端口,等待接收主虚拟机发送来的同步请求;
步骤三,主虚拟机主动发起数据同步请求;
步骤四,主虚拟机和从虚拟机进入循环同步阶段;
步骤五,触发容错后,从虚拟机将启动虚拟CPU。
2.根据权利要求1所述的基于KVM虚拟化的虚拟机容错方法,其特征在于,所述步骤三包括以下步骤:
步骤三十一,为使内存及状态数据能够尽可能快的保存与接受,主虚拟机、从虚拟机均预先在本地构造缓存空间;
步骤三十二,主虚拟机通过第二步指定的端口向从虚拟机发起TCP连接,并确认连接成功;
步骤三十三,主虚拟机将需要传输的虚拟内存及虚拟设备数据结构化地保存至本地缓存池中;
步骤三十四,通过数据通道,主虚拟机首先发送传输启动通知至从虚拟机,接着发送本次迭代保存的脏数据,最后发送传输完成通知,并等待从虚拟机发送来的传输确认通知;
步骤三十五,从虚拟机接受数据,将数据暂存于步骤三十一构造的缓冲池中,并向主虚拟机发送传输完成数据段,之后再由缓冲池中的数据构造还原出虚拟机内存和虚拟机设备状态数据,最后开始等待接受下一次循环的数据流;
步骤三十六,主虚拟机接收到从虚拟机发送的传输确认报文后,一次完整的同步过程完成;由主虚拟机端统计传输数据量和传输时间,可用于传输频率控制;
步骤三十七,循环执行以上步骤三十三至步骤三十六步骤,将不断同步传输虚拟机内存数据与设备状态数据到从虚拟机端,直到主虚拟机发生异常,触发容错切换动作。
3.根据权利要求2所述的基于KVM虚拟化的虚拟机容错方法,其特征在于,所述步骤三十三前后需要为虚拟机I/O线程进行申请或释放锁的操作。
4.根据权利要求1所述的基于KVM虚拟化的虚拟机容错方法,其特征在于,所述步骤五启动虚拟CPU后,从虚拟机立刻还原到主虚拟机运行的状态。
CN201410790755.6A 2014-12-17 2014-12-17 基于kvm虚拟化的虚拟机容错方法 Pending CN104536842A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410790755.6A CN104536842A (zh) 2014-12-17 2014-12-17 基于kvm虚拟化的虚拟机容错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410790755.6A CN104536842A (zh) 2014-12-17 2014-12-17 基于kvm虚拟化的虚拟机容错方法

Publications (1)

Publication Number Publication Date
CN104536842A true CN104536842A (zh) 2015-04-22

Family

ID=52852373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410790755.6A Pending CN104536842A (zh) 2014-12-17 2014-12-17 基于kvm虚拟化的虚拟机容错方法

Country Status (1)

Country Link
CN (1) CN104536842A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204955A (zh) * 2015-09-30 2015-12-30 华为技术有限公司 一种虚拟机故障修复方法和装置
CN105335254A (zh) * 2015-11-03 2016-02-17 烽火通信科技股份有限公司 虚拟化备份容错系统及方法
CN105373418A (zh) * 2015-11-25 2016-03-02 北京汉柏科技有限公司 虚拟机ft的实现方法及装置
CN106406933A (zh) * 2016-08-30 2017-02-15 广西电网有限责任公司 一种Tomcat集群一键自动部署方法
CN106970861A (zh) * 2017-03-30 2017-07-21 山东超越数控电子有限公司 一种虚拟机容错方法和系统
CN107203443A (zh) * 2017-06-23 2017-09-26 郑州云海信息技术有限公司 一种基于kvm虚拟化的虚拟机高可用的方法与装置
CN108880898A (zh) * 2018-06-29 2018-11-23 新华三技术有限公司 主备容器系统切换方法及装置
CN109361777A (zh) * 2018-12-18 2019-02-19 广东浪潮大数据研究有限公司 分布式集群节点状态的同步方法、同步系统及相关装置
CN111488247A (zh) * 2020-04-08 2020-08-04 上海云轴信息科技有限公司 一种管控节点多次容错的高可用方法及设备
CN111813606A (zh) * 2020-07-22 2020-10-23 山东超越数控电子股份有限公司 一种双节点虚拟机容错的方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662751A (zh) * 2012-03-30 2012-09-12 浪潮电子信息产业股份有限公司 一种提高基于热迁移虚拟机系统可用性的方法
US20120254861A1 (en) * 2011-03-29 2012-10-04 Hitachi, Ltd. Method and apparatus of data center file system
CN103581177A (zh) * 2013-10-24 2014-02-12 华为技术有限公司 虚拟机管理方法及装置
CN103885857A (zh) * 2014-03-10 2014-06-25 中标软件有限公司 虚拟机容错方法以及设备
CN103902401A (zh) * 2014-03-14 2014-07-02 汉柏科技有限公司 基于监控的虚拟机容错方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254861A1 (en) * 2011-03-29 2012-10-04 Hitachi, Ltd. Method and apparatus of data center file system
CN102662751A (zh) * 2012-03-30 2012-09-12 浪潮电子信息产业股份有限公司 一种提高基于热迁移虚拟机系统可用性的方法
CN103581177A (zh) * 2013-10-24 2014-02-12 华为技术有限公司 虚拟机管理方法及装置
CN103885857A (zh) * 2014-03-10 2014-06-25 中标软件有限公司 虚拟机容错方法以及设备
CN103902401A (zh) * 2014-03-14 2014-07-02 汉柏科技有限公司 基于监控的虚拟机容错方法及装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017054626A1 (zh) * 2015-09-30 2017-04-06 华为技术有限公司 一种虚拟机故障修复方法和装置
CN105204955A (zh) * 2015-09-30 2015-12-30 华为技术有限公司 一种虚拟机故障修复方法和装置
CN105204955B (zh) * 2015-09-30 2018-05-29 华为技术有限公司 一种虚拟机故障修复方法和装置
CN105335254B (zh) * 2015-11-03 2018-07-24 烽火通信科技股份有限公司 虚拟化备份容错系统及方法
CN105335254A (zh) * 2015-11-03 2016-02-17 烽火通信科技股份有限公司 虚拟化备份容错系统及方法
CN105373418A (zh) * 2015-11-25 2016-03-02 北京汉柏科技有限公司 虚拟机ft的实现方法及装置
CN106406933A (zh) * 2016-08-30 2017-02-15 广西电网有限责任公司 一种Tomcat集群一键自动部署方法
CN106406933B (zh) * 2016-08-30 2020-05-12 广西电网有限责任公司 一种Tomcat集群一键自动部署方法
CN106970861A (zh) * 2017-03-30 2017-07-21 山东超越数控电子有限公司 一种虚拟机容错方法和系统
CN107203443A (zh) * 2017-06-23 2017-09-26 郑州云海信息技术有限公司 一种基于kvm虚拟化的虚拟机高可用的方法与装置
CN108880898A (zh) * 2018-06-29 2018-11-23 新华三技术有限公司 主备容器系统切换方法及装置
CN108880898B (zh) * 2018-06-29 2020-09-08 新华三技术有限公司 主备容器系统切换方法及装置
CN109361777A (zh) * 2018-12-18 2019-02-19 广东浪潮大数据研究有限公司 分布式集群节点状态的同步方法、同步系统及相关装置
CN111488247A (zh) * 2020-04-08 2020-08-04 上海云轴信息科技有限公司 一种管控节点多次容错的高可用方法及设备
CN111488247B (zh) * 2020-04-08 2023-07-25 上海云轴信息科技有限公司 一种管控节点多次容错的高可用方法及设备
CN111813606A (zh) * 2020-07-22 2020-10-23 山东超越数控电子股份有限公司 一种双节点虚拟机容错的方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN104536842A (zh) 基于kvm虚拟化的虚拟机容错方法
CN108183871B (zh) 一种虚拟交换机、虚拟交换机启动方法,电子设备
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US7617411B2 (en) Cluster system and failover method for cluster system
CN106331098B (zh) 一种服务器集群系统
CN108616382B (zh) 升级网卡固件的方法、装置、网卡和设备
US9600380B2 (en) Failure recovery system and method of creating the failure recovery system
CN102662751B (zh) 一种提高基于热迁移虚拟机系统可用性的方法
US9489230B1 (en) Handling of virtual machine migration while performing clustering operations
EP4083786A1 (en) Cloud operating system management method and apparatus, server, management system, and medium
CN102355369B (zh) 虚拟化集群系统及其处理方法和设备
CN103618627B (zh) 一种管理虚拟机的方法、装置及系统
WO2016115831A1 (zh) 一种虚拟机容错的方法、装置及系统
CN102446119B (zh) 基于Passthrough I/O的虚拟机动态迁移方法
CN109245926B (zh) 智能网卡、智能网卡系统及控制方法
CN106528327A (zh) 一种数据处理方法以及备份服务器
CN105159798A (zh) 一种虚拟机的双机热备方法、双机热备管理服务器和系统
CN104239120B (zh) 一种虚拟机的状态信息同步的方法、装置及系统
CN105554074A (zh) 一种基于rpc通信的nas资源监控系统及监控方法
CN102938705A (zh) 一种高可用多机备份路由表管理与切换方法
CN103532753A (zh) 一种基于内存换页同步的双机热备方法
CN103501290A (zh) 一种基于动态备份虚拟机的高可靠服务系统构建方法
CN105281949A (zh) 混合存储模式中主机的隔离方法和隔离装置
JP5352299B2 (ja) 高信頼性計算機システムおよびその構成方法
CN101960435B (zh) 用于执行主机枚举过程的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150422