数据通信装置及保持数据通信装置高可用性的方法

文档序号:7661074阅读:104来源:国知局
专利名称:数据通信装置及保持数据通信装置高可用性的方法
技术领域
本发明涉及一种数据通信装置,特别是涉及一种采用虚拟技术的高 可用性数据通信装置及保持数据通信装置高可用性的方法。
背景技术
在网络中的数据通信装置,例如防火墙和虚拟个人网络(VPN)装 置通常通过一个输入端口接收一个数据流,然后根据预定规则处理所述数 据流并将所述处理后的数据流送出给多个用户。保持高可用性对这些装置 非常重要, 一旦发生运行错误,必须立即启动一个备份装置用来继续处理 所述数据流,以使数据通信不被中断。因此,从工作装置切换到备份装置 需要执行一个链接切换。
对这些数据通信装置来说,大多数问题是由软件引起的,例如核心 惊恐或全CPU占用等,而非由硬件引起的。然而,用户仍然必须购买另 外一个硬件备份装置,用于当正在运行的装置变得过载或不可用时,紧急 替换所述正在运行的装置,以确保系统的高可用性和稳定性。另一方面, 现代硬件的能力已足够满足大部分软件的需要,因此硬件能力经常因为没 有被充分利用而被浪费掉。
因此,在现有的防火墙或虚拟个人网络(VPN)等装置的备份方法 中,因为需要额外购买一个硬件备份装置,费用较高,并且维护比较麻烦。
为了解决上述问题,有必要提供一种通过一个软件解决方案,不需 要额外购买一个硬件即可保持这些数据通信装置高可用性的方法。

发明内容
本发明要解决的技术问题在于提供一种在不需要额外增加硬件设备 下,能够保持高可用性的数据通信装置,其可在多个虚拟机之间执行切换,
以使其中一个运行中的虚拟机出现软件故障问题时,能切换到另一个虚拟 机上继续运行;不影响其它虚拟机。
本发明要解决的技术问题在于,提供一种可以保持高可用性的数据 通信方法,其通过在多个虚拟机之间执行切换,以使其中一个虚拟机出现
的软件问题,能切换到另一个虚拟机上继续运行;不影响其它虚拟机。
为实现上述目的,本发明提供一种用于处理数据流的数据通信装置, 包括实体硬件、至少两个虚拟机以及一运行在所述实体硬件上的虚拟机 监视器。所述至少两个虚拟机的其中一个为运行虚拟机,用于处理所述数 据流,另外一个虚拟机为备份虚拟机。所述虚拟机监视器与所述至少两个 虚拟机通信,并能够监视所述运行虚拟机,当所述运行虚拟机不能运行时 或过载时切换到所述备份虚拟机。
本发明还提供一种保持数据通信装置高可用性的方法,包括以下步 骤在所述数据通信装置上运行至少两个虚拟机,其中一个为第一虚拟 机,另外一个为第二虚拟机;转送一个数据流给所述第一虚拟机;在第一 虚拟机上处理所述数据流;以及当第一虚拟机不能运行时或过载时切换到 所述第二虚拟机。
与现有技术相比,本发明的数据通信装置和保持数据通信装置高可 用性的方法基于同一硬件设备环境下,虚拟出至少两个独立运行的虚拟 机,通过在多个虚拟机之间执行切换,当其中一个运行虚拟机出现的软件 问题时,切换到备份虚拟机中继续处理数据流,从而使数据流的处理不被 中断,实现无缝切换,保持了数据通信装置的高可用性,并且使得用户购 置设备的成本投入降低,维护简单。


