虚拟机的故障检测恢复方法及系统技术方案

技术编号:19341347 阅读:48 留言:0更新日期:2018-11-07 13:36
本发明专利技术公开了一种虚拟机的故障检测恢复方法及系统,涉及虚拟机领域。该方法包括以下步骤:启动虚拟机时,虚拟看门狗;虚拟机启动后,创建高精度定时器,并启动高精度定时器;创建内核监控线程和用户态监控线程,内核监控线程进行基于netlink的内核故障心跳检测,用户态监控线程进行用户态喂狗检测;内核监控线程检测到心跳异常时,关闭看门狗,记录内核故障信息日志;再打开看门狗,如果用户态喂狗异常超过预设的喂狗异常时间,记录用户态故障信息日志,看门狗触发系统故障复位重启。本发明专利技术能检测虚拟机的内核和用户态故障,实现内核和用户态故障日志收集及故障自动恢复。

Fault detection and recovery method and system for virtual machine

The invention discloses a fault detection recovery method and system for a virtual machine, and relates to the field of virtual machines. The method includes the following steps: virtual watchdog when virtual machine is started; high-precision timer is created after virtual machine is started, and high-precision timer is started; kernel monitoring thread and user monitoring thread are created; kernel monitoring thread is used to detect kernel failure heartbeat based on netlink, and user monitoring thread is used to detect user failure heartbeat. When the monitoring thread detects abnormal heartbeat, it closes the watchdog and records the information log of the kernel failure. Then it opens the watchdog. If the abnormal feeding time of the user mode exceeds the preset abnormal feeding time, it records the information log of the user mode failure, and the watchdog triggers the reset of the system failure. The invention can detect the kernel and user state faults of the virtual machine, and realize the collection of the fault log of the kernel and user state and the automatic recovery of the faults.

