首页> 中国专利> 服务环境中虚拟机的安全动态迁移

服务环境中虚拟机的安全动态迁移

摘要

在本发明的实施例中,一种用于虚拟化计算环境中的虚拟机(VM)的安全动态迁移的方法可以包括选择安全虚拟化计算环境中的VM用于动态迁移到不同虚拟化计算环境,并且阻止与选择的VM和安全虚拟化计算环境中的其它VM的数据通信。可以将选择的VM动态迁移到不同虚拟化计算环境,并且可以在不同虚拟化计算环境中重启VM。特别地,可以建立重启的VM与安全虚拟化计算环境中至少一个其它VM之间的安全通信链路。最后,可以启用重启的VM与至少一个其它VM之间通过安全通信链路的数据通信。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-11-26

    授权

    授权

  • 2011-09-28

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20090910

    实质审查的生效

  • 2011-08-17

    公开

    公开

说明书

技术领域

本发明涉及虚拟化的领域,并且更具体地涉及在虚拟化环境中迁移虚拟机。

背景技术

几十年来,计算意味着应用和支持平台。直到二十世纪后期,主机计算环境包括处理器核心、输入/输出、存储器和固定存储的硬件基础设施,硬件基础设施的组合支持操作系统,操作系统接着支持每次单个应用的运行。逐渐地,随着处理器能力成指数增长,操作系统的先进形式实现模拟和实际多任务,使得多应用可以在同一主机计算环境中运行。

最初,应用是对核心对象文件和相关资源文件以外依赖很少的独立逻辑束。然而,随着计算变成现代工业所必需的,应用变得共同依赖于其它应用的存在,使得应用的必要环境不仅包括底层操作系统和支持硬件平台,而且包括其它关键应用,包括应用服务器、数据库管理服务器、协作服务器和统称为中间件的通信逻辑。然而,已知应用复杂性和平台互操作性,在单个硬件平台中运行的应用的不同组合可以展示不同程度的性能和稳定性。

虚拟化作为一种技术致力于在硬件平台和操作系统以及运行应用之间插入一层。从商业连续性和故障恢复的观点看,虚拟化提供了环境可移值性的固有优点。具体地,移动配置有多个不同应用的整体环境是将虚拟映像从一个支持硬件平台移动到另一个支持硬件平台的问题。此外,更强大的计算环境可以支持多个不同虚拟映像的共存,始终维持各映像之间的虚拟分离。结果,一个虚拟映像中的故障情况不能危害同一硬件平台中其它共存虚拟映像的完整性。

虚拟机监视器(本领域中已知为“管理程序(hypervisor)”)管理每个虚拟映像和由硬件平台提供的底层资源。在这点上,裸机(bare metal)管理程序直接在硬件平台上运行,非常像操作系统直接在硬件上运行。比较起来,托管管理程序(hosted hypervisor)在主机操作系统中运行。在任一情况下,管理程序可以支持已知为虚拟机(VM)映像的不同“客户操作系统映像”的操作,VM映像的数目仅受保持VM映像的VM容器(container)的处理资源或硬件平台本身限制。

虚拟化已经证明对于要求用于不同类型的应用的分开计算环境同时受限于单个硬件平台的那些终端用户特别有用。例如,已知专用于(native to)一种类型的硬件平台的主要操作系统提供专用于不同硬件平台的虚拟化客户操作系统,使得要求客户操作系统存在的各应用可以与要求主要操作系统存在的其它应用共存。以此方式,终端用户不需要提供每个用于支持不同类型的应用的分开的计算环境。另外,不论客户操作系统如何,对于单个硬件平台的底层资源的访问保持不变。

已经部署虚拟化环境来在构成应用解决方案时集合不同VM中的不同相互依赖的应用。例如,应用服务器可以在一个VM中运行,同时数据库管理系统可以在不同VM中运行,并且此外同时Web服务器可以在另一VM中运行。每个VM可以在安全网络中相互通信地耦合,然而,应用的部署的任何给定一个可以动态迁移到不同部署,而不干扰其它VM中的其它应用的运行。在典型的动态迁移中,VM可以从一个主机服务器移动到另一主机服务器,以便允许服务器维护或允许对于VM的硬件支持的改进。

