基于虚拟机技术的远程维护系统的制作方法

文档序号:7754895阅读:213来源:国知局
专利名称:基于虚拟机技术的远程维护系统的制作方法
技术领域
本发明涉及一种基于虚拟机技术的远程维护系统。
背景技术
目前接入互联网存在各种终端接入方式,其中宽带用户是很大的一部分群体。在 这部分人当中有相当部分用户对通信和计算机技术并不了解,只要上不了网就通过电话报 故障。通过调查,造成宽带用户不能上网的原因一方面和网络连接有关,一方面和计算机用 户的操作系统设置有关。以往通过电话报故障,人工上门服务的这种方式周期长、成本高、 效率低,已经不能适用于不断扩大的宽带用户群体。

发明内容
本发明目的在于提供一种基于虚拟机技术的远程维护系统,维护周期短、成本低、
效率高。为了实现上述目的,本发明采用如下技术方案基于虚拟机技术的远程维护系统, 包括客户端、远程维护服务器、远程维护端,客户端通过虚拟机网关与远程维护服务器连 接,远程维护端与远程维护服务器连接,客户端设有用于提供纯净的故障检测环境的维护 虚拟机,所述的维护虚拟机包括虚拟化模块、自动恢复模块、故障排除模块、故障定位模块、 管理模块和远程维护服务模块;所述的客户端系统运行时存在两种状态维护虚拟机和工 作虚拟机,维护虚拟机是用来分析问题,请求维护的系统状态,工作虚拟机是提供工作环境 的系统状态;远程维护系统工作流程为(1)当在工作虚拟机下出现系统异常,进入维护虚 拟机;(2)判断是否存在系统或配置错误,判断结果为“是”时,则启动自动恢复模块,对系 统或配置错误进行恢复维护;(3)上一步判断结果为“否”时,则继续判断是否存在网络链 路不畅通,判断结果为“是”时,启动故障排除模块或故障定位模块,进行排除故障或者排除 故障失败后定位出故障位置;(4)上一步判断结果为“否”时,确定通信网络物理层畅通,可 启动远程维护服务模块,请求远程维护服务器建立远程连接;(5)判断远程连接是否成功, 判断结果为“否”时,则转到提示更换故障硬件;(6)上一步判断结果为“是”时,远程维护服 务器分配远程维护端与客户端建立连接,远程维护端对客户端进行远程维护排除故障。所述的维护虚拟机的管理模块包括中断/异常管理模块、内存管理模块、I/O管理 模块、虚拟机管理模块。所述的故障定位模块通过对系统API数据调用来判断网络上故障出现的位置,故 障类型判断包括网卡禁用故障判断、网线拨出故障判断、拨号程序故障判断、DNS故障判断。本发明在终端用户操作系统中永远存在一个健康的维护虚拟机,为排除网络故障 提供了一个纯净的环境,这样在远程维护时无论原有操作系统是否崩溃都可以启动维护虚 拟机分情况进行故障处理。这种新的维护方式可以排除或定位许多故障种类,做到维护工 作有的放矢,是对现在宽带维护通过电话受理人工上门服务这种高成本、慢响应、维护周期 长、故障定位靠经验的维护方式的改进。