【技术实现步骤摘要】
虚拟机的故障检测恢复方法及系统
本专利技术涉及虚拟机领域,具体是涉及一种虚拟机的故障检测恢复方法及系统。
技术介绍
NFVI(网络功能虚拟化基础设施解决方案)是用来托管和连接虚拟功能的一组资源。具体来说,NFVI是一种包含服务器、虚拟化管理程序(hypervisor)、操作系统、虚机、虚拟交换机和网络资源的云数据中心。在NFVI领域,虚拟机是承载和运行业务的实体,对虚拟机的可靠运行和故障检测提出了较高的要求,需要检测是内核态故障,还是用户态故障,并记录故障log(日志)。QEMU是一套由法布里斯·贝拉编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。目前,QEMU启动的虚拟机任务进程作为hostlinux的一个用户进程,一般只能检测QEMU进程是否异常退出或处于僵尸进程状态,无法判断虚拟机内核状态是否异常,而且不能及时记录异常日志,重启恢复系统,这样就会造成业务中断,带来致命的电信设备宕机故障。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种虚拟机的故障检测恢复方法及系统,能够可靠地检测虚拟机的内核和用户态故障,实现虚拟机的内核和用户态故障日志收集及故障自动恢复。本专利技术提供一种虚拟机的故障检测恢复方法,包括以下步骤:启动虚拟机时,虚拟看门狗;虚拟机启动后,创建高精度定时器,并启动高精度定时器;创建内核监控线程和用户态监控线程,内核监控线程进行基于netlink的内核故障心跳检测,用户态监控线程进行用户态喂狗检测;内核监控线程检测到心跳异常时,用户态监控线程关闭看门狗,记录内核故障信息日志;用户态监控线程再打开看门狗,如果用户态喂狗异常超过预设的喂狗异常时间,则记录用户态故障信息日志,看门狗触发系统故障复位重启。在上述技术方案的基础上,所述创建内核监控线程和用户态监控线程以后,还包括以下步骤:创建Linux文件系统的内核状态交互查询接口文件,作为虚拟机用户态和内核态的交互查询文件。在上述技术方案的基础上,所述内核监控线程按照高精度定时器配置的周期进行基于netlink的内核故障心跳检测,用户态监控线程按照高精度定时器配置的周期进行用户态喂狗检测。在上述技术方案的基础上,所述高精度定时器配置内核故障心跳检测的周期为20ms。在上述技术方案的基础上,所述内核监控线程检测到心跳异常时,用户态监控线程关闭看门狗两个喂狗周期,提前收集内核故障信息日志。本专利技术还提供一种虚拟机的故障检测恢复系统,包括看门狗虚拟单元、高精度定时器创建单元、监控线程创建单元、故障日志收集单元,其中:看门狗虚拟单元用于:启动虚拟机时,虚拟看门狗;高精度定时器创建单元用于:虚拟机启动后,创建高精度定时器,并启动高精度定时器;监控线程创建单元用于:创建内核监控线程和用户态监控线程,内核监控线程进行基于netlink的内核故障心跳检测,用户态监控线程进行用户态喂狗检测;内核监控线程检测到心跳异常时,用户态监控线程关闭看门狗,故障日志收集单元记录内核故障信息日志;用户态监控线程再打开看门狗,如果用户态喂狗异常超过预设的喂狗异常时间,故障日志收集单元记录用户态故障信息日志,看门狗触发系统故障复位重启。在上述技术方案的基础上,该系统还包括交互查询文件创建单元,监控线程创建单元创建内核监控线程和用户态监控线程以后,交互查询文件创建单元创建Linux文件系统的内核状态交互查询接口文件,作为虚拟机用户态和内核态的交互查询文件。在上述技术方案的基础上,所述内核监控线程按照高精度定时器配置的周期进行基于netlink的内核故障心跳检测,用户态监控线程按照高精度定时器配置的周期进行用户态喂狗检测。在上述技术方案的基础上,所述高精度定时器配置内核故障心跳检测的周期为20ms。在上述技术方案的基础上,所述内核监控线程检测到心跳异常时,用户态监控线程关闭看门狗两个喂狗周期,故障日志收集单元提前收集内核故障信息日志。与现有技术相比,本专利技术的优点如下:(1)本专利技术通过linux内核和用户态双通道检测手段,实现虚拟机故障的可靠检测和自动恢复,综合基于netlink的内核态和用户态通信心跳技术、基于虚拟看门狗的QEMU虚拟化用户态喂狗技术、内核态和用户态定时器技术、日志记录技术,形成一个自动化的故障检测和日志记录方法,基于双通道的虚拟机故障检测技术,可以更可靠地检测虚拟机的内核和用户态故障,并增加虚拟机的内核和用户态故障日志收集及故障自动恢复功能。用户态和内核态的双重保护,确保虚拟机故障的可靠检测和复位。(2)高精度定时器配置内核故障心跳检测的周期为20ms,定时器的精度非常高,可以满足高精度虚拟机监控需求,并且可以通过/proc/kernel/parameter参数进行动态调整。内核高精度定时器调度开销小,执行可靠。(3)基于netlink的内核和用户通信技术,系统开销小,通信可靠。(4)内核监控模块可以添加各种参数,对监控属性进行控制,方便灵活,通用性强。由于有内核态监控模块,可以获取所有用户态进程和操作系统堆栈信息,并通过标准的socket(套接字)接口发送到用户态监控线程,不仅可以进行内核态心跳检测,还可以作为虚拟机故障诊断模块,动态扩展功能。(5)虚拟机提供高效的状态查询文件接口,供用户动态查询内核态和用户态的状态,提高系统的易用性。(6)本专利技术可以记录不同的复位原因到日志文件,方便定位虚拟机故障复位原因,可以满足虚拟机内核或用户态异常情况下的故障检测和复位需求,提高了虚拟机linux系统的可维护性和可靠性。(7)本专利技术为虚拟机增加了虚拟看门狗芯片功能,提高了虚拟机故障后自动恢复功能,相比硬件看门狗芯片方案,有效降低了成本。(8)虚拟机内核态和用户态心跳周期参数可以通过内核模块动态配置,用户程序通过查询proc文件系统实时查询,增强了程序的通用性和可移植性。(9)内核监控线程检测到心跳异常时,用户态监控线程关闭看门狗两个喂狗周期,从而可以提前收集内核故障信息日志,避免了看门狗喂狗异常导致的系统突然重启,没有收集到日志的问题。附图说明图1是本专利技术实施例中虚拟机的故障检测恢复方法的流程图。图2是本专利技术实施例中内核监控线程进行基于netlink的内核故障心跳检测的流程图。图3是本专利技术实施例中通过控制虚拟看门狗工作并保存内核log信息的流程图。图4是本专利技术实施例中虚拟看门狗的流程图。具体实施方式下面结合附图及具体实施例对本专利技术作进一步的详细描述。实施例1参见图1所示,本专利技术实施例1提供一种虚拟机的故障检测恢复方法,包括以下步骤:S1:QEMU模拟器启动虚拟机时,增加--watchdogi6300esb参数,虚拟一个看门狗芯片intel6300esb;S2:虚拟机启动后,虚拟机的Linux文件系统监控程序启动脚本/etc/rc.local(Linux的启动程序),自动加载内核监控模块kernelnetlink.ko,该内核监控模块创建高精度定时器,并启动高精度定时器;由于有内核态监控模块,可以获取所有用户态进程和操作系统堆栈信息,并通过标准的socket(套接字)接口发送到用户态监控线程,不仅可以进行内核态心跳检测,还可以作为虚拟机故障诊断模块,动态扩展功能。启动虚拟机故障检测程序,虚拟机故障检测程序创建内核监控线程和用户态本文档来自技高网...

