一种广域网可信虚拟机的安全迁移方法及系统的制作方法

文档序号:7998489阅读:396来源:国知局
一种广域网可信虚拟机的安全迁移方法及系统的制作方法
【专利摘要】本发明提供一种广域网可信虚拟机的安全迁移方法及系统,其中方法包括:S1,在广域网上部署两个数据中心,该两个数据中心之间建立两层桥接模式的虚拟专用网络;S2,将所述虚拟机镜像文件拆分为模板和用户私有数据,将每个数据中心的硬件资源虚拟化,以虚拟机的形式向用户提供服务;S3,在两个数据中心之间通过部署虚拟可信平台创建并启动支持vTPM的可信虚拟机,生成与该可信虚拟机绑定的vTPM实例,加载TPM驱动;S4,根据vTPM实例对源端和目的端进行配置后,在源端对可信虚拟机的内存、CPU状态、磁盘、vTPM状态进行迁移,并在目的端进行恢复,实现vTPM和虚拟机的同步迁移。
【专利说明】一种广域网可信虚拟机的安全迁移方法及系统

【技术领域】
[0001] 本发明涉及虚拟机迁移领域,尤其涉及一种广域网可信虚拟机的安全迁移方法。

【背景技术】
[0002] 近年来,虚拟化技术作为云计算关键技术之一,能提高数据中心服务器资源的利 用率、降低管理难度,减少企业的IT成本,因而被企业广泛关注和使用。其中,虚拟机在线 迁移技术,因其能对服务器资源进行灵活的分配和调度,被广泛应用于数据中心容灾备份、 负载均衡以及数据中心节能等领域。
[0003] 但是虚拟机的安全问题一直令人担忧。随着可信计算技术的发展,人们开始尝试 将可信计算技术与虚拟化技术结合,来解决当前虚拟机中存在的安全问题。IBM的Stefan Berger等人在现有技术中设计并实现了虚拟可信平台模块(νΤΡΜ),将一个物理TPM虚拟成 多个νΤΡΜ,每一个νΤΡΜ实例又和一个虚拟机进行绑定,为虚拟机提供完整的TPM功能。通 过ΤΡΜ信任链的传递,可以把信任链传递到客户虚拟机操作系统及应用上,保证虚拟机整 个端的安全。同时,作者为νΤΡΜ实例设计了安全迁移协议,通过远程证明技术,保证了迁 移过程网络接入端的可信。但其可信虚拟机迁移场景仅限于局域网内,不能保证广域网环 境下可信虚拟机迁移过程中的数据传输安全和实时无缝迁移的实现。现有技术通过重新设 计迁移协议,在现有协议基础上加入TLS握手协议,来保障数据传输中的安全。但其实现需 要全部重新构建现有协议,非常复杂,且其关注的场景任然仅限于局域网。
[0004] 随着数据中心业务需求的日益增长,限于局域网内的单个数据中心将无法满足业 务的需求,广域网环境下多个数据中心资源的协调、统一,将成为企业的迫切要求。因此,广 域网环境下的可信虚拟机安全迁移存在着极大的现实意义。目前,国内外研究可信虚拟机 迁移的仅仅关注到其局域网内的应用场景,而广域网内的可信虚拟机安全迁移则很少有人 研究。现有技术研究了基于ΤΡΜ的终端数据的可信迁移,但没有涉及网络下的迁移。现有 技术也提出了一种在广域网中计算平台间的对象迁移的安全协议框架,但本文迁移目标是 计算平台上的单个对象而非整个虚拟机迁移,且没有考虑广域网的安全防范问题,因此仍 与广域网中的可信虚拟机的安全迁移有较大区别。广域网内的可信虚拟机迁移与传统局域 网内的虚拟机迁移相比存在着很大的差别,有下面几个需要面对的问题:
[0005] 1)广域网迁移的数据安全问题。和局域网相比,广域网环境更加复杂。可信虚拟 机迁移的信息会更多的暴露在不可信的环境下,如何保障虚拟域在网络中传输的安全性问 题,这是广域网迁移面临的一个挑战。
[0006] 2)广域网迁移需要解决IP重定向的问题。局域网内虚拟机迁移后IP在同一个网 段内,通过ARP广播即可解决IP重定向的问题。而广域网内这种方法会失效,直接迁移,将 导致虚拟机迁移后其上部署的业务无法正常运行。
[0007] 3)广域网之间的网络的高延迟和低带宽问题。连接两个数据中心需要经过多重路 由和链路,网络延迟大,带宽相对较小,增大了虚拟机迁移的总时间和宕机时间,影响运行 在虚拟机中的业务。局域网内采用NFS分布式共享文件系统,共享磁盘,不需要迁移磁盘, 而广域网由于其高延迟低带宽的特点,采用共享磁盘方式,会造成较大延时,因此广域网迁 移一般不采用NFS共享磁盘的方式,而需要采用磁盘迁移的方式。
[0008] 4)可信虚拟机需要额外迁移νΤΡΜ状态数据。与传统虚拟机相比,可信虚拟机需 要ΤΡΜ、前后端ΤΡΜ驱动以及vTPM Manager等的支持。在迁移过程中,除了对内存、CPU和 磁盘进行迁移外,还要求对与虚拟机绑定的νΤΡΜ实例及其数据状态进行迁移。其迁移过程 比普通虚拟机迁移要复杂。如何整合虚拟机数据和νΤΡΜ实例数据让其正确的迁移到目的 端并保持他们之间的绑定和交互关系,也是当前面临的挑战。


【发明内容】