动态迁移在用于管理用于应用解决方案的不同应用的运行的VM的安全计算环境中频繁出现。另外,动态迁移还在安全环境的外部出现。具体地,有时VM移动到用于管理应用解决方案的剩余应用的剩余VM的安全计算环境外部的网络环境。结果,由外部网络中的VM管理的应用和由安全计算环境中VM管理的应用之间的通信可以通过来自安全计算环境外部的数据交换折衷。因此,到安全计算网络外部的主机服务器的动态迁移可能将安全性弱点引入应用解决方案。

发明内容

本发明的实施例解决本领域关于虚拟环境中动态迁移的缺陷,并且提供一种用于安全计算环境外部的VM的安全动态迁移的新颖的和非显而易见的方法、系统和计算机程序。在本发明的实施例中,一种用于虚拟计算环境中VM的安全动态迁移的方法可以包括选择安全虚拟化计算环境中的VM用于动态迁移到不同虚拟化计算环境,并且阻止与选择的VM和安全虚拟化计算环境中的其它VM的数据通信。可以将选择的VM动态迁移到不同虚拟化计算环境,并且可以在不同虚拟化计算环境中重启VM。特别地,可以建立重启的VM与安全虚拟化计算环境中至少一个其它VM之间的安全通信链路。最后,可以启用重启的VM与至少一个其它VM之间通过安全通信链路的数据通信。

在本发明的另一实施例中,可以提供一种虚拟化计算数据处理系统。该系统可以包括安全虚拟化计算环境,其包括管理安全虚拟化计算环境中的VM的管理程序。该系统还可以包括不同虚拟化计算环境,其包括管理不同虚拟化计算环境中的VM的管理程序。注意到,动态迁移逻辑可以耦合到安全虚拟化计算环境和不同虚拟化计算环境的每个。

所述逻辑可以包括这样的程序代码,使得能够选择安全虚拟化计算环境中的VM之一用于动态迁移到不同虚拟化计算环境,并且阻止与选择的VM和安全虚拟化计算环境中的其它VM的数据通信。所述程序代码还可以使得能够将选择的VM动态迁移到不同虚拟化计算环境,并且在不同虚拟化计算环境中重启VM。此外,所述程序代码还可以使得能够建立重启的VM与安全虚拟化计算环境中至少一个其它VM之间的安全通信链路。最后,所述程序代码还可以使得能够启用重启的VM与至少一个其它VM之间通过安全通信链路的数据通信。

将在以下描述中部分地阐述本发明的额外方面,并且部分地将是从描述显而易见,或者可以通过本发明的实践获知。将通过在权利要求中特别指出的元件和组合实现和获得本发明的各方面。要理解的是,前述一般描述和以下详细描述仅仅是示例性和说明性的,并且不像权利要求一样限制本发明。

根据一个方面,一种包括计算机可用介质的计算机程序产品,所述计算机可用介质收录用于虚拟计算环境中虚拟机(VM)的安全动态迁移的计算机可用程序代码,所述计算机程序产品包括:用于选择安全虚拟化计算环境中的VM用于动态迁移到不同虚拟化计算环境、并且阻止与选择的VM和安全虚拟化计算环境中的其它VM的数据通信的计算机可用程序代码;用于将选择的VM动态迁移到不同虚拟化计算环境、并且在不同虚拟化计算环境中重启VM的计算机可用程序代码;用于建立重启的VM与安全虚拟化计算环境中至少一个其它VM之间的安全通信链路的计算机可用程序代码;以及用于启用重启的VM与至少一个其它VM之间通过安全通信链路的数据通信的计算机可用程序代码。

附图说明

现在仅通过示例的方式,参照以下附图描述本发明的优选实施例:

图1是根据优选实施例的、虚拟化计算环境中的安全动态迁移的过程的图示说明;

图2是根据优选实施例的、为安全动态迁移配置的虚拟计算数据处理系统的示意性图示;以及

图3是根据优选实施例的、图示虚拟化计算环境中的安全动态迁移的过程的流程图。