图1是本发明的远程维护的连网示意图;图2客户端远程维护流程图;图3是根据本发明设计的虚拟机监控器;图4是根据本发明设计的I/O虚拟化框架;图5是根据本发明的输入时虚拟机与I/O处理机间的交互;图6是根据本发明的输出时虚拟机与I/O处理机间的交互;图7是本发明服务器与终端用户之间的通信消息发送流程图。
具体实施例方式实施例如图1-7所示,基于虚拟机技术的远程维护系统,包括客户端、远程维护 服务器、远程维护端,客户端通过虚拟机网关与远程维护服务器连接,远程维护端与远程维 护服务器连接,客户端设有用于提供纯净的故障检测环境的维护虚拟机,所述的维护虚拟 机包括虚拟化模块、自动恢复模块、故障排除模块、故障定位模块、管理模块和远程维护服 务模块;所述的客户端系统运行时存在两种状态维护虚拟机和工作虚拟机,维护虚拟机 是用来分析问题,请求维护的系统状态,工作虚拟机是提供工作环境的系统状态;远程维护 系统工作流程为(1)当在工作虚拟机下出现系统异常,进入维护虚拟机;(2)判断是否存 在系统或配置错误,判断结果为“是”时,则启动自动恢复模块,对系统或配置错误进行恢 复维护;(3)上一步判断结果为“否”时,则继续判断是否存在网络链路不畅通,判断结果为 “是”时,启动故障排除模块或故障定位模块,进行排除故障或者排除故障失败后定位出故 障位置;(4)上一步判断结果为“否”时,确定通信网络物理层畅通,可启动远程维护服务模 块,请求远程维护服务器建立远程连接;(5)判断远程连接是否成功,判断结果为“否”时, 则转到提示更换故障硬件;(6)上一步判断结果为“是”时,远程维护服务器分配远程维护 端与客户端建立连接,远程维护端对客户端进行远程维护排除故障。维护虚拟机,是一种只读的稳定系统状态,不会被病毒感染,而且不会被用户错误 操作,保证在该环境下能够正确查找和定位系统的问题。维护虚拟机的管理模块包括中断/异常管理模块、内存管理模块、I/O管理模块、 虚拟机管理模块。故障定位模块通过对系统API数据调用来判断网络上故障出现的位置, 故障类型判断包括网卡禁用故障判断、网线拨出故障判断、拨号程序故障判断、DNS故障判 断。具体实施时,可在服务器中安装远程维护服务器端软件,用于相应远程服务请求; 服务器和网关相连接,网关保障合法授权的用户安全的链接到服务器上;在用户的客户端 安装维护虚拟机,其用于提供一个纯净的故障检测环境。用户既可以通过启用维护虚拟机 来恢复配置操作系统,也可以通过启用维护虚拟机排除或定位故障,还可以通过启动维护 虚拟机请求远程工程师的远程服务。启动维护虚拟机后,可以根据维护虚拟机的故障排除向导,首先将终端PC由于系 统和配置问题造成的上网故障自动排除。只要物理网络连通,如果用户还可以通过虚拟机 的远程维护呼叫,请求远程维护中心的维护工程师帮助自己恢复系统和系统配置。
在物理网络不通的情况下,通过安装在客户终端的虚拟机可以通过对系统API数 据调用来判断网络上故障出现的位置。故障类型判断可以是网卡禁用故障、网线拨出故障、 拨号程序故障、DNS故障等等,这样维护工作可以有的放矢。在维护虚拟机和远程维护工程师的帮助下,可以做到对宽带用户维护需求的快速 响应,维护成本非常低廉。如图1远程维护的连网示意图,本发明在远程维护服务器(Server)端连接网关, 通过网关再连接宽带用户客户端(Uers)。宽带客户端安装有维护虚拟机,用户在进行故障 恢复中首先启动维护虚拟机进行自我故障定位和排除。再无法自我修复的情况下还可以通 过远程维护服务器连接远程维护端,让远程维护工程师进行远程服务。在服务器端安装有 远程维护程序的服务器版,其负责响应远程宽带用户的远程服务请求。连接成功时,维护工 程师可以对远程客户端形成一对一的服务关系,通过网络传输控制口令恢复宽带用户的系 统以及配置。虚拟机网关可以采用市场上成熟的维纳斯网关设备,维纳斯网关设备作用之一是 维纳斯虚拟网络和非维纳斯虚拟网络之间的网关设备;另一个是需要保护的服务器和外界 的网关设备。维纳斯网关可以防止非法用户的入侵,只有合法的具有维纳斯身份证的客户 端的访问才能进入被网关保护的网络或服务器。如图3为用户维护流程示意图,其描述了用户在不能上网的时候进行启动维护虚 拟机进行排除故障的过程。如图4为虚拟机的虚拟机监控器器VMM (虚拟机监控器)的整体实现模型,本发明 的基本思想就是通过虚拟机永远保留了一个用于上网的干净的环境。虚拟机控制器是整个 维护虚拟机的核心,对其的设计遵循了如下原则1.技术先进。尽量采用x86平台提供的对系统虚拟机的最新支撑技术。2.尽量简洁。只作必要工作,舍弃不实用功能,放弃对过时硬件的支持。3.易于实现。采用整体内核结构,借鉴已有的开源操作系统的实现技术。4.兼顾效率。如能确保虚拟化开销小于20%,不过多考虑效率问题。5.可扩展性。系统具有良好的结构,可以方便增加对设备的支持,可以有效地支持 更多数量的处理器核。对于基于Hypervisor模型的VMM来说,对各种I/O设备的支持是不可回避的问 题。一款新型的虚拟机监控器必须有丰富的设备驱动支持支持才能获得广泛认同,而它在 获得广泛认同之前往往又难以得到丰富的驱动程序支持,这是任何新型虚拟机监控器不得 不面对的矛盾和挑战。对I/O设备的支持促使VMM采用功能非对称式结构。VMM的其余部分以SMP (Symmetric Multi Processing,对称多处理系统)方式运 行于各个AP (Application Processor,应用处理器)处理器之上,这些部分以整体内核方 式实现,具体包括虚拟机管理(核态)、内存管理、本地中断/异常管理、本地虚拟设备、远 端虚拟设备、管理接口等6类模块。如图5为I/O虚拟化框架,以及图6输入时虚拟机与I/O处理机间的交互和图7 输出时虚拟机与I/O处理机间的交互,描述了 I/O虚拟化的思路和方法。x86平台中的外设通过各种接口芯片接入计算机,而处理器利用I/O指令或 MMIO(Memory Mapped 1/0)方式访问外设。
若按复杂程度划分,外设既有比较简单的,如中断控制器、时钟控制器等,又有十 分复杂的如网卡、磁盘等,并且有些I/O设备还需要许多高层的逻辑驱动程序来支撑,如 TCP/IP协议、文件系统等。若按使用方式划分,外设既有独占访问的,如中断控制器、时钟控制器等,又有可 分时共享的,如网络适配器,还有可划分共享的,如磁盘。为了避免VM(虚拟机)直接访问硬件,VMM截获必须来自VM的I/O指令或匪IO操 作。由于所有的外设中断都被定向到了 I/O处理机,因此VMM必须能够向VM中注入中断。 这些要求可以利用硬件虚拟化提供的能力来保证,例如,VT-x为I/O虚拟化提供了全面的 支持,包括VMM可利用I/O端口位图捕获VM对指定I/O端口的读写操作;VMM可利用缺页 异常退出机制来捕获VM的匪IO操作;VMM可利用中断退出机制来获得对外部中断的控制 权,并可在VM输入时向VM注入虚拟的中断事件。I/O处理机的主要目的是利用操作系统中丰富的设备驱动程序以及QEMU中丰富 的虚拟设备来实现设备虚拟化。PC机的外部设备多种多样,为它们重新编写硬件驱动程序是一种重复劳动,其工 作量也十分庞大,因此需要借用已有操作系统对外设的支持,可以选择的操作系统很多,如 Windows, Linux、OS/2、BSD等,考虑到开发团队对Linux比较熟悉,故我们采用Linux作为 I/O处理机的操作系统。PC机的外设中许多都是独占的,因此每个虚拟机都需要各自的一套虚拟外设, 对设备的虚拟化需要使用软件来模拟外部设备的内部状态和工作方式,其工作量也十分 庞大,因此我们可以利用已有的开源虚拟化软件的支持,可以选择的这类软件也较多,如 QEMU、Bochs等,考虑到开发团队对QEMU比较熟悉,故我们借用QEMU对虚拟外设的支持能 力,当然还需要对QEMU进行一定的修改。每个虚拟机在I/O处理机上有一个QEMU进程与 之对应。虚拟机之间利用共享内存和IPI机制进行通信。共享内存可以采用环状的数据结 构,这样可以避免使用锁,提高了通信效率。当共享内存区域满时,QEMU将在共享内存上等 待,当VMM从共享内存中取走数据时,共享内存由满的状态变为有空闲空间状态,此时应该 由VMM通过IPI告知OS来唤醒QEMU。假设虚拟机VM配置了一个以物理串口为媒质的虚拟串口,那么以串口输入为例, 虚拟机与I/O处理机之间的交互过程①.物理串口上的输入到来,OS接受到中断,调用相关驱动程序,并唤醒QEMU。②.QEMU将串口输入记录到描述虚拟串口设备状态的相关结构中,同时将输入的 拷贝放到共享内存中。③.QEMU以IPI的方式向VMM注册一个中断。④.当VM被调度时,VMM将中断注入到VM中。⑤.VM中的客户操作系统处理该中断,之后发出读I/O请求。⑥.VMM截获该请求,并通知QEMU执行对虚拟设备的读请求,以便QEMU将输入数 据从虚拟设备中删除。⑦.VMM将输入数据从共享内存取走并送VM。以串口输出为例,虚拟机与I/O处理机之间的交互过程
6
①.VM发出写I/O请求,该请求被VMM截获。②.VMM将写输入拷贝到共享内存中。③.VMM向OS发出IPI,通知输出操作到来。④.OS通知QEMU输出操作到来,QEMU从共享内存取走输出数据。⑤.QEMU执行写操作。⑥.QEMU以IPI的方式向VMM注册一个中断,通告输出操作完成。当VM被调度时,VMM将中断注入到VM中。每个虚拟机具有一套静态配置信息,主要保存虚拟机的虚拟设备情况,包括虚拟 机的VCPU型号、内存大小、各种外设型号、BIOS映像文件及位置、磁盘映像文件及位置、状 态快照映像及位置、安全策略、以及其它一些基本信息。这些信息均保存在管理机上。当虚拟机启动之后,还需要为其维护一套动态管理信息,称为VMCB(VMContrc)I Block),该控制结构类似于传统操作系统中的进程控制块PCB (ProcessControl Block),负 责管理虚拟机所使用的资源。VMCB中维护着以下几类信息1.基本信息标识、页面分配及使用信息、组织相关信息、通信相关信息、I/O信 息、状态及标志信息、时间信息、各种锁。2.平台相关信息分页模式、客户机的物理地址宽度、内存布局信息、虚拟 IRQ(Interrupt ReQuest,中断请求)、虚拟 IO-APIC (接 口驱动)、VGA 信息。3.转换相关信息客户物理地址到机器地址的转换信息、IOMMU相关操作、EPT(扩 展页表)相关操作。4. VCPU(虚拟处理器)相关信息标记、事件标记、时间信息、组织信息、时钟信息、 运行状态、客户机上下文相关寄存器、页表缓存、I/O端口访问控制、页表操作、控制寄存器、 虚拟LAPIC(中断控制器)、I/O请求状态、虚拟I/O地址到物理I/O地址转换、仿真FPU/ MMX/XMM(浮点数处理器/多媒体扩展指令/浮点数据寄存器)、VMCS (虚拟机控制结构)、 VMCS状态、相关MSR (专用存储器)。5.调度信息。如图8是本发明服务器与终端用户之间的通信消息发送流程图,描述了远程客户 终端用户向维护服务器建立维护通信的过程。以上所述仅为本发明的一些功能模块而已,并不用于限制本发明,对于本领域的 技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何 修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
基于虚拟机技术的远程维护系统,其特征在于包括客户端、远程维护服务器、远程维护端,客户端通过虚拟机网关与远程维护服务器连接,远程维护端与远程维护服务器连接,客户端设有用于提供纯净的故障检测环境的维护虚拟机,所述的维护虚拟机包括虚拟化模块、自动恢复模块、故障排除模块、故障定位模块、管理模块和远程维护服务模块;所述的客户端系统运行时存在两种状态维护虚拟机和工作虚拟机,维护虚拟机是用来分析问题,请求维护的系统状态,工作虚拟机是提供工作环境的系统状态;远程维护系统工作流程为(1)当在工作虚拟机下出现系统异常,进入维护虚拟机;(2)判断是否存在系统或配置错误,判断结果为“是”时,则启动自动恢复模块,对系统或配置错误进行恢复维护;(3)上一步判断结果为“否”时,则继续判断是否存在网络链路不畅通,判断结果为“是”时,启动故障排除模块或故障定位模块,进行排除故障或者排除故障失败后定位出故障位置;(4)上一步判断结果为“否”时,确定通信网络物理层畅通,可启动远程维护服务模块,请求远程维护服务器建立远程连接;(5)判断远程连接是否成功,判断结果为“否”时,则转到提示更换故障硬件;(6)上一步判断结果为“是”时,远程维护服务器分配远程维护端与客户端建立连接,远程维护端对客户端进行远程维护排除故障。
2.根据权利要求1所述的基于虚拟机技术的远程维护系统,其特征在于所述的维护 虚拟机的管理模块包括中断/异常管理模块、内存管理模块、I/O管理模块、虚拟机管理模 块。
3.根据权利要求1或2所述的基于虚拟机技术的远程维护系统,其特征在于所述的 故障定位模块通过对系统API数据调用来判断网络上故障出现的位置,故障类型判断包括 网卡禁用故障判断、网线拨出故障判断、拨号程序故障判断、DNS故障判断。
全文摘要
基于虚拟机技术的远程维护系统,用来协助用户解决操作系统和软件产生的问题,以及帮助用户发现硬件或者网络出现的问题。该系统包括客户端、远程维护服务器、远程维护端、网关,客户端包括虚拟化模块、自动恢复模块、故障排除模块、故障定位模块、管理模块和远程维护服务模块。客户端系统运行时存在两种状态维护虚拟机和工作虚拟机,维护虚拟机是用来分析问题,请求维护的系统状态,工作虚拟机是提供工作环境的系统状态。远程维护系统工作流程为当在工作虚拟机下出现系统异常,进入维护虚拟机,维护系统判断工作虚拟机中是否存在系统或配置错误,如果不能发现问题,则启动远程维护服务模块,由远程维护人员为客户端提供远程维护服务。
文档编号H04L12/24GK101917460SQ20101023366
公开日2010年12月15日 申请日期2010年7月22日 优先权日2010年7月22日
发明者黄玉琪 申请人:河南远为网络信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1