[0009] 为解决上述问题,本发明提供一种广域网可信虚拟机的安全迁移方法及系统,其 将VPN技术和ΤΡΜ&νΤΡΜ技术结合,以实现整条迁移链的安全与可信,保障可信虚拟机迁移 过程的正确、高效和安全,突破可信虚拟机迁移仅限于局域网内的局限性,扩展可信技术使 用的范围和灵活性的发明目的,为虚拟机的安全和防护提供新的应用场景及解决方案。 [0010] 为实现上述发明目的,本发明提供一种广域网可信虚拟机的安全迁移方法,该方 法包括:
[0011] 步骤1,在广域网上部署两个数据中心,该两个数据中心之间通过建立两层桥接模 式的虚拟专用网络进行网络连接,其中每个数据中心的业务节点运行虚拟机;
[0012] 步骤2,将所述虚拟机镜像文件拆分为模板和用户私有数据,并将其分别储存于所 述两个数据中心中的存储节点中,然后将每个数据中心的硬件资源虚拟化,以虚拟机的形 式向用户提供服务;
[0013] 步骤3,在所述两个数据中心之间通过部署虚拟可信平台创建并启动支持vTPM的 可信虚拟机,并根据所述模板和用户私有数据生成与该可信虚拟机绑定的νΤΡΜ实例,然后 加载ΤΡΜ驱动;
[0014] 步骤4,所述两个数据中心,一个作为源端,另一个作为目的端,根据所述vTPM实 例对源端和目的端进行配置后,在源端对可信虚拟机的内存、CPU状态、磁盘、vTPM状态进 行迁移,并在目的端进行恢复,实现v T P Μ和虚拟机的同步迁移。
[0015] 进一步的,所述步骤1包括:
[0016] 步骤11,在数据中心之外的广域网中随机选择一个节点作为VPNserver,每个数 据中心选择一个节点作为VPNclient,所述VPNserver生成其建立服务和每个VPNclient请 求连接时的认证文件,其中所述VPNserver为VPN服务器,VPNclient为VPN客户端;
[0017] 步骤12,在所述VPNserver的配置文件中设置参数,包括:TCP协议,tap设备,IP 地址,以及认证文件路径,之后启动VPNserver服务;
[0018] 步骤13,所述每个数据中心选择一个节点作为VPNclient后将所述认证文件复制 到该节点,并在VPNclient的配置文件中设置参数,包括:VPNserver的IP地址,TCP协议, tap设备,以及认证文件路径,之后启动VPNclient服务,所述VPNclient服务与VPNserver 服务连接;
[0019] 步骤14,在所述每个VPNclient上启动虚拟网桥,并将其与相应的tap设备对接;
[0020] 步骤15,所述每个数据中心除VPNclient之外的节点上设置默认路由作为该数据 中心的VPNclient的IP地址。
[0021] 进一步的,所述步骤2包括:
[0022] 步骤21,每个数据中心的所有存储节点形成统一的挂载接口,在该挂载接口上创 建分布式文件系统的卷Volume,两个数据中心的Volume标记为Volumel、Volume2;
[0023] 步骤22,将所述虚拟机镜像文件拆分为模板和用户私有数据,所述模板数据在用 户请求服务时动态生成;
[0024] 步骤22,将所述模板和用户私有数据分别存储于Volumel、Volume2。
[0025] 进一步的,所述步骤3包括:
[0026] 步骤31,在DomO中加载TPM前端驱动,生成设备文件/dev/tpmO ;
[0027] 步骤32,在所述DomO中加载TPM后端驱动,生成设备文件/dev/vtpm ;
[0028] 步骤33,配置并编译xen使其支持vTPM Manager、νΤΡΜ、及支持νΤΡΜ迁移;
[0029] 步骤34,启动所述vTPM Manager,初始化监听线程;
[0030] 步骤35,启动支持vTPM的可信虚拟机,在所述DomO生成与虚拟机绑定的vTPM实 例;
[0031] 步骤36,在启动的可信虚拟机中加载所述TPM前端驱动。
[0032] 进一步的,所述步骤4包括:
[0033] 步骤41,在目的端开启vTPM实例迁移守护进程;
[0034] 步骤42,在源端检查Hotplug脚本是否支持vTPM实例迁移,如果不支持,修改 Hotplug脚本使其支持vTPM实例迁移,执行步骤43,若支持,直接执行步骤43 ;
[0035] 步骤43,循环迭代拷贝虚拟机内存脏页到目的端;
[0036] 步骤44,虚拟机进入停机拷贝阶段后,对剩余脏页、CPU状态、磁盘文件进行拷贝;
[0037] 步骤45,停机拷贝后,激发vTPM迁移;
[0038] 步骤46, vTPM迁移被激活后,调用脚本完成vTPM迁移的沟通迁移密钥;
[0039] 步骤47, vTPM迁移调用沟通迁移密钥完成后,会继续调用脚本完成vTPM迁移的传 送vTPM状态数据;
[0040] 步骤48,在目的端恢复迁移过来的虚拟机,并对源端虚拟机及vTPM实例进行销 毁。
[0041] 为实现上述发明目的,本发明还提供一种广域网可信虚拟机的安全迁移系统,该 系统包括:
[0042] 建立连接模块,在广域网上部署两个数据中心,该两个数据中心之间通过建立两 层桥接模式的虚拟专用网络进行网络连接,其中每个数据中心的业务节点运行虚拟机; [0043] 拆分处理模块,将所述虚拟机镜像文件拆分为模板和用户私有数据,并将其分别 储存于所述两个数据中心中的存储节点中,然后将每个数据中心的硬件资源虚拟化,以虚 拟机的形式向用户提供服务;
[0044] vTPM实例处理模块,在所述两个数据中心之间通过部署虚拟可信平台创建并启 动支持vTPM的可信虚拟机,并根据所述模板和用户私有数据生成与该可信虚拟机绑定的 vTPM实例,然后加载TPM驱动;
[0045] 迁移处理模块,所述两个数据中心,一个作为源端,另一个作为目的端,根据所述 vTPM实例对源端和目的端进行配置后,在源端对可信虚拟机的内存、CPU状态、磁盘、vTPM 状态进行迁移,并在目的端进行恢复,实现v T P Μ和虚拟机的同步迁移。
[0046] 进一步的,所述建立连接模块包括:
[0047] VPNserver处理模块,在数据中心之外的广域网中随机选择一个节点作为 VPNserver,每个数据中心选择一个节点作为VPNclient,所述VPNserver生成其建立服务 和每个VPNclient请求连接时的认证文件,其中所述VPNserver为VPN服务器,VPNclient 为VPN客户端;
[0048] 参数设置模块,在所述VPNserver的配置文件中设置参数,包括:TCP协议,tap设 备,IP地址,以及认证文件路径,之后启动VPNserver服务;
[0049] VPNclient处理模块,所述每个数据中心选择一个节点作为VPNclient后将所述 认证文件复制到该节点,并在VPNclient的配置文件中设置参数,包括:VPNserver的IP地 址,TCP协议,tap设备,以及认证文件路径,之后启动VPNclient服务,所述VPNclient服务 与VPNserver服务连接;
[0050] 虚拟处理模块,在所述每个VPNclient上启动虚拟网桥,并将其与相应的tap设备 对接;
[0051] IP地址处理模块,所述每个数据中心除VPNclient之外的节点上设置默认路由作 为该数据中心的VPNclient的IP地址。
[0052] 进一步的,所述拆分处理模块包括:
[0053] 接口处理模块,每个数据中心的所有存储节点形成统一的挂载接口,在该挂载接 口上创建分布式文件系统的卷Volume,两个数据中心的Volume标记为Volumel、Volume2;
[0054] 拆分模块,将所述虚拟机镜像文件拆分为模板和用户私有数据,所述模板数据在 用户请求服务时动态生成;
[0055] 存储模块,将所述模板和用户私有数据分别存储于Volumel、Volume2。
[0056] 进一步的,所述νΤΡΜ实例处理模块包括:
[0057] 加载前端模块,在DomO中加载ΤΡΜ前端驱动,生成设备文件/dev/tpmO ;
[0058] 加载后端模块,在所述DomO中加载TPM后端驱动,生成设备文件/dev/vtpm ;
[0059] 配置处理模块,配置并编译xen使其支持vTPM Manager、vTPM、及支持νΤΡΜ迁移;
[0060] 初始化模块,启动所述νΤΡΜ Manager,初始化监听线程;
[0061] νΤΡΜ实例生成模块,启动支持νΤΡΜ的可信虚拟机,在所述DomO生成与虚拟机绑定 的νΤΡΜ实例;
[0062] 加载处理模块,在启动的可信虚拟机中加载所述ΤΡΜ前端驱动。
[0063] 进一步的,所述迁移处理模块包括:
[0064] 进程开启模块,在目的端开启νΤΡΜ实例迁移守护进程;
[0065] 检查处理模块,在源端检查Hotplug脚本是否支持νΤΡΜ实例迁移,如果不支持,修 改Hotplug脚本使其支持νΤΡΜ实例迁移,执行迭代处理模块,若支持,直接执行迭代处理模 块;
[0066] 迭代处理模块,循环迭代拷贝虚拟机内存脏页到目的端;
[0067] 拷贝处理模块,虚拟机进入停机拷贝阶段后,对剩余脏页、CPU状态、磁盘文件进行 拷贝;
[0068] 激发迁移模块,停机拷贝后,激发νΤΡΜ迁移;
[0069] 调用处理模块,νΤΡΜ迁移被激活后,调用脚本完成νΤΡΜ迁移的沟通迁移密钥;
[0070] νΤΡΜ数据传送模块,νΤΡΜ迁移调用沟通迁移密钥完成后,会继续调用脚本完成 νΤΡΜ迁移的传送νΤΡΜ状态数据;
[0071] 销毁处理模块,在目的端恢复迁移过来的虚拟机,并对源端虚拟机及νΤΡΜ实例进 行销毁。
[0072] 本发明的有益功效在于:
[0073] 通过克服广域网迁移过程中遇到的挑战和困难,保障了可信虚拟机迁移过程的正 确、高效和安全。通过将局域网内的可信虚拟机迁移扩展到了广域网环境,突破了可信虚拟 机迁移仅限于局域网内的局限性,扩展了可信技术使用的范围和灵活性,为虚拟机的安全 和防护提供了新的应用场景及解决方案。
[0074] 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