【技术保护点】
1.一种虚拟机的故障检测恢复方法,其特征在于,包括以下步骤:启动虚拟机时,虚拟看门狗;虚拟机启动后,创建高精度定时器,并启动高精度定时器;创建内核监控线程和用户态监控线程,内核监控线程进行基于netlink的内核故障心跳检测,用户态监控线程进行用户态喂狗检测;内核监控线程检测到心跳异常时,用户态监控线程关闭看门狗,记录内核故障信息日志;用户态监控线程再打开看门狗,如果用户态喂狗异常超过预设的喂狗异常时间,则记录用户态故障信息日志,看门狗触发系统故障复位重启。

【技术特征摘要】
1.一种虚拟机的故障检测恢复方法,其特征在于,包括以下步骤:启动虚拟机时,虚拟看门狗;虚拟机启动后,创建高精度定时器,并启动高精度定时器;创建内核监控线程和用户态监控线程,内核监控线程进行基于netlink的内核故障心跳检测,用户态监控线程进行用户态喂狗检测;内核监控线程检测到心跳异常时,用户态监控线程关闭看门狗,记录内核故障信息日志;用户态监控线程再打开看门狗,如果用户态喂狗异常超过预设的喂狗异常时间,则记录用户态故障信息日志,看门狗触发系统故障复位重启。2.如权利要求1所述的虚拟机的故障检测恢复方法,其特征在于:所述创建内核监控线程和用户态监控线程以后,还包括以下步骤:创建Linux文件系统的内核状态交互查询接口文件,作为虚拟机用户态和内核态的交互查询文件。3.如权利要求1所述的虚拟机的故障检测恢复方法,其特征在于:所述内核监控线程按照高精度定时器配置的周期进行基于netlink的内核故障心跳检测,用户态监控线程按照高精度定时器配置的周期进行用户态喂狗检测。4.如权利要求3所述的虚拟机的故障检测恢复方法,其特征在于:所述高精度定时器配置内核故障心跳检测的周期为20ms。5.如权利要求1所述的虚拟机的故障检测恢复方法,其特征在于:所述内核监控线程检测到心跳异常时,用户态监控线程关闭看门狗两个喂狗周期,提前收集内核故障信息日志。6.一种虚拟机的故障检测恢复系统,其特征在于,包括看门狗虚拟单元、高精度定时器创建单元、监控线程创建单元、故障日志收集...

【专利技术属性】
技术研发人员:邓艳山
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1