专利名称:一种连续监听VMWare事件的方法和装置的制作方法
技术领域:
本发明涉及网络技术,具体地讲是一种连续监听VMWare事件的方法和装置。
背景技术:
云计算的一个重要技术实现是虚拟化,即把计算资源、存储资源和网络资源虚拟化。计算资源虚拟化,是指云计算提供的服务不是固定的基于某台具体的物理服务器,而是动态的基于一台或多台服务器提供的服务;存储资源虚拟化,是指云计算使用的存储空间基于任意的存储设备;网络资源虚拟化,是指网络配置是动态的,随云计算提供的服务动态配置。在网络资源虚拟化中,云计算提供的服务都是通过虚拟机(virtual machine)完 成的。网络资源的动态配置必须实时跟踪虚拟机的网络接入交换机(网络接入位置),并在网络接入交换机上下发网络配置,比如带宽保证、安全限制等,确保云计算给外部提供的服务能够连续运行,不被中断。如图I所示,虚拟主机2由物理服务器I迁移到物理服务器2时,其对应的网络配置也必须从物理交换机I迁移到物理交换机2。对于不支持IEEE802. Iqbg标准的网络环境,要实现上述网络配置迁移必须实时跟踪虚拟机的迁移情况及增加、删除情况等,这就要求应用程序必须连续不间断的接收虚拟网络的相关事件,从而确定虚拟机是否发生创建、删除或迁移等。对于VMWare虚拟网络而言,就是要监听vCenter/ESX发送的VMWare事件,其中,VMWare事件具体是指VMWare公司的vCenter (VMWare公司对虚拟机化产品进行集中管理的软件)、ESX (VMWare公司负责将物理服务器虚拟化的软件系统,负责仿真实现虚拟交换机和虚拟机)产品产生的事件,包括用户登录/注销事件、虚拟机创建/修改/删除事件、虚拟交换机创建/修改/删除事件等;VMWare事件监听的原理如图2所示。在图2 中,NMS (Network Management System,网管系统软件)调用 VMWare 公司对外提供的接口和vCenter/ESX建立TCP/IP连接,当有新的VMWare事件产生时,vCenter/ESX通过TCP/IP连接,将VMWare事件发送给匪S,各VMWare事件中有字段表示事件类型和事件包含的变量。由于VMWare提供的上述TCP/IP连接实际上是一个https (HypertextTransfer Protocol over Secure Socket Layer)连接。https 目前处理的机制是,如果连接较长时间没有报文收发,将会自动断开远程连接。一旦https连接断开,将导致VMWare事件无法监听,当然,在此期间如果虚拟机发生创建、删除或迁移,匪S是感知不到的,从而使得网络配置也无法同步执行。对于任意应用程序而言,需要尽量避免自身和VMWare vCenter/ESX之间的TCP/IP连接因为各种原因中断的情况;同时,一旦发生异常中断,应用程序必须能够及时感知到,并采取措施进行弥补。应用程序除了通过建立TCP/IP连接常连接的方式监听VMWare事件外,还会通过主动轮询vCenter/ESX获取VMWare事件,且轮询间隔足够小(比如I分钟),当TCP/IP连接因各种原因中断时,应用程序(只接收并处理VMWare事件的程序,比如网管系统软件)可以通过上述轮询过程感知到TCP/IP连接中断,并重新建立一条TCP/IP连接监听VMWare事件。上述过程在正常情况下可以实时监听VMWare事件;当网络出现异常时,能够感知网络异常事件,并重新建立VMWare事件监听通道,确保所有的VMWare事件都不会丢失。但是该方案的缺陷在于,应用程序轮询间隔太低,会加大应用程序和vCenter/ESX的处理负担,当vCenter/ESX组成的虚拟网络非常大,将导致应用程序和vCenter/ESX处于非常繁忙的状态。即使应用程序轮询间隔足够小,当网络出现异常时应用程序无法感知VMWare事件。应用程序只有一次轮询以后才能感知,有可能导致一个轮询周期的时延。
发明内容
本发明的目的在于提供一种连续监听VMWare事件的方法和装置,通过本发明,可以实现对VMWare事件的连续实时监听,减小应用程序和vCenter的轮询负担。
图I所示为虚拟机迁移示意图;图2所示为已有技术监听VMWare事件示意图。图3所示为本发明连续监听VMWare事件的方法流程示意图;图4所示所示本发明提供的连续监听VMWare事件的装置结构示意图。
具体实施例方式本发明利用VMWare登录事件实现VMWare事件的连续监听。在登录vCenter/ESX时,vCenter/ESX都会产生一个用户登录事件。如果这个事件能够频繁发生,通过监听用户登录事件,以避免监听VMWare事件的TCP/IP连接发生超时中断。本发明中,应用程序和vCenter/ESX建立TCP/IP连接监听VMWare事件,并记录TCP/IP连接最后一次收到VMWare事件的时间。应用程序按照小于HTTPs连接老化周期的第一时间周期(譬如,20秒),登录vCenter/ESX,以触发用户登录事件。应用程序按照第二时间周期,计算TCP/IP连接最后一次收到VMWare事件时间与当前时间的时间差,如果时间差小于等于第一时间周期,则TCP/IP连接正常;如果时间差大于第一时间周期,则认为TCP/IP连接异常。应用程序中断TCP/IP连接,并与vCenter/ESX建立新TCP/IP连接以监听VMWare事件。建立TCP/IP连接过程可以通过第三方协议栈(如gSOAP协议栈)来实现,应用程序可通过协议栈的返回值确定TCP/IP连接建立是否成功。如果TCP/IP连接建立失败,在下一个周期内继续尝试建立TCP/IP连接;如果TCP/IP连接建立成功,从vCenter/ESX读取记录的TCP/IP连接最后一次收到VMWare事件的时间与当前时间内所有VMWare事件,避免VMWare事件丢失。本实施例的有益效果在于,通过周期性登录vCenter/ESX产生用户登录事件,并将用户登录事件通过TCP/IP连接发送给应用程序。由于vCenter/ESX向应用程序发送的用户登录事件比较频繁,因此监听VMWare事件的TCP/IP连接不会出现https超时中断。本发明的有益效果还在于,应用程序所在服务器所属网络发生故障而TCP/IP连接中断,本申请这种情况能够马上感知,并进行修复过程即重新设置TCP/IP连接以监听VMWare事件,如果设置成功,从vCenter/ESX读取TCP/IP连接最后一次收到VMWare事件的时间到当前时间范围内的所有VMWare事件,避免VMWare事件丢失。如图4所示,本发明还提供了一种VMWare事件监听装置,该装置包括监听单元401,通过应用程序与vCenter/ESX建立TCP/IP连接,监听VMWare事件,记录所述TCP/IP连接最后一次收到VMWare事件的时间。计算单元402,通过应用程序,按照小于HTTPs连接老化周期的第一时间周期,周期性登录vCenter/ESX,触发用户登录事件;按照小于第一时间周期的第二时间周期,周期性计算所述TCP/IP连接最后一次收到VMWare事件的时间与当前时间的时间差。控制单元402,通过应用程序确定所述时间差小于所述第一时间周期,则所述TCP/IP连接正常,无需断开所述TCP/IP连接;通过应用程序确定所述时间差大于所述第一时间周期,则中断所述TCP/IP连接。
控制单元403,通过应用程序与所述vCenter/ESX建立新TCP/IP连接监听VMWare事件;通过应用程序确定所述新TCP/IP连接成功,从所述vCenter/ESX读取所述TCP/IP连接最后一次收到VMWare事件的时间到当前时间内所有VMWare事件。以某具体应用场景下的实例说明本发明的实施过程,假设应用程序启动的任务A的轮询周期是20秒,TCP/IP连接最后一次收到VMWare事件的时间是2012/2/2710:49:00,当前时间是2012/2/27 10:49:15,时间差等于15秒且小于20秒,因此应用程序确定TCP/IP连接正常;任务B运行一段时间后,当前时间是2012/2/27 10:49:22秒,由于当前时间与TCP/IP连接接收VMWare事件的最新时间的时间差为22秒且大于20秒,应用程序中断TCP/IP连接并建立新TCP/IP连接,然后从vCenter/ESX读取[2012/2/2710:49:00, 2012/2/27 10:49:22]期间的所有 VMWare 事件,防止 VMWare 事件丢失。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种连续监听VMWare事件的方法,其特征在于,所述方法包括 通过应用程序与vCenter/ESX建立TCP/IP连接监听VMWare事件; 通过应用程序记录所述TCP/IP连接最后一次收到VMWare事件的时间; 通过应用程序按照第一时间周期,登录vCenter/ESX,触发用户登录事件;其中,所述第一时间周期小于HTTPs连接老化周期; 通过应用程序按照第二时间周期,周期性计算记录的所述TCP/IP连接最后一次收到VMWare事件的时间与当前时间的时间差,其中所述第二时间周期小于所述第一时间周期;通过应用程序确定所述时间差小于所述第一时间周期,则所述TCP/IP连接正常。
2.根据权利要求I所述的方法,其特征在于,所述方法还进一步包括 通过应用程序确定所述时间差大于所述第一时间周期,则中断所述TCP/IP连接; 通过应用程序与所述vCenter/ESX建立新TCP/IP连接监听VMWARE事件。
3.根据权利要求2所述的方法,其特征在于, 通过应用程序确定所述新TCP/IP连接成功,从所述vCenter/ESX读取所述TCP/IP连接最后一次收到VMWare事件的时间到当前时间内所有VMWare事件。
4.一种连续监听VMWare事件的装置,其特征在于,所述装置包括 监听单元,通过应用程序与vCenter/ESX建立TCP/IP连接,监听VMWare事件,记录所述TCP/IP连接最后一次收到VMWare事件的时间; 计算单元,通过应用程序,按照第一时间周期,周期性登录vCenter/ESX,触发用户登录事件;按照第二时间周期,周期性计算所述TCP/IP连接最后一次收到VMWare事件的时间与当前时间的时间差;其中,所述第一时间周期小于HTTPs连接老化周期,且所述第二时间周期小于所述第一时间周期; 控制单元,通过应用程序确定所述时间差小于所述第一时间周期,则所述TCP/IP连接正常。
5.根据权利要求4所述的装置,其特征在于, 控制单元,通过应用程序确定所述时间差大于所述第一时间周期,则中断所述TCP/IP连接; 所述监听单元,通过应用程序与所述vCenter/ESX建立新TCP/IP连接监听VMWare事件。
6.根据权利要求5所述的装置,其特征在于, 所述监听单元,通过应用程序确定所述新TCP/IP连接成功,从所述vCenter/ESX读取所述TCP/IP连接最后一次收到VMWare事件的时间到当前时间内所有VMWare事件。
全文摘要
本发明提供了一种连续VMWare事件监听方法及装置,其中该方法包括通过应用程序与vCenter/ESX建立TCP/IP连接监听VMWare事件;通过应用程序记录TCP/IP连接最后一次收到VMWare事件的时间;通过应用程序按照第一时间周期,登录vCenter/ESX,触发用户登录事件;通过应用程序按照第二时间周期,周期性计算TCP/IP连接最后一次收到VMWare事件的时间与当前时间的时间差,其中第二时间周期小于第一时间周期;通过应用程序确定时间差小于第一时间周期,则TCP/IP连接正常。由于vCenter/ESX向应用程序发送的用户登录事件比较频繁,因此监听VMWare事件的TCP/IP连接不会出现https超时中断。
文档编号H04L29/08GK102801579SQ20121022800
公开日2012年11月28日 申请日期2012年6月29日 优先权日2012年6月29日
发明者曾勇刚, 郭勇, 田瑞利 申请人:杭州华三通信技术有限公司