具体实施方式

本发明的实施例提供一种用于虚拟化计算环境中的安全动态迁移的方法、系统和计算机程序产品。根据本发明的实施例,可以在安全的虚拟化环境中安排一组VM,每个VM作为用于计算应用的应用组件的主机。各VM中选择的VM可以通过不安全的计算机通信网络(例如全球因特网)动态迁移到通信地耦合到安全虚拟化环境的不同虚拟化环境中的主机。然而,在动态迁移的过程中,在动态迁移之前可以终止选择的VM和其它VM之间的通信。此后,可以在不同的虚拟化环境中重启选择的VM,并且可以在选择的VM和其它VM之间建立安全通道(tunnel)。最后,选择的VM和其它VM可以经由该通道通过计算机通信网络互操作,以便确保它们之间的安全数据通信。

在图示中,图1绘图地描述虚拟化计算环境中安全动态迁移的过程。如图1所示,可以提供安全虚拟化环境110A,以包括通过托管应用组件相互互操作的多个不同VM 130、140,以便形成复合应用。VM 130、140的每个可以通过内部通信链路150相互通信。VM 130、140中选择的VM 140可以通过计算机通信网络120动态迁移到通信地耦合到安全虚拟化环境110A的不同虚拟化环境110B。

然而,在执行选择的VM 140的动态迁移之前,可以停用支持与其它VM130的通信链路150的网络接口160,或者可以通过网络接口160的管理停用或者抑制选择的VM 140和其它VM 130之间的通信量。一旦选择的VM 140已经动态迁移到不同的虚拟化环境110B,就可以通过计算机通信网络120在选择的VM 140和其它VM 130之间建立安全通信链路170。在这点上,对于安全通信链路170符合因特网协议(IP)安全性(IPSec)的程度,可以为安全通信链路170建立IPSec策略180,并且结合选择的VM 140安装。此后,可以启用选择的VM 140和其它VM 130之间的互操作。

结合图1描述的过程可以在虚拟计算数据处理系统中实施。在图示中,图2示意性示出配置用于安全动态迁移的虚拟计算数据处理系统。该系统可以包括通过计算机通信网络220(例如,全球因特网)通信地耦合到不同虚拟化计算环境210B的安全虚拟化计算环境210A。安全虚拟化计算环境210A可以包括支持管理程序240A的操作的至少一个主机服务器230A。管理程序240A接着可以管理多个不同VM 260A的操作,并且每个VM 260A可以作为组合来提供计算应用的一个或多个应用组件(未示出)的运行的主机。

不同虚拟化计算环境210B还可以包括支持管理程序240B的操作的至少一个主机服务器230B。管理程序240B接着可以管理多个不同VM 260B的操作,并且每个VM 260B可以作为组合来提供计算应用的一个或多个应用组件(未示出)的运行的主机。值得注意的,动态迁移逻辑300可以耦合到安全虚拟化计算环境210A和不同虚拟化计算环境210B两者。动态迁移逻辑300可以包括程序代码,使得能够在维持安全虚拟化计算环境210A和不同虚拟化计算环境210B之间的数据通信的安全性的同时,将VM 260A中选择的一个从安全虚拟化计算环境210A动态迁移到不同虚拟化计算环境210B。

具体地,当将VM 260A中选择的一个动态迁移到不同虚拟化计算环境210B作为不同虚拟化计算环境210B中的VM 260B时,动态迁移逻辑300的程序代码可以使得能够配置用于主机服务器230A的网络适配器250A停用、过滤或者阻止安全虚拟化计算环境210A中的VM 260A之间的数据通信。此外,动态迁移逻辑300的程序代码可以使得能够在不同虚拟化计算环境210B中重启VM 260B中动态迁移的一个,并且重新建立VM 260B中动态迁移的一个与安全虚拟化计算环境210A中的VM 260A之间的数据通信。