【专利附图】

【附图说明】
[0075] 图1是本发明的广域网可信虚拟机的安全迁移方法流程图;
[0076] 图2是本发明的广域网可信虚拟机的安全迁移系统示意图;
[0077] 图3是本发明的一实施例的广域网可信虚拟机的安全迁移系统示意图;
[0078] 图4是本发明的一实施例的广域网可信虚拟机的安全迁移系统示意图。

【具体实施方式】
[0079] 本发明将VPN技术和ΤΡΜ&νΤΡΜ技术结合,实现了虚拟机迁移端、接入端、网络传 输,整条迁移链的安全与可信。与现有技术的安全迁移协议相比,本专利的不用重新构建安 全迁移协议,直接采用现有VPN(OpenVPN)中SSL机制,大大减少了实现的难度,以及产品的 兼容性。所述虚拟化环境为Xen虚拟化环境,所述可信虚拟机为支持TPM可信计算功能的 虚拟机,所叙安全迁移,指对传输端进行可信验证,并借助VPN安全协议对传输过程进行加 密处理。
[0080] 图1是本发明的广域网可信虚拟机的安全迁移方法流程图。如图1所示,该方法 包括:
[0081] S1,在广域网上部署两个数据中心,该两个数据中心之间通过建立两层桥接模式 的虚拟专用网络进行网络连接,其中每个数据中心的业务节点运行虚拟机;
[0082] S2,将所述虚拟机镜像文件拆分为模板和用户私有数据,并将其分别储存于所述 两个数据中心中的存储节点中,然后将每个数据中心的硬件资源虚拟化,以虚拟机的形式 向用户提供服务;
[0083] S3,在所述两个数据中心之间通过部署虚拟可信平台创建并启动支持νΤΡΜ的可 信虚拟机,并根据所述模板和用户私有数据生成与该可信虚拟机绑定的νΤΡΜ实例,然后加 载ΤΡΜ驱动;
[0084] S4,所述两个数据中心,一个作为源端,另一个作为目的端,根据所述νΤΡΜ实例对 源端和目的端进行配置后,在源端对可信虚拟机的内存、CPU状态、磁盘、νΤΡΜ状态进行迁 移,并在目的端进行恢复,实现ν Τ Ρ Μ和虚拟机的同步迁移。
[0085] 进一步的,所述S1包括:
[0086] 步骤11,在数据中心之外的广域网中随机选择一个节点作为VPNserver,每个数 据中心选择一个节点作为VPNclient,所述VPNserver生成其建立服务和每个VPNclient请 求连接时的认证文件,其中所述VPNserver为VPN服务器,VPNclient为VPN客户端;
[0087] 步骤12,在所述VPNserver的配置文件中设置参数,包括:TCP协议,tap设备,IP 地址,以及认证文件路径,之后启动VPNserver服务;
[0088] 步骤13,所述每个数据中心选择一个节点作为VPNclient后将所述认证文件复制 到该节点,并在VPNclient的配置文件中设置参数,包括:VPNserver的IP地址,TCP协议, tap设备,以及认证文件路径,之后启动VPNclient服务,所述VPNclient服务与VPNserver 服务连接;
[0089] 步骤14,在所述每个VPNclient上启动虚拟网桥,并将其与相应的tap设备对接;
[0090] 步骤15,所述每个数据中心除VPNclient之外的节点上设置默认路由作为该数据 中心的VPNclient的IP地址。
[0091] 进一步的,所述S2包括:
[0092] 步骤21,每个数据中心的所有存储节点形成统一的挂载接口,在该挂载接口上创 建分布式文件系统的卷Volume,两个数据中心的Volume标记为Volumel、Volume2;
[0093] 步骤22,将所述虚拟机镜像文件拆分为模板和用户私有数据,所述模板数据在用 户请求服务时动态生成;
[0094] 步骤22,将所述模板和用户私有数据分别存储于Volumel、Volume2。
[0095] 进一步的,所述S3包括:
[0096] 步骤31,在DomO中加载TPM前端驱动,生成设备文件/dev/tpmO ;
[0097] 步骤32,在所述DomO中加载TPM后端驱动,生成设备文件/dev/vtpm ;
[0098] 步骤33,配置并编译xen使其支持vTPM Manager、νΤΡΜ、及支持νΤΡΜ迁移;
[0099] 步骤34,启动所述vTPM Manager,初始化监听线程;
[0100] 步骤35,启动支持vTPM的可信虚拟机,在所述DomO生成与虚拟机绑定的vTPM实 例;
[0101] 步骤36,在启动的可信虚拟机中加载所述TPM前端驱动。
[0102] 进一步的,所述S4包括:
[0103] 步骤41,在目的端开启vTPM实例迁移守护进程;
[0104] 步骤42,在源端检查Hotplug脚本是否支持vTPM实例迁移,如果不支持,修改 Hotplug脚本使其支持vTPM实例迁移,执行步骤43,若支持,直接执行步骤43 ;
[0105] 步骤43,循环迭代拷贝虚拟机内存脏页到目的端;
[0106] 步骤44,虚拟机进入停机拷贝阶段后,对剩余脏页、CPU状态、磁盘文件进行拷贝;
[0107] 步骤45,停机拷贝后,激发vTPM迁移;
[0108] 步骤46, vTPM迁移被激活后,调用脚本完成vTPM迁移的沟通迁移密钥;
[0109] 步骤47, vTPM迁移调用沟通迁移密钥完成后,会继续调用脚本完成vTPM迁移的传 送vTPM状态数据;
[0110] 步骤48,在目的端恢复迁移过来的虚拟机,并对源端虚拟机及vTPM实例进行销 毁。
[0111] 图2是本发明的广域网可信虚拟机的安全迁移系统示意图。如图2所示,该系统 包括:
[0112] 建立连接模块100,在广域网上部署两个数据中心,该两个数据中心之间通过建立 两层桥接模式的虚拟专用网络进行网络连接,其中每个数据中心的业务节点运行虚拟机;
[0113] 拆分处理模块200,将所述虚拟机镜像文件拆分为模板和用户私有数据,并将其分 别储存于所述两个数据中心中的存储节点中,然后将每个数据中心的硬件资源虚拟化,以 虚拟机的形式向用户提供服务;
[0114] νΤΡΜ实例处理模块300,在所述两个数据中心之间通过部署虚拟可信平台创建并 启动支持νΤΡΜ的可信虚拟机,并根据所述模板和用户私有数据生成与该可信虚拟机绑定 的νΤΡΜ实例,然后加载ΤΡΜ驱动;
[0115] 迁移处理模块400,所述两个数据中心,一个作为源端,另一个作为目的端,根据 所述νΤΡΜ实例对源端和目的端进行配置后,在源端对可信虚拟机的内存、CPU状态、磁盘、 νΤΡΜ状态进行迁移,并在目的端进行恢复,实现v T P Μ和虚拟机的同步迁移。
[0116] 进一步的,所述建立连接模块100包括:
[0117] VPNserver处理模块,在数据中心之外的广域网中随机选择一个节点作为 VPNserver,每个数据中心选择一个节点作为VPNclient,所述VPNserver生成其建立服务 和每个VPNclient请求连接时的认证文件,其中所述VPNserver为VPN服务器,VPNclient 为VPN客户端;
[0118] 参数设置模块,在所述VPNserver的配置文件中设置参数,包括:TCP协议,tap设 备,IP地址,以及认证文件路径,之后启动VPNserver服务;
[0119] VPNclient处理模块,所述每个数据中心选择一个节点作为VPNclient后将所述 认证文件复制到该节点,并在VPNclient的配置文件中设置参数,包括:VPNserver的IP地 址,TCP协议,tap设备,以及认证文件路径,之后启动VPNclient服务,所述VPNclient服务 与VPNserver服务连接;
[0120] 虚拟处理模块,在所述每个VPNclient上启动虚拟网桥,并将其与相应的tap设备 对接;
[0121] IP地址处理模块,所述每个数据中心除VPNclient之外的节点上设置默认路由作 为该数据中心的VPNclient的IP地址。
[0122] 进一步的,所述拆分处理模块200包括:
[0123] 接口处理模块,每个数据中心的所有存储节点形成统一的挂载接口,在该挂载接 口上创建分布式文件系统的卷Volume,两个数据中心的Volume标记为Volumel、Volume2;
[0124] 拆分模块,将所述虚拟机镜像文件拆分为模板和用户私有数据,所述模板数据在 用户请求服务时动态生成;
[0125] 存储模块,将所述模板和用户私有数据分别存储于Volumel、Volume2。
[0126] 进一步的,所述νΤΡΜ实例处理模块300包括:
[0127] 加载前端模块,在DomO中加载ΤΡΜ前端驱动,生成设备文件/dev/tpmO ;
[0128] 加载后端模块,在所述DomO中加载TPM后端驱动,生成设备文件/dev/vtpm ;
[0129] 配置处理模块,配置并编译xen使其支持νΤΡΜ Manager、νΤΡΜ、及支持νΤΡΜ迁移;
[0130] 初始化模块,启动所述νΤΡΜ Manager,初始化监听线程;
[0131] νΤΡΜ实例生成模块,启动支持νΤΡΜ的可信虚拟机,在所述DomO生成与虚拟机绑定 的νΤΡΜ实例;
[0132] 加载处理模块,在启动的可信虚拟机中加载所述TPM前端驱动。
[0133] 进一步的,所述迁移处理模块400包括:
[0134] 进程开启模块,在目的端开启νΤΡΜ实例迁移守护进程;
[0135] 检查处理模块,在源端检查Hotplug脚本是否支持νΤΡΜ实例迁移,如果不支持,修 改Hotplug脚本使其支持νΤΡΜ实例迁移,执行迭代处理模块,若支持,直接执行迭代处理模 块;
[0136] 迭代处理模块,循环迭代拷贝虚拟机内存脏页到目的端;
[0137] 拷贝处理模块,虚拟机进入停机拷贝阶段后,对剩余脏页、CPU状态、磁盘文件进行 拷贝;
[0138] 激发迁移模块,停机拷贝后,激发νΤΡΜ迁移;
[0139] 调用处理模块,νΤΡΜ迁移被激活后,调用脚本完成νΤΡΜ迁移的沟通迁移密钥;
[0140] νΤΡΜ数据传送模块,νΤΡΜ迁移调用沟通迁移密钥完成后,会继续调用脚本完成 νΤΡΜ迁移的传送νΤΡΜ状态数据;
[0141] 销毁处理模块,在目的端恢复迁移过来的虚拟机,并对源端虚拟机及νΤΡΜ实例进 行销毁。
[0142] 下面结合图3和4介绍本发明的一实施例,以OpenVPN-2. 1.3作为建立数据 中心之间连接的工具,Gluster-3. 2. 0作为每个数据中心存储虚拟机镜像的文件系统, Xen-4. 1. 0虚拟化平台为例,业务节点上的DomO和存储节点上使用升级到linux-2. 6. 39. 1 内核的susell操作系统,展开实现一种跨广域网可信虚拟机在线迁移方法的进一步说明。
[0143] 可信虚拟机跨广域网在线迁移架构图,如图3所示,其中实线部分代表迁移前源 端和目的端可信虚拟平台部署情况及跨广域网迁移的整体网络架构,虚线部分代表迁移到 目的端的可信虚拟机部署情况。可信虚拟机跨广域网迁移方法流程图,如图4所示,描述了 步骤C和步骤D关键步骤,重点描述了 νΤΡΜ实例迁移st印1和step2中相关对象的交互过 程。其中vtpm_migrator和vtpm_migratord分别负责源端和目的端的νΤΡΜ状态数据的迁 移工作,xc_domain_save和xc_domain_restore分别负责源端和目的端VM的迁移工作(包 括内存、cpu状态、磁盘),vtpmd为νΤΡΜ实例守护进程,vtpm-impl代表用来解析、执行用户 和系统命令的脚本,vtpm_manager则负责传达和执行vtpmd和虚拟机交互的指令,箭头及 注射代表对象之间的具体交互行为。实施包括以下步骤:
[0144] A.两个Datacenter之间通过VPN建立虚拟专用的网络连接通道,使得连接后 Vlanl和Vlan2中的所有节点可以通过原有IP地址通信。具体的一个实施步骤为:
[0145] A1.在Datacenter 1和Datacenter2之外的广域网中选择一个节点作为 VPNserver,IP地址为202. 201. 46. 156。在其上生成自己建立服务和每个VPNclient请求 连接时需要的认证文件,包括:.ca. Key, . crt,· crs,和.pem等文件。
[0146] 本步骤中所述的认证文件,均由VPNserver生成,其.ca文件只有一个,VPNserver 和VPNclient使用同一文件,.pem文件只为VPNserver使用,其余认证文件,每个节点之上 都使用同一套,且互不相同。
[0147] A2.在VPNserver中的配置文件中设置协议为TCP,tap模式,tap设备使用的虚拟 IP地址为10. 10. 0. 0,以及认证文件路径。启动服务。
[0148] A3. Datacenterl中选择一个节点作为VPNclient,该节点拥有两个网络适配 器,其中ethO上IP为11. 11. 11. 88地址属于VLanl,ethl上为广域网上的IP地址,将 VPNserver生成的认证文件复制到该节点,同样在配置文件中设置VPNserver的IP地址为 202. 201. 46. 156, TCP协议,tap设备,以及认证文件路径,启动服务。
[0149] A4.在Vlanl中的VPNclient上启动虚拟网桥vpnbrO,将其与tapO设备对接。并 在 ethO 上设置到 Datacenter2 的 net。
[0150] A5.数据中心中除VPNclient之外的业务节点上的设置默认路由为11. 11. 11. 88。
[0151] 本步骤中B3-B5以Datacenterl为例,Datacenter2同理实施。连接后两个数据 中心的节点可以相互通信。
[0152] B.每个数据中心包括多个业务节点和存储节点,并属于同一逻辑局域网,虚拟机 镜像文件template和Qcow存储于独立节点上的文件系统中。具体的一个实施步骤为:
[0153] B1.两个数据中心Datacenterl和Datacenter2。Datacenterl中的所有节点属于 Vlanl,每个节点的IP地址为11. 11. ll.X。Datacenter2中的所有节点属于Vlan2,每个节 点的IP地址为12. 12. 12. X。
[0154] 步骤A1中所述"Vlan"为逻辑局域网。
[0155] B2.所有存储节点运行glusterfs server,并将所有存储节点通过glusterfs 的peer功能绑定形成统一的挂载接口,在其中创建两个Volume分别为Vol-template和 Vol-vm。
[0156] Β3·所有业务节点运行xen-4. 1. 0虚拟化计算环境和Glusterfs client,并且挂 载存储节点上的Vol-template到本地路径/vm/template,挂载Vol-vm到本地路径/home/ vm下。
[0157] Β4· Vol-template中存储模板镜像template, Vol-vm中存储用户私有数据Qcow。
[0158] C.通过配置并启动vTPM、vTPM Manager、TPM前后端驱动、TPM原生驱动及支持 νΤΡΜ的DomU,搭建一个能为多个DomU提供独立的基于TPM的可信计算功能的平台。其中 C1-C4在xen和DomO上搭建可信虚拟平台,C5-C6在C1-C4的基础上创建可信虚拟机。针 对本实例需要在迁移的源端和目的端同时执行步骤C1-C4搭建可信虚拟平台,同时在源端 执行步骤C5-C6创建一台可信虚拟机。DomO是Xen虚拟框架中起管理的域,用于管理其他 Dom,同时为其他Dom与Xen的交互提供一些接口等功能。此外DomO作为一个完整的操作系 统在Xen的实现中也起到了关键作用,将一些原本应该在Xen中实现的功能转移到了 DomO 中实现。vTPM Manager是vTPM架构下对vTPM进行管理控制的实体。
[0159] C1.在DomO中加载ΤΡΜ前端驱动。在主机BIOS中开启对ΤΡΜ芯片的支持,在打过 Xen补丁的linux内核中通过make menuconfig开启DomO对TPM原生驱动的支持,重新编 译内核,配置好后,进入DomO,使用命令modrpbe tpm_tis force=ltpm_tis=l加载TPM原生 驱动模块,完成后会自动生成TPM原生驱动设备文件/dev/tpmO。Xen是一种虚拟机监视器, 通过类虚拟化、基于硬件的全虚拟化等方式可以在一台物理主机上虚拟出多套物理设备并 在其上运行操作系统。
[0160] C2.在DomO中加载TPM后端驱动。在打过Xen补丁的linux内核中通过make menuconfig开启domO对TPM后端驱动的支持,然后重新编译内核,并配置好开机启动项。 重启后,使用modrpobe tpmbk命令加载TPM后端驱动,此时会自动生成TPM驱动设备文件: /dev/vtpm〇
[0161] C3.配置并编译 xen 使其支持 vTPM Manager、vTPM、与 νΤΡΜ 迁移。开启 xen-4. 1· 0/ Config.mk 的 vtpm tools 工具,使其支持 vTPM Manager。在 tools/vtpm/Rules.mk 中 开启BUILD_EMULATOR=y,自动下载tpm emulator,并通过相应的emulator补丁,生成 νΤΡΜ。同时将 tools/vtpm_manager/manager/dmictl. c 中代码修改为 dmi_type=VTPM_ TYPE_MIGRATABLE,使νΤΡΜ实例能支持迁移功能。配置完成后,使用命令make tools ;make xen;make install-tools;make install-xen 重新安装 xen〇
[0162] C4.在 shell 中输入 Vtpm_manager 命令,启动 νΤΡΜ Manager 工具。νΤΡΜ Manager在启动的时候会先获取物理TPM的Ownership,然后生成Hotplug Listener、Vtpm Listener、Backend Linstener 三个监听线程。
[0163] C5.启动支持νΤΡΜ的虚拟机,在DomO生成与虚拟机绑定的νΤΡΜ实例。启动支 持νΤΡΜ的虚拟机,在DomO生成与虚拟机绑定的νΤΡΜ实例。在虚拟机的配置文件中添加 vtpm=[' instance=l, backend=0' ],当 DomO 执行 xm create 指令创建一个新的 DomU 时通过 执行相关脚本与xenstore进行读写操作,让Hotplug Listener得知有新的DomU启动。并 令经过改进后的 TPM Emulator 作为 νΤΡΜ,受 vTPM Manager 的控制。当 Hotplug Listener 得知有新的DomU启动时就创建一个νΤΡΜ实例,并与DomU绑定。
[0164] C6.在DomU内加载TPM前端驱动。在DomU内核中通过make menuconfig开启内核 图形化配置界面。在路径Device driver>Character device>TPM Devices 下设置 Xen TPM Interface为可加载模块,重新编译内核,并配置启动选项,重启系统后通过命令modprobe tpm_xenu 加载 TPM 前端驱动。通过命令 cat/sys/devices/xen/vtpm-〇/pcrs 可以查看 TPM 对应的PCR寄存器的值。
[0165] D .可信虚拟机迁移。在源端进行D2配置和目的端进行D1配置后,开始在源端对 可信虚拟机的内存、CPU状态、磁盘、νΤΡΜ状态进行迁移,并在目的端进行恢复。其中,D3-D4 完成内存、CPU状态、磁盘的迁移,D5-D7完成νΤΡΜ状态的迁移,D8在目的端恢复迁移的虚 拟机。
[0166] D1.在目的端的shell终端中执行vtpm_migratord命令,开启νΤΡΜ实例迁移守护 进程vtpm_migratord,该进程负责在目的端监听并相应νΤΡΜ实例数据的迁移。
[0167] D2.在源端检查hotplug脚本是否支持νΤΡΜ实例迁移。为了支持νΤΡΜ 实例迁移,需要通过修改/etc/xen/xend-config. sxp中的外部迁移工具选项, (external-migration-tool/etc/xen/scripts/external-device-migrate),获取夕卜部 迁移工具external-device-migrate,使虚拟机迁移在停机拷贝期间能自动调用vtpm_ migrator命令完成νΤΡΜ实例的迁移。若Hotplug脚本不支持νΤΡΜ实例迁移,将无法继续 之后的步骤。因此需要修改Hotplug脚本以使其能够支持νΤΡΜ的实例迁移。
[0168] D3.循环迭代拷贝虚拟机内存脏页到目的主机。在shell终端中输入xm migrate-1 serverl2. 12. 12. X 后相关的 python 脚本会调用 xc_domain_save 进程,将虚拟 机内存脏页的循环迭代传送到目的虚拟机中,目的端由xc_domain_restore进程对传送的 内存数据进行处理。当达到循环迭代拷贝停机条件时,虚拟机结束循环迭代拷贝,并进入停 机拷贝阶段。
[0169] D4.虚拟机进入停机拷贝极端后,xc_domain_save对剩余脏页、CPU状态、磁盘文 件进行拷贝。xc_domain_sa Ve会先完成对剩余脏页的拷贝,然后对CPU状态进行拷贝。对 磁盘文件的拷贝需要在xc_domain_save添加对Qcow磁盘文件传送的功能,同时目的端在 xc_domain_restore添加对Qcow文件接收的功能。
[0170] D5.停机拷贝后,激发νΤΡΜ迀移。在D4进行的同时,xc_domain_save会将虚拟机 的停机状态存储到xenstore中,DomO中会有一个守护进程一直监听虚拟机的状态,一旦状 态变为停机状态时,会开始对νΤΡΜ实例进行迀移。
[0171] D6. νΤΡΜ 迁移被激活后,调用脚本 vtpm-impl. sh 执行 vtpm_migratorl2. 12. 12. X server81命令,完成νΤΡΜ迀移的stepl:沟通迀移密钥。Vtpm-impl. sh脚本将相应的参 数传递给vtpm_migrator,vtpm_migrator向目的端的vtpm_migratord守护进程申请νΤΡΜ 迀移密钥。目的端的vtpm_migratord通过给本地的vtpm_manager发送VTPM_0RD_GET_ MIG_KEY命令获取迀移密钥,并返还给源端的vtpm_migrator。Vtpm_migrator通过向本地 vtpm_manager发送VTPM_0RD_L0AD_MIG_KEY加载目的端迀移密钥(其中νΤΡΜ实例号8通过 xenstore-ls | grep instance 查询获取)。
[0172] D7. νΤΡΜ迀移stepl完成后,会继续调用vtpm-impl. sh脚本执行vtpm_ migratorl2. 12. 12. X server82 完成 νΤΡΜ 迁移的 step2 :传送 νΤΡΜ 状态数据。Vtpm-impl. sh脚本会将相应的参数传递给vtpm_migrator,vtpm_migrator会向本地的vtpm_manager 发送VTPM_0RD_MIGRATE_0UT命令要求vtpm_manager对实例8停止运行,并对实例的状态 数据打包返回给vtpnunigratoi^Vtpmjnigrator发送νΤΡΜ实例状态数据给目的端的vtpm_ migratord。vtpm_migratord 通过向本地 vtpm_manager 发送 VTPM_ORD_MIGRATE_IN 解包并 加载νΤΡΜ状态数据,并启动νΤΡΜ实例。
[0173] D8.在目的端恢复迀移过来的虚拟机,发送消息对源端虚拟机及νΤΡΜ实例进行销 毁。
[0174] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1. 一种广域网可信虚拟机的安全迁移方法,其特征在于,包括: 步骤1,在广域网上部署两个数据中心,该两个数据中心之间通过建立两层桥接模式的 虚拟专用网络进行网络连接,其中每个数据中心的业务节点运行虚拟机; 步骤2,将所述虚拟机镜像文件拆分为模板和用户私有数据,并将其分别储存于所述两 个数据中心中的存储节点中,然后将每个数据中心的硬件资源虚拟化,以虚拟机的形式向 用户提供服务; 步骤3,在所述两个数据中心之间通过部署虚拟可信平台创建并启动支持νΤΡΜ的可信 虚拟机,并根据所述模板和用户私有数据生成与该可信虚拟机绑定的νΤΡΜ实例,然后加载 ΤΡΜ驱动; 步骤4,所述两个数据中心,一个作为源端,另一个作为目的端,根据所述νΤΡΜ实例对 源端和目的端进行配置后,在源端对可信虚拟机的内存、CPU状态、磁盘、νΤΡΜ状态进行迁 移,并在目的端进行恢复,实现ν Τ Ρ Μ和虚拟机的同步迁移。
2. 如权利要求1所述的广域网可信虚拟机的安全迁移方法,其特征在于,所述步骤1包 括: 步骤11,在数据中心之外的广域网中随机选择一个节点作为VPNserver,每个数据中 心选择一个节点作为VPNclient,所述VPNserver生成其建立服务和每个VPNclient请求连 接时的认证文件,其中所述VPNserver为VPN服务器,VPNclient为VPN客户端; 步骤12,在所述VPNserver的配置文件中设置参数,包括:TCP协议,tap设备,IP地址, 以及认证文件路径,之后启动VPNserver服务; 步骤13,所述每个数据中心选择一个节点作为VPNclient后将所述认证文件复制到该 节点,并在VPNclient的配置文件中设置参数,包括:VPNserver的IP地址,TCP协议,tap 设备,以及认证文件路径,之后启动VPNclient服务,所述VPNclient服务与VPNserver服 务连接; 步骤14,在所述每个VPNclient上启动虚拟网桥,并将其与相应的tap设备对接; 步骤15,所述每个数据中心除VPNclient之外的节点上设置默认路由作为该数据中心 的VPNclient的IP地址。
3. 如权利要求1所述的广域网可信虚拟机的安全迁移方法,其特征在于,所述步骤2包 括: 步骤21,每个数据中心的所有存储节点形成统一的挂载接口,在该挂载接口上创建分 布式文件系统的卷Volume,两个数据中心的Volume标记为Volumel、Volume2; 步骤22,将所述虚拟机镜像文件拆分为模板和用户私有数据,所述模板数据在用户请 求服务时动态生成; 步骤22,将所述模板和用户私有数据分别存储于Volumel、Volume2。
4. 如权利要求1所述的广域网可信虚拟机的安全迁移方法,其特征在于,所述步骤3包 括: 步骤31,在DomO中加载TPM前端驱动,生成设备文件/dev/tpmO ; 步骤32,在所述DomO中加载TPM后端驱动,生成设备文件/dev/vtpm ; 步骤33,配置并编译xen使其支持νΤΡΜ Manager、νΤΡΜ、及支持νΤΡΜ迁移; 步骤34,启动所述νΤΡΜ Manager,初始化监听线程; 步骤35,启动支持νΤΡΜ的可信虚拟机,在所述DomO生成与虚拟机绑定的νΤΡΜ实例; 步骤36,在启动的可信虚拟机中加载所述ΤΡΜ前端驱动。
5. 如权利要求1所述的广域网可信虚拟机的安全迁移方法,其特征在于,所述步骤4包 括: 步骤41,在目的端开启νΤΡΜ实例迁移守护进程; 步骤42,在源端检查Hotplug脚本是否支持νΤΡΜ实例迁移,如果不支持,修改Hotplug 脚本使其支持νΤΡΜ实例迁移,执行步骤43,若支持,直接执行步骤43 ; 步骤43,循环迭代拷贝虚拟机内存脏页到目的端; 步骤44,虚拟机进入停机拷贝阶段后,对剩余脏页、CPU状态、磁盘文件进行拷贝; 步骤45,停机拷贝后,激发νΤΡΜ迁移; 步骤46, νΤΡΜ迁移被激活后,调用脚本完成νΤΡΜ迁移的沟通迁移密钥; 步骤47, νΤΡΜ迁移调用沟通迁移密钥完成后,会继续调用脚本完成νΤΡΜ迁移的传送 νΤΡΜ状态数据; 步骤48,在目的端恢复迁移过来的虚拟机,并对源端虚拟机及νΤΡΜ实例进行销毁。
6. -种广域网可信虚拟机的安全迁移系统,其特征在于,包括: 建立连接模块,在广域网上部署两个数据中心,该两个数据中心之间通过建立两层桥 接模式的虚拟专用网络进行网络连接,其中每个数据中心的业务节点运行虚拟机; 拆分处理模块,将所述虚拟机镜像文件拆分为模板和用户私有数据,并将其分别储存 于所述两个数据中心中的存储节点中,然后将每个数据中心的硬件资源虚拟化,以虚拟机 的形式向用户提供服务; νΤΡΜ实例处理模块,在所述两个数据中心之间通过部署虚拟可信平台创建并启动支持 νΤΡΜ的可信虚拟机,并根据所述模板和用户私有数据生成与该可信虚拟机绑定的νΤΡΜ实 例,然后加载ΤΡΜ驱动; 迁移处理模块,所述两个数据中心,一个作为源端,另一个作为目的端,根据所述νΤΡΜ 实例对源端和目的端进行配置后,在源端对可信虚拟机的内存、CPU状态、磁盘、νΤΡΜ状态 进行迁移,并在目的端进行恢复,实现ν Τ Ρ Μ和虚拟机的同步迁移。
7. 如权利要求6所述的广域网可信虚拟机的安全迁移系统,其特征在于,所述建立连 接模块包括: VPNserver处理模块,在数据中心之外的广域网中随机选择一个节点作为VPNserver, 每个数据中心选择一个节点作为VPNclient,所述VPNserver生成其建立服务和每个 VPNclient请求连接时的认证文件,其中所述VPNserver为VPN服务器,VPNclient为VPN 客户; 参数设置模块,在所述VPNserver的配置文件中设置参数,包括:TCP协议,tap设备, IP地址,以及认证文件路径,之后启动VPNserver服务; VPNclient处理模块,所述每个数据中心选择一个节点作为VPNclient后将所述认证 文件复制到该节点,并在VPNclient的配置文件中设置参数,包括:VPNserVer的IP地址, TCP协议,tap设备,以及认证文件路径,之后启动VPNclient服务,所述VPNclient服务与 VPNserver服务连接; 虚拟处理模块,在所述每个VPNclient上启动虚拟网桥,并将其与相应的tap设备对 接; IP地址处理模块,所述每个数据中心除VPNclient之外的节点上设置默认路由作为该 数据中心的VPNclient的IP地址。
8. 如权利要求6所述的广域网可信虚拟机的安全迁移系统,其特征在于,所述拆分处 理模块包括: 接口处理模块,每个数据中心的所有存储节点形成统一的挂载接口,在该挂载接口上 创建分布式文件系统的卷Volume,两个数据中心的Volume标记为Volumel、Volume2; 拆分模块,将所述虚拟机镜像文件拆分为模板和用户私有数据,所述模板数据在用户 请求服务时动态生成; 存储模块,将所述模板和用户私有数据分别存储于Volumel、Volume2。
9. 如权利要求6所述的广域网可信虚拟机的安全迁移系统,其特征在于,所述νΤΡΜ实 例处理模块包括: 加载前端模块,在DomO中加载ΤΡΜ前端驱动,生成设备文件/dev/tpmO ; 加载后端模块,在所述DomO中加载TPM后端驱动,生成设备文件/dev/vtpm ; 配置处理模块,配置并编译xen使其支持vTPM Manager、νΤΡΜ、及支持νΤΡΜ迁移; 初始化模块,启动所述vTPM Manager,初始化监听线程; νΤΡΜ实例生成模块,启动支持νΤΡΜ的可信虚拟机,在所述DomO生成与虚拟机绑定的 vTPM实例; 加载处理模块,在启动的可信虚拟机中加载所述TPM前端驱动。
10. 如权利要求6所述的广域网可信虚拟机的安全迁移系统,其特征在于,所述迁移处 理模块包括: 进程开启模块,在目的端开启vTPM实例迁移守护进程; 检查处理模块,在源端检查Hotplug脚本是否支持vTPM实例迁移,如果不支持,修改 Hotplug脚本使其支持vTPM实例迁移,执行迭代处理模块,若支持,直接执行迭代处理模 块; 迭代处理模块,循环迭代拷贝虚拟机内存脏页到目的端; 拷贝处理模块,虚拟机进入停机拷贝阶段后,对剩余脏页、CPU状态、磁盘文件进行拷 贝; 激发迁移模块,停机拷贝后,激发VTPM迁移; 调用处理模块,vTPM迁移被激活后,调用脚本完成vTPM迁移的沟通迁移密钥; vTPM数据传送模块,vTPM迁移调用沟通迁移密钥完成后,会继续调用脚本完成vTPM迁 移的传送vTPM状态数据; 销毁处理模块,在目的端恢复迁移过来的虚拟机,并对源端虚拟机及vTPM实例进行销 毁。
【文档编号】H04L29/06GK104113574SQ201310138440
【公开日】2014年10月22日 申请日期:2013年4月19日 优先权日:2013年4月19日
【发明者】杨坤, 宋 莹, 孙毓忠 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1