本发明的其它特性和优点将在以下详细描述并结合图示的说明将更 为明显,其中
图1是本发明所述数据通信装置的一个实施例之结构框图。 图2是本发明所述数据通信装置的另一个实施例之结构框图。图3是本发明所述保持数据通信装置高可用性方法的流程图。
具体实施例方式
虚拟机系统是指在一个实体的机器上同时运作一个或多个虚拟机的 系统,通过一种叫做虚拟机监视器(VMM)或系统管理程序(hypervisor) 来实现虚拟管理,每一个虚拟机是一种通过硬件平台来实现的逻辑实体。 每一个虚拟机都能够独立于其它虚拟机运行在一个复制的操作系统上,多 个虚拟机使用同样的硬件资源,因此虚拟技术能够充分有效的使用系统的 硬件资源。
请参见图1所示,图1是本发明一个实施例的数据通信装置200的 结构框图。该数据通信装置200可以是一个防火墙(firewall)或虚拟个 人网络(VPN)等装置,数据通信装置200包括实体硬件100、虚拟机监 视器102、第一虚拟机201和第二虚拟机202,所述两个虚拟机201、 202 中的一个用于在某一时刻进行数据处理,因此被定义为运行虚拟机,另外 一个虚拟机则被定义为备份虚拟机。实体硬件IOO包括多种硬件,例如中 央处理单元(CPU)、存储单元、网络硬件、输入/输出硬件和其它硬件等。 虚拟机监视器102运行在实体硬件IOO上,用于管理和监视一个或多个虚 拟机。每一个虚拟机可以被看作是一个完整的系统,包括虚拟硬件106 和运行在该虚拟硬件106上的操作系统108。操作系统108包括一个操作 系统核心IIO和应用软件112,操作系统核心110能够访问和操作所述虚 拟硬件106,并运行多个应用软件112来执行某些任务,就像一个操作系 统直接运行在一个实体机器上一样。然而,所述虚拟硬件106是虚拟的, 可以通过虚拟机监视器102提供,虚拟硬件106可以包括一组与实体硬件 IOO相同的硬件,也可以包括一组不同于实体硬件100的硬件。
虚拟机监视器102包括切换控制单元206和驱动单元208,驱动单元 208用于驱动实体硬件100。第一虚拟机201和第二虚拟机202与所述虚 拟机监视器102通信,虚拟机201、 202中的每一个均包括一个高可用性 模块204,该高可用性模块204位于操作系统核心110内。备份虚拟机中 的高可用性模块204通过虚拟机监视器102能够获得运行虚拟机中的信 息,因此备份虚拟机能够监视运行虚拟机以检测运行虚拟机的可用性。当
通过备份虚拟机检测到运行虚拟机运行错误时,备份虚拟机中的高可用性
模块204可以通知虚拟机监视器102所述运行虚拟机的运行错误,并执行 一个链接切换。
虚拟机监视器102中的所述切换控制单元206用于执行上述链接切 换。通过虚拟机监视器102,备份虚拟机中的高可用性模块204能够接收 来自运行虚拟机的参数并将这些参数进行实时备份。另外,运行虚拟机的 运行错误也可通过虚拟机监视器102而被检测到。
在操作中,数据通信装置200通过实体硬件100的输入/输出接口(图 中未示出)接收一个来自网络或其它装置的数据流,切换控制单元206 转送所述数据流给第一虚拟机201,第一虚拟机201通过运行在操作系统 108内的应用软件112对该数据流进行数据处理,此时第二虚拟机202被 认为是一个备份虚拟机,第二虚拟机202中的高可用性模块204能够获得 第一虚拟机201中的参数,例如路由信息、会话信息以及日志信息等,并 对这些参数进行实时备份。在这种情况下,第一虚拟机201为运行虚拟机, 第二虚拟机202位备份虚拟机。此时,第一虚拟机201的状态被虚拟机监 视器102或第二虚拟机202中的高可用性模块204监视,或者被二者同时 监视。本领域技术人员知道有各种方法可以监视第一虚拟机201的可用 性,其中之一的方法就是采用心跳探测装置来监视,根据本方法,第一虚 拟机201以一预定频率产生心跳信号,如果虚拟机监视器102或第二虚拟 机202能够一直检测到该心跳信号,则表明第一虚拟机201是正常运行。
一旦所述心跳信号不能够被检测到,则表明第一虚拟机201可能处 于不可用状态、过载状态或出现一个软件死循环等故障。此时,切换控制 单元206执行一个链接切换,即停止转送数据流给第一虚拟机201,而将 所述数据流转送给第二虚拟机202。如果需要,第一虚拟机201将通过虚 拟机监视器102被重新启动,从而使第一虚拟机201重新能够工作。上述 数据流在第二虚拟机202被继续处理,而此时第二虚拟机202则又被第一 虚拟机201和/或虚拟机监视器102监视,因此第一虚拟机201和第二虚 拟机202互相交换了角色,这时第一虚拟机201变成了备份虚拟机,第二 虚拟机202变成了运行虚拟机。由于第二虚拟机202中备份了来自第一虚
拟机201的参数,因此第二虚拟机202可以继续执行第一虚拟机201未完 成的任务,而不用重新开始执行任务。因此本发明在出现故障时,数据通 信兵不会被中断,用户几乎没有察觉的情况下,就执行了链接切换,从而 实现了无缝切换。
图2所示是本发明另一个实施例的数据通信装置200'的结构框图, 图2所示的数据通信装置200,与图1所示的数据通信装置200结构类似; 其区别仅在于图l所示的数据通信装置200中的虚拟机监视器102直接 运行在实体硬件100上,而在图2所示的数据通信装置200'中,提供了一 个运行在实体硬件100上的主操作系统114,所述虚拟机监视器102和虚 拟机201、 202运行在主操作系统114内,其具体运作原理与图1所示的 实施例类似,故不再赘述。
图3所示是保持数据通信装置200高可用性方法的流程图。
开始时,在步骤400,在所述数据通信装置200的实体硬件100上运 行第一虚拟机201、第二虚拟机202和虚拟机监视器102;
在步骤402,虚拟机监视器102转送数据通信装置200接收到的数据 流给第一虚拟机201;
在步骤404,在第一虚拟机201上处理所述数据流;
在步骤406,通过第二虚拟机202和/或虚拟机监视器102监视第一 虚拟机201,并将第一虚拟机201中的参数实时备份到第二虚拟机202中。
接下来,在步骤408,判断是否检测到第一虚拟机201运行错误,如 果没有检测到第一虚拟机201的运行错误,则返回到步骤402,继续转送 数据流给第一虚拟机201;
如果检测到第一虚拟机201的运行错误,则执行步骤410,即停止转 送数据流给第一虚拟机201;
在步骤412,停止在第一虚拟机201上处理所述数据流;在步骤414, 虚拟机监视器102转送所述数据流给第二虚拟机202;
在步骤416,在第二虚拟机202上处理所述数据流。
然后,在步骤418,虚拟机监视器102确认第一虚拟机201的状态并 判断其是否要重新启动,如果需要,则在步骤420,重新启动第一虚拟机
201;
在步骤422,第一虚拟机201和第二虚拟机202的角色互相交换,即 第一虚拟机201由运行虚拟机变成了备份虚拟机,而第二虚拟机202则由 备份虚拟机变成了运行虚拟机。
在本发明的上述实施例中,数据通信装置包括两个虚拟机,本领域 技术人员知道基于类似的原理,根据实际需要,本发明也可包括两个以上 的虚拟机,其中一个或多个为运行虚拟机,另外一个或多个虚拟机则为备 份虚拟机。另外,第一虚拟机和第二虚拟机的操作系统可以相同,也可以 不相同。
最后所应说明的是以上实施例仅用以说明本发明而非限制,尽管 参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理 解,可以在不脱离本发明的精神和范围内,对本发明进行修改或者等同替 换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1. 一种用于处理数据流的数据通信装置,其特征在于,所述数据通信装置包括实体硬件;两个虚拟机,其中一个为运行虚拟机,用于处理所述数据流,另外一个虚拟机为备份虚拟机;以及一虚拟机监视器,运行在所述实体硬件上,与所述至少两个虚拟机通信,并能够监视所述运行虚拟机,当所述运行虚拟机不能运行时或过载时切换到所述备份虚拟机。
2. 根据权利要求1所述的数据通信装置,其特征在于,所述每一个虚 拟机包括虚拟硬件和运行在该虚拟硬件上的操作系统,操作系统包括一个操 作系统核心和应用软件。
3. 根据权利要求2所述的数据通信装置,其特征在于,所述每一个虚 拟机包括一个与所述虚拟机监视器通信的高可用性模块,该高可用性模块位 于所述操作系统核心内,且备份虚拟机中的高可用性模块可以获得运行虚拟 机的信息。
4. 根据权利要求3所述的数据通信装置,其特征在于,所述虚拟机监 视器包括一个切换控制单元,该切换控制单元能够转送所述数据流给运行虚 拟机,该切换控制单元还能够转送所述数据流给备份虚拟机,并且当所述运 行虚拟机不能运行时或过载时,停止转送所述数据流给运行虚拟机。
5. 根据权利要求4所述的数据通信装置,其特征在于,所述备份虚拟 机执行来自运行虚拟机中的参数备份。
6. 根据权利要求3所述的数据通信装置,其特征在于,所述运行虚拟 机的状态也可被备份虚拟机中的高可用性模块监视,或者被虚拟机监视器和 备份虚拟机中的高可用性模块同时监视。
7. 根据权利要求6所述的数据通信装置,其特征在于,所述监视运行 虚拟机的状态采用心跳探测装置。
8. 根据权利要求1所述的数据通信装置,其特征在于,所述数据通信 装置还包括一个运行在所述数据通信装置上的主操作系统,其中所述虚拟机 监视器和至少两个虚拟机均在主操作系统内运行。
9. 根据权利要求1所述的数据通信装置,其特征在于,所述数据通信装置为一个防火墙或虚拟个人网络装置。
10. —种保持数据通信装置高可用性的方法,其特征在于,所述方法包括以下步骤在所述数据通信装置上运行至少两个虚拟机,其中一个为第一虚拟机, 另外一个为第二虚拟机;转送一个数据流给所述第一虚拟机; 在第一虚拟机上处理所述数据流; 在所述数据通信装置上运行一个虚拟机监视器; 利用所述虚拟机监视器监视所述第一和第二虚拟机;以及 当第一虚拟机不能运行时或过载时,切换到所述第二虚拟机。
11. 根据权利要求10所述的方法,其特征在于,所述切换到第二虚拟 机的步骤包括停止转送所述数据流到所述第一虚拟机; 停止在第一虚拟机上处理所述数据流; 转送所述数据流到第二虚拟机;以及 在在第二虚拟机上处理所述数据流。
12. 根据权利要求10所述的方法,其特征在于,所述方法还包括以下步骤 利用所述第二虚拟机监视所述第一虚拟机。
13. 根据权利要求11所述的方法,其特征在于,所述方法还包括以下步骤传送第一虚拟机的参数到第二虚拟机;以及 在第二虚拟机上备份所述参数。
14. 根据权利要求11所述的方法,其特征在于,所述切换到第二虚拟 机的步骤还包括在切换到所述第二虚拟机后重新启动所述第一虚拟机。
15. 根据权利要求10或12所述的方法,其特征在于,所述监视第一虚 拟机步骤还包括采用心跳探测装置来监视第一虚拟机的状态。
16. 根据权利要求10所述的方法,其特征在于,所述方法还包括以下步骤在所述数据通信装置上运行一个主操作系统,其中所述虚拟机监 视器、第一和第二虚拟机均在所述主操作系统内运行。
17. 根据权利要求IO所述的方法,其特征在于,所述数据通信装置为 一个防火墙或虚拟个人网络装置。
全文摘要
本发明公开一种用于处理数据流的数据通信装置,包括实体硬件、至少两个虚拟机以及一运行在所述实体硬件上的虚拟机监视器。所述至少两个虚拟机的其中一个为运行虚拟机,用于处理所述数据流,另外一个虚拟机为备份虚拟机。所述虚拟机监视器与所述至少两个虚拟机通信,并能够监视所述运行虚拟机,当所述运行虚拟机不能运行时或过载时切换到所述备份虚拟机。本发明还公开一种保持数据通信装置高可用性的方法。采用本发明公开的数据通信装置和保持数据通信装置高可用性的方法成本较低,维护简单。
文档编号H04L29/06GK101383688SQ20071014956
公开日2009年3月11日 申请日期2007年9月6日 优先权日2007年9月6日
发明者宇 赵 申请人:凹凸科技(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1