特别地,在建立主机服务器230B和主机服务器230A之间的通道时,IPSec策略270B可以与用于主机服务器230B的网络适配器250B相关联。同样地,在建立主机服务器230A和主机服务器230B之间的通道时,IPSec策略270A可以与用于主机服务器230A的网络适配器250A相关联。当然,要认识到该通道不但可以容纳分别由管理程序240A、240B管理的VM 260A、260B之间流动的通信量,而且容纳如边缘路由器和安全性装置的中间设备之间流动的通信量,以命名几个示例。一旦已经建立通道,动态迁移逻辑300的程序代码就可以使得能够恢复不同虚拟化计算环境210B中的VM 260B中动态迁移的一个与安全虚拟化计算环境210A中VM 260A之间的数据通信。

在动态迁移逻辑300的操作的进一步图示中,图3是图示虚拟化计算环境中的安全动态迁移的过程的流程图。在块310开始,可以选择安全虚拟化计算环境中的VM用于动态迁移,并且在块315中,与安全虚拟化计算环境分开的不同虚拟化计算环境可以作为VM的动态迁移的目标。在块320中,可以停用与选择的VM的数据通信,并且在块325中,可以在安全虚拟化计算环境中关闭VM。

在块330中,可以将选择的VM动态迁移到不同虚拟化计算环境。在确定块335中,可以确定用于选择的VM的整个子网络是否已经移动到不同虚拟化计算环境。如果是,则在块340中,可以建立安全虚拟化计算环境和不同虚拟化计算环境之间的通道,以便将意图用于选择的VM的安全虚拟化计算环境中的通信量重新定向到不同虚拟化计算环境。在块345中,可以在不同虚拟化计算环境中重启选择的VM,并且可以结合选择的VM配置和安装IPSec策略,在确定块355中,可以确定在选择的VM和其它通信实体之间非管理连接是否持续。如果是,则在块360中,可以检索已经安全的非管理连接的列表,例如通过IPSec、应用透明(AT)传送层安全性(TLS)和无条件TLS端口保护的那些连接。在块365中,非管理连接中的剩余的不安全连接可以重置,并且重新建立为安全连接。

此后,在块370中,可以启用不同虚拟化计算环境中的VM和安全虚拟化计算环境中的其它VM之间的数据通信。在确定块375中,可以再次确定用于选择的VM的整个子网络是否已经移动到不同虚拟化计算环境。如果是,则在块380中,可以检查用于安全虚拟化计算环境的路由核心,以便确定合适的路由配置是否已经传送到路由核心,从而启用数据分组到不同虚拟化计算环境的路由,而不管通道。在确定块385中,可以确定是否已经更新路由核心,以启用数据分组到不同虚拟化计算环境的路由,而不管通道。如果否,则可以在块380中再次检查路由核心。然而,一旦已经更新路由核心,在块390中就可以移除通道,并且过程可以在块395中结束。

本发明的实施例可以取整体硬件实施例、整体软件实施例或包含硬件和软件元件的实施例的形式。在优选实施例中,以包括但不限于固件、驻留软件、微代码等的软件实施本发明。此外,本发明可以采取可从计算机可用或计算机可读介质存取的计算机程序产品的形式,计算机可用或计算机可读介质提供用于由或结合计算机或任何指令执行系统使用的程序代码。

为了描述的目的,计算机可用或计算机可读介质可以是任何装置,其可以包含、存储、通信、传播或传送用于由或结合指令执行系统、装置或设备使用的程序。介质可以是电、磁、光、电磁、红外或半导体系统(或者装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括致密盘-只读存储器(CD-ROM)、致密盘-读/写(CD-R/W)和DVD。

适于存储和/或运行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接耦合到存储器元件的处理器。存储器元件可以包括在程序代码的实际运行期间采用的本地存储器、大容量存储、以及高速缓冲存储器,该高速缓冲存储器提供至少一些程序代码的临时存储,以便减少在运行期间必须从大容量存储检索代码的次数。输入/输出或者I/O设备(包括但不限于键盘、显示器、顶定点设备等)可以直接或通过居间I/O控制器耦合到系统。网络适配器也可以耦合到系统,以便使得数据处理系统能够变得通过居间的私有或公开网络耦合到其它数据处理系统或者远程打印机或者存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是几个当前可用类型的网络适配器。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号