首页> 中国专利> 最小化虚拟网络中的分组丢失的虚拟机迁移

最小化虚拟网络中的分组丢失的虚拟机迁移

摘要

方法和装置被提供来用于控制虚拟机从数据中心中的第一主机向第二主机的实时迁移。虚拟机管理器可以向虚拟网络中的至少一个主机分发将该虚拟机的客户地址映射到迁移的虚拟机的提供者地址的更新的映射策略。更新的映射策略使得该虚拟网络中的主机能够与迁移的虚拟机通信。更新的映射策略可以是阴影策略。该虚拟机管理器在该虚拟机的实时迁移完成前将该阴影策略传输到该虚拟网络中的主机并且由接收主机将该阴影策略维持在不活跃的状态中,直到该阴影策略被触发。该虚拟机管理器在实时迁移完成时通知该虚拟网络中的主机激活该阴影策略。

著录项

  • 公开/公告号CN103703729A

    专利类型发明专利

  • 公开/公告日2014-04-02

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201180072594.1

  • 申请日2011-10-11

  • 分类号H04L12/803(20130101);H04L29/02(20060101);G06F9/44(20060101);

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人陈慧;汪扬

  • 地址 美国华盛顿州

  • 入库时间 2024-02-19 23:36:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-28

    授权

    授权

  • 2015-07-01

    专利申请权的转移 IPC(主分类):H04L12/803 变更前: 变更后: 登记生效日:20150610 申请日:20111011

    专利申请权、专利权的转移

  • 2014-04-30

    实质审查的生效 IPC(主分类):H04L12/803 申请日:20111011

    实质审查的生效

  • 2014-04-02

    公开

    公开

说明书

技术领域

本发明涉及虚拟机从第一主机系统到第二主机系统的实时迁移,并且更加具体地涉及用于限制在虚拟机的实时迁移期间和之后分组丢失的方法和装置。

背景技术

数据中心可以包含几百或几千个通过高速交换机和路由器互连的服务器。云数据中心可以为多个客户提供诸如万维网应用、电子邮件服务、搜索引擎服务等等之类的各种服务。近年来,伴随着IT企业的大规模合并而成为数据中心枢纽和云计算服务提供者的出现,数据中心已经改变了计算。

虚拟机(VM)技术允许一个或多个操作系统或虚拟机同时运行在一个物理主机系统中。虚拟机技术的优点已经被广泛地认识到。这些优点的其中一个就是在单个主机系统上运行多个虚拟机的能力。

实时迁移允许运行的虚拟机从一个主机系统向另一个主机系统的传送而不明显中断正运行在该虚拟机中的操作系统。实时迁移的目标是避免正在运行的虚拟机的明显中断。但是,在实时迁移期间的一些分组丢失是可接受的。

存在虚拟机实时迁移的许多理由。这些理由包含当前主管(host)该虚拟机的主机系统上的负载的增加、在主机系统中错误的出现以及用于主管虚拟机的主机系统由于计划的或非计划的维护所导致的临时不可用。

在实时迁移期间希望维持正在迁移的虚拟机和其它虚拟机之间的活跃连接。在其中每个客户地址被映射到提供者地址的虚拟网络中,正在迁移的虚拟机的提供者地址的改变将导致分组被丢弃,因为其它虚拟机仍然具有陈旧的地址映射。在延长的时间段内的分组丢失将导致由于超时引起的连接断开。

发明内容

本发明提供用于控制虚拟机从数据中心中的第一主机向第二主机的实时迁移的方法和装置。在一些实施例中,虚拟机管理器将更新的映射策略高效地分发到虚拟网络中的至少一个主机,所述更新的映射策略将该虚拟机的客户地址映射到迁移的虚拟机的提供者地址。更新的映射策略使得在虚拟网络中的主机能够与迁移的虚拟机通信。

在一些实施例中,更新的映射策略是阴影策略。该阴影策略由虚拟机管理器在虚拟机的实时迁移完成前被传输到虚拟网络中的主机,并且由接收主机维持在不活跃的状态直到被触发。当实时迁移完成时虚拟机管理器可以通知虚拟网络中的主机激活该阴影策略。

接收阴影策略的主机使用当前的映射策略来与虚拟机通信,直到阴影策略被激活,并且在阴影策略被激活后使用该阴影策略来与虚拟机通信。在一些情况中,响应于从虚拟机管理器接收的实时迁移完成的通知来激活阴影策略。在其它情况中,主机响应于从迁移的虚拟机接收到匹配阴影策略的分组来激活该阴影策略。

在另外的实施例中,第一主机根据转发策略转发寻址到该虚拟机的分组,直到虚拟网络中的所有主机都已经接收更新的映射策略。当第一主机接收到如下通知,即:虚拟网络中的所有主机都已经接收到更新的映射策略时,转发策略被去激活。

在另外的实施例中,第一主机可以响应于从第三主机接收根据陈旧的映射策略发送的分组来请求虚拟机管理器向第三主机发送更新的映射策略。这些实施例执行根据“惰性推送”技术的反应性策略更新。

在另外的实施例中,响应于从迁移的虚拟机接收到与当前的映射策略不匹配的分组,第三主机可以请求虚拟机管理器发送更新的映射策略。这些实施例执行根据“惰性拉取”技术的反应性策略更新。

在另外的实施例中,第一主机可以直接向虚拟网络中的一个或多个其它主机发送更新的映射策略。更新的映射策略可以由第一主机响应于接收到不匹配更新的映射策略的分组而被发送,或者在虚拟网络中的其它主机中的一个请求时被发送。

根据本发明的一方面,提供了一种用于控制虚拟机从第一主机向第二主机的实时迁移的方法。该方法包括由虚拟机管理器确定该虚拟机将被从第一主机迁移到第二主机;以及由虚拟机管理器至少向包含该虚拟机的虚拟网络中的第三主机发送更新的映射策略,所述更新的映射策略将该虚拟机的客户地址映射到第二主机上的迁移的虚拟机的提供者地址。

根据本发明的另一方面,提供了一种用于控制虚拟机从第一主机向第二主机的实时迁移的方法。该方法包括由第三主机接收将该虚拟机的客户地址映射到第二主机上的迁移的虚拟机的提供者地址的阴影映射策略;第三主机使用当前的映射策略来与该虚拟机通信,直到该阴影映射策略被激活;以及第三主机在该阴影映射策略被激活后使用该阴影映射策略来与该虚拟机通信。

根据本发明的又一方面,提供了一种用于控制虚拟机从数据中心中的第一主机向第二主机的实时迁移的虚拟机管理器。该虚拟机管理器包括处理设备和用指令编码的存储设备,当该处理设备运行该指令时,该指令被配置成确定该虚拟机将被从第一主机迁移到第二主机,并且被配置成至少向包含该虚拟机的虚拟网络中的第三主机发送更新的映射策略,所述更新的映射策略将该虚拟机的客户地址映射到第二主机上的迁移的虚拟机的提供者地址。

附图说明

为了更好地理解本发明,参考本文所结合的作为参考的附图,其中:

图1是数据中心的示意性框图,其图示了虚拟机的实时迁移;

图2是实时迁移的简化时间线;

图3是实时迁移的简化时间线,其图示了映射策略更新;

图4是数据中心的示意性框图,其图示了转发分组传递;

图5是图示了转发分组传递的流程图;

图6是数据中心的示意性框图,其图示了反向隧道;

图7是图示了反向隧道的流程图;

图8是数据中心的示意性框图,其图示了阴影映射策略的使用;

图9是虚拟机管理器在指配(provisioning)阴影映射策略时执行的过程的流程图;

图10是第三主机在利用阴影映射策略时执行的过程的流程图;

图11是数据中心的示意性框图,其图示了根据惰性推送技术的反应性策略更新;

图12是图示了根据惰性推送技术的反应性策略更新的流程图;

图13是数据中心的示意性框图,其图示了根据惰性拉取技术的反应性策略更新;

图14是图示了根据惰性拉取技术的反应性策略更新的流程图;

图15是主机和虚拟机的示意性框图;以及

图16是计算设备的实施例的示意性框图。

具体实施方式

图1示出了结合本发明的特征的数据中心的简化示意性框图。数据中心10可以包含由数据中心网络架构20互连的第一主机12、第二主机14和第三主机16。如本文所使用的,术语“主机”指物理机器,典型地为服务器或其它计算设备,如例如在图16中示出的以及下文所描述的。数据中心10进一步包含虚拟机管理器22。在虚拟机管理器22的任务中包含控制虚拟机的实时迁移,如下文所述。

在数据中心10中的每个主机可以主管一个或多个虚拟机(VM),所述一个或多个虚拟机可以包含能够独立于其它虚拟机运行应用的完整操作系统。如图1所示,第一主机12主管虚拟机30、32和34,第二主机14主管实时迁移后的虚拟机30m,并且第三主机16主管虚拟机40、42和44。如下文所讨论的,通过实时迁移将虚拟机30从第一主机12传送到第二主机14。

在数据中心10中的每个主机都可以包含将数据分组路由到该主机中的虚拟机和将来自该主机中的虚拟机的数据分组进行路由的交换机。在单个虚拟机的情况下,可以不需要交换机。每个虚拟机可以包含网络适配器,其用于经由它驻留的主机的外部通信。每个主机进一步包含用于控制实时迁移、用于更新映射策略表、和用于如下文所述的分组转发、以及与本发明无关的其它任务的软件。

在图1的示例中,虚拟机30、32和40是第一虚拟网络或隔离组的一部分,并且虚拟机34、42和44是第二虚拟网络或隔离组的一部分。这两个虚拟网络可以对应于该数据中心的两个不同客户并且彼此隔离,即使这两个虚拟网络的虚拟机可能由相同主机主管。

如图1进一步所示,每个虚拟机与客户地址AA(应用地址)和提供者地址LA(位置地址)相关联。客户地址AA对应于该虚拟机的IP地址,并且提供者地址LA对应于该虚拟机在主机之一中的物理位置。作为实时迁移的结果,提供者地址LA改变,而客户地址AA保持固定。因此,例如,在第一主机12中的虚拟机32具有客户地址AA2和提供者地址LA2。在不同虚拟网络中的两个或更多虚拟机可以具有相同的客户地址AA,但是每个虚拟机的提供者地址LA是唯一的。客户地址AA2和提供者地址LA2一起形成地址对AA2:LA2,其定义了用于虚拟机32的映射策略。该映射策略被用于虚拟网络中的虚拟机之间的通信,如下文所讨论的。

用于虚拟网络的许多映射策略可以被分成群组来形成虚拟网络策略,比如在图1中示出的虚拟网络策略50等等。策略50驻留在第一主机12中并且与第一虚拟网络相关联,该第一虚拟网络包含虚拟机30、32和40并且还可以包含其它虚拟机(未示出)。策略50中的每个条目包含包括虚拟机的客户地址AA和提供者地址LA的映射策略。该虚拟网络策略中的每个条目都可以按需要包含附加信息。如图1进一步所示,第二主机14包含虚拟网络策略52,第三主机16包含虚拟网络策略54,并且虚拟机管理器22包含虚拟网络策略56。在没有实时迁移时,策略50、52和54含有当前的映射信息。在下文中讨论结合实时迁移的策略更新。将理解的是每个虚拟网络策略可以具有含有映射信息的诸如表格之类的任何结构。

如上文所指出的,虚拟网络策略50包含用于第一虚拟网络中的每个虚拟机的映射策略。附加虚拟网络策略对应于附加虚拟网络。例如,在第一主机12中和在第三主机16中的分离的策略含有用于包含虚拟机34、42和44的第二虚拟网络的映射策略。

如图1进一步所示,虚拟机30被实时迁移按照箭头48所指示的从第一主机12传送到第二主机14而成为迁移的虚拟机30m。实时迁移允许正在运行的虚拟机从一个主机传送到另一个主机而不明显中断该虚拟机的工作。实时迁移可以由虚拟机管理器22控制。

在图2中示出实时迁移的简化时间线。在时间60做出迁移请求。实时迁移包含迁移建立、客户存储器(guest memory)传送和状态传送。实时迁移技术的细节在本领域中是已知的,因此不对其进行详细描述。在迁移建立和客户存储器传送期间,虚拟机30运行在第一主机12(源主机)上,如图2中上方的线条62所指示。在状态传送期间,该虚拟机的操作被打断。然后,状态传送一经完成,迁移的虚拟机30m就运行在第二主机14(目标主机)上,如图2中较低的线条64所指示。在时间66实时迁移完成。

当虚拟机运行在目标主机上时(如线条64所指示),该虚拟机能够发送和接收分组。但是,该虚拟网络中的一些或全部主机可能具有过时或陈旧的映射策略。具体地,迁移的虚拟机30m的客户地址AA1保持不变,但是迁移的虚拟机30m的提供者地址在图1的示例中从提供者地址LA1改变为提供者地址LA18。虚拟机30m的新的提供者地址LA18必须被反映在该虚拟网络的每个主机的策略表中以便避免分组丢失。在一个示例中,第三主机16中的虚拟机40可试图通过使用策略表54中陈旧的映射策略向在提供者地址LA1处的虚拟机30发送分组。在没有如下文所描述的分组转发时,该分组将会被丢失。在另一个示例中,由迁移的虚拟机30m从物理地址LA18向第三主机16中的虚拟机40发送的分组可能会被第三主机16丢弃,因为所接收的分组不匹配策略表54中陈旧的映射策略。

因此,在该虚拟网络中的每个主机中的映射策略被更新来反映实时迁移。如图3所示,当前的映射策略在实时迁移期间保持有效,至少直到在时间66实时迁移完成。实时迁移在时间66一经完成,更新的映射策略就可以生效。但是,由于网络延迟和其它因素,实时迁移一经完成就立即完成策略更新是不可行的。因此,经历陈旧的策略时期70,在此期间执行策略更新。当策略更新在时间72完成时,可以再继续常规的操作。希望限制陈旧的策略时期70的长度以便限制分组丢失。

在图1的示例中,第一主机12可以被看作用于实时迁移的源主机,并且第二主机14可以被看作目标主机。将理解的是虚拟机可以经受多于一次的实时迁移,并且不同的虚拟机可以经受不同次数的实时迁移。在虚拟网络的主机中的映射策略被更新来反映每次实时迁移。用箭头58来图示在虚拟机管理器22中虚拟网络策略56的更新,其中映射策略AA1:LA1被更新的映射策略AA1:LA18替换。

图4是数据中心10的简化示意图,其图示了跟随在虚拟机30的实时迁移之后的转发分组传递。在图4中,出于简化的目的,第二虚拟网络的虚拟机已经被省略。图5是针对转发分组传递的过程的流程图。在图4中,假设第一主机12的虚拟网络策略50、第二主机14的虚拟网络策略52和虚拟机管理器22的虚拟网络策略56已经被更新来反映虚拟机30从第一主机12到第二主机14的实时迁移。第三主机16中的虚拟网络策略54是陈旧的,即还没有被更新来反映虚拟机30的实时迁移。

参考图5,在动作100中执行虚拟机30从第一主机12向第二主机14的实时迁移。在动作102中,第三主机16中的虚拟机40向虚拟机30发送分组(图4中的箭头(1))。虚拟机40使用虚拟机30的客户地址AA1。该分组包含指示在客户地址AA3处的虚拟机正在向在客户地址AA1处的虚拟机发送分组的地址字段。第三主机16根据策略表54中的陈旧的映射策略将虚拟机30的客户地址转换成提供者地址LA1。该分组包含指示在提供者地址LA4处的虚拟机正在向在提供者地址LA1处的虚拟机发送分组的地址字段。该分组由第三主机16再次根据策略表54中的陈旧的映射策略被发送到第一主机12(图4中的箭头(2)),所述陈旧的映射策略没有反映虚拟机30从第一主机12向第二主机14的迁移。

在动作104中,第一主机12将从第三主机16接收的分组识别为已经根据陈旧的映射策略被发送。作为响应,第一主机12修改所接收的分组的地址字段来反映迁移的虚拟机30m的提供者地址LA18并且使用转发策略将所接收的分组转发到第二主机14(图4中的箭头(3)),该转发策略直到所有的映射策略都已经被更新之前有效。在动作108中,第二主机14翻译所接收的分组的目的地地址并且将该分组路由到迁移的虚拟机30m(图4中的箭头(4))。由虚拟机30接收的分组的地址字段指示该分组从具有客户地址AA3的虚拟机40接收。

在动作110中,第一主机12确定更新的映射策略是否已经被虚拟网络中的所有主机接收。这可以例如基于从虚拟机管理器22接收的通知确定。第一主机12继续转发寻址到迁移的虚拟机30m的分组,直到虚拟网络中的所有主机都已经被更新。可以从第三主机16或从虚拟网络中的其它主机(未示出)接收分组。在动作112中,当虚拟网络中的所有主机都已经接收更新的映射策略,第一主机12使转发策略去激活。

图6是数据中心10的简化示意性框图,其图示了跟随在实时迁移之后的通过反向隧道的转发。图6中的数据中心10的组件对应于图4中示出的数据中心10的组件。在图7中示出反向隧道的流程图。假设第一主机12、第二主机14和虚拟机管理器22具有反映虚拟机30从第一主机12向第二主机14的迁移的更新的映射策略。在第三主机16的虚拟网络策略54中的映射策略是陈旧的并且没有反映虚拟机30的迁移。

在动作150中,第一主机12和第二主机14确定虚拟机30已经从第一主机12迁移到第二主机14。但是,第一主机12和第二主机14还没有接收到该虚拟网络中的所有主机中映射策略已经被更新的通知。在动作152中,迁移的虚拟机30m向第三主机16中的虚拟机40发送分组(图6中的箭头(1))。该分组的地址字段指示该分组从迁移的虚拟机30m的客户地址AA1寻址到虚拟机40的客户地址AA3。在动作154中,在实时迁移之前,第二主机14添加迁移的虚拟机30m的提供者地址LA18和虚拟机30的提供者地址LA1。从而该分组被第二主机14通过使用反向隧道策略发送到在提供者地址LA1处的第一主机12(图6中的箭头(2)),该反向隧道策略直到所有的虚拟网络策略都已经被更新之前是有效的。

在动作156中,第一主机12翻译从第二主机14接收的分组的目的地地址来提供从虚拟机30的客户地址AA1寻址到虚拟机40的客户地址AA3的分组(图6中的箭头(3))。然后使用陈旧的映射策略将该分组路由到该目的地地址(图6中的箭头(4))。具体地,该分组的地址字段被修改来反映虚拟机30的旧的提供者地址LA1和虚拟机40的提供者地址LA4。该分组从第一主机12被发送到第三主机16(图6中的箭头(5))并且被识别为匹配虚拟网络策略54中的陈旧的映射策略。然后第三主机16将该分组传递到虚拟机40(图6中的箭头(6))。根据陈旧的映射策略第三主机16所接收的分组看起来似乎已经从第一主机12中的虚拟机30被接收并且该分组被接受。相反地,如果第三主机16所接收的分组已经从第二主机14中的物理地址LA18接收,该分组将因为不匹配之后有效的陈旧的映射策略而被丢弃。

在动作158中,第一主机12和第二主机14确定更新的映射策略是否已经被虚拟网络中的所有主机接收。这可以例如基于从虚拟机管理器22接收的通知来确定。,该过程返回到动作152来继续反向隧道操作,直到该虚拟网络中的所有主机都已经接收更新的映射策略。如果第一主机12和第二主机14确定更新的映射策略已经被所有主机接收,该反向隧道策略在动作160中被去激活。

图8是数据中心10的简化示意性框图,其图示了阴影映射策略的使用。图8中的数据中心10的组件对应于图4中示出的数据中心10的组件。在图9中示出虚拟机管理器22对阴影映射策略的使用的流程图。在图10中示出第三主机16对该阴影映射策略的使用的流程图。

参考图9,其示出虚拟机管理器22的操作。在动作200中,虚拟机管理器22确定虚拟机30需要从第一主机12向第二主机14实时迁移。在一些实施例中,虚拟机管理器22引导第一主机12和第二主机14来执行虚拟机30的实时迁移。在其它实施例中,实时迁移可以在第一主机12和第二主机14的控制下被执行。在任一种情况下,虚拟机管理器22意识到迁移期间的事件,该事件包含但不限于实时迁移的启动和实时迁移的完成。

在动作202中,虚拟机管理器22向包含虚拟机30的虚拟网络中的主机发送阴影映射策略(图8中的箭头(1))。该阴影映射策略没有被发送到该虚拟网络外部的任何主机。该阴影映射策略(出于简化的目的,被称作“阴影策略”)是这样一种映射策略,其在实时迁移完成之后限定了虚拟机30的客户地址AA和虚拟机30的提供者地址LA之间的映射。在图8的示例中,阴影策略190包含客户地址AA1和提供者地址LA18,并且被表示为AA1:LA18。阴影策略190当被发送到虚拟网络主机时被虚拟机管理器22标识为由每个主机存储但是直到被触发前都不被利用的阴影策略。例如,该阴影策略可以包含指示该策略是阴影策略的阴影策略标记。每个主机存储该阴影策略并且将所存储的阴影策略标识为是不活跃的。

在动作204中,虚拟机管理器22指令第一主机12和第二主机14执行虚拟机30的实时迁移(图8中的箭头(2))。在动作206中,第一主机12和第二主机14执行如图2所示并在上文描述的虚拟机30的实时迁移(图8中的箭头(3)和(4))。虚拟机管理器22对实时迁移的控制程度可以在本发明的范围内变化。

在步骤208中,虚拟机管理器22接收虚拟机30的实时迁移完成的通知(图8中的箭头(5))。该完成对应于图3中的时间66。直到实时迁移完成之前,该虚拟网络中的每个主机都使用它当前的映射策略来与虚拟机30通信并且将阴影策略190维持在不活跃的状态中。

在动作210中,虚拟机管理器22向该虚拟网络中的主机发送通知来触发阴影策略190(图8中的箭头(6))。触发该阴影策略的通知一经接收,每个主机就停止使用当前的映射策略并且开始使用该阴影策略来与迁移的虚拟机30m通信。如果实时迁移失败,虚拟机管理器22可以将失败通知给该虚拟网络中的主机。主机移除该阴影策略并且继续使用当前的映射策略。

虚拟机管理器22优选地在实时迁移完成之前在动作202中向虚拟网络中的主机发送该阴影策略。这使得该阴影策略能够在实时迁移一经完成就相对快速地被触发。将理解的是虚拟机管理器22可以在它变得意识到正在被迁移的虚拟机的新的物理地址之后的任何时间向虚拟网络中的主机发送该阴影策略。

图10示出第三主机16在使用阴影策略中执行的过程。在动作250中,第三主机16从虚拟机管理器22接收阴影策略190。如上文所指示的,阴影策略190包含实时迁移后虚拟机30的客户地址AA1和提供者地址LA18。阴影策略190使得能够实现在实时迁移完成之后与迁移的虚拟机30m的通信。阴影策略190被第三主机16例如存储在虚拟网络策略54中,但是被标识为是不活跃的。

在动作252中,第三主机继续使用当前的映射策略与虚拟机30通信,当前的映射策略将虚拟机30映射到第一主机12中的提供者地址LA1。在此期间由虚拟机40发送到虚拟机30的分组可以被第一主机12转发,如上文所述。

在动作254中,第三主机16接收触发来激活阴影策略190。在一些情况下,激活阴影策略190的触发可以从虚拟机管理器22接收。该触发可以以来自虚拟机管理器22的通知的形式来激活阴影策略190。在其它情况下,当第三主机16接收匹配阴影策略190的分组时,阴影策略190被自动激活。在没有阴影策略190时,该分组将被丢弃,但是该阴影策略准许所接收的分组被接受。在这些情况下,所接收的分组充当在所谓的反应性激活中激活阴影策略的触发。也就是说,主机通过激活阴影策略并且去激活现在陈旧的当前映射策略来对匹配该阴影策略的所接收的分组作出反应。如果触发没有被接收,针对该阴影策略的期满时间的流逝导致该阴影策略从第三主机16的移除。在这种情况下,第三主机16继续使用当前的映射策略。

阴影策略可以由反应性激活来激活或者响应于虚拟机管理器22的通知而被激活。反应性激活使得虚拟机管理器22的通知对时间要求不高。此外,一旦源主机已经激活阴影策略,转发策略不再被需要来用于源主机和目的地主机之间的特定路径。典型地,反向隧道策略不与阴影策略一起使用,这是因为反向隧道会阻碍阴影策略的反应性激活。在其中存在从迁移的虚拟机到特定主机的分组通信量的情况下,阴影策略被该主机响应于从迁移的虚拟机对分组的接收而自动激活,从而避免分组丢失并消除虚拟机管理器22的通知的需要。在其中不存在从迁移的虚拟机到特定主机的分组通信量的情况下,该虚拟机管理器可以向该主机发送通知来激活它的阴影策略。但是,在没有分组通信量时,该通知对时间要求不高。

在动作256中,第三主机16用阴影策略190替换用于虚拟机30的当前的映射策略。第三主机16有效地去激活当前的映射策略并且激活关于迁移的虚拟机30m的阴影映射策略。在动作258中,第三主机16使用激活的阴影策略与迁移的虚拟机30m通信。

阴影策略机制被建立在参与指定的虚拟网络(或隔离组)的所有主机或者在实时迁移后将参与该虚拟网络的主机上。主管虚拟网络中的一个或多个虚拟机的每个主机已经具有将客户地址与提供者地址相关联的当前策略。那些主机中的每一个现在被提供有将迁移的虚拟机的客户地址与新的提供者地址相关联的阴影策略(尚未生效)。该阴影策略可以被手动地或者自动地触发来替换当前的策略。该阴影策略可以具有使用期限(TTL),如果在某一时间间隔之后未被激活,该使用期限允许它期满。该阴影策略还被给到接收正在迁移的虚拟机的新的主机。在新的主机的情况下,该阴影策略可以不替换现有的策略,因为新的主机可能还没主管该虚拟网络的成员。

下文是阴影策略的特殊情况。在第一种特殊情况中,被迁移的虚拟机可以是在所关心的虚拟网络中的源主机(第一主机12)上的仅有的虚拟机。在迁移后,该源主机在该虚拟网络中不再具有虚拟机。当当前的策略期满时,它不能直接被阴影策略替换,因为该源主机将不再需要用于该虚拟网络的策略。第二种特殊情况发生在阴影策略被应用于新的主机时。在这种情况下,阴影策略不具有要遮蔽的当前策略。该阴影策略仅仅当被触发时才生效。

当阴影策略被应用于用于实时迁移的源主机(第一主机12)时,转发策略被创建。转发策略的目的是将寻址到旧的物理地址处的虚拟机的分组通信量转发到新的物理地址。这确保在实时迁移之后在可到达性中不出现缝隙。转发策略可以是源主机上的阴影策略的一部分。阴影策略一在源主机中被触发,转发策略就生效并且保持有效,直到虚拟网络中的所有主机都已经激活该阴影策略。

当诸如实时迁移之类的快速转移发生时,源主机被告知作为该过程的一部分。目标主机(第二主机14)将开始从源主机接收分组并且能够立即激活阴影策略。例如虚拟机40和迁移的虚拟机30m之间的通信导致分组从该源主机被转发到该目标主机。

当从迁移的虚拟机30m向虚拟机40发送回复时,该分组从新的提供者地址LA18被发送到该发送者(不使用反向隧道)。当虚拟机40的第三主机16接收入站分组时,不存在允许来自在提供者地址LA18处的虚拟机30的分组的活跃策略。相反地,第三主机16具有允许来自提供者地址LA1的分组的策略。但是,阴影策略确实允许来自在提供者地址LA18处的迁移的虚拟机30m的分组。该分组的接收自动地触发阴影策略以替换当前的策略。从虚拟机40到虚拟机30的后续分组使用迁移的虚拟机30m的新的提供者地址LA18。这种自动的策略替换最小化了在活跃会话中转发策略的使用,从而降低了网络的利用、堵塞和可能的错误。

并不是所有的策略替换都可以是自动的。存在一些单向的通信模式,比如UDP通告等等。响应消息的缺乏妨碍了自动的替换。而且,一些虚拟机对将不从事于任何独白或对话,所以自动的替换是不可能的。在这种情况下,虚拟机管理器22能够在实时迁移已经完成后触发策略替换。这种触发对时间要求不高并且可以被错开。当阴影策略已经替换虚拟网络的所有主机上的当前策略时,转发策略可被去激活。

在图11和12中示出根据本发明的另外的实施例的策略更新。图11是数据中心12的简化示意性框图,其图示了根据惰性推送技术的反应性策略更新。图11中的数据中心10的组件对应于图4中示出的数据中心10的组件,除了出于简化的目的已经省略了数据中心网络架构20。在图12中示出根据惰性推送技术的反应性策略更新的流程图。假设第一主机12、第二主机14和虚拟机管理器22具有反映虚拟机30从第一主机12到第二主机14的迁移的更新的映射策略。第三主机16的策略表54中的映射策略是陈旧的,并且不反映虚拟机30的迁移。

在动作300中,确定虚拟机30从第一主机12向第二主机14的实时迁移完成。在动作302中,第三主机16中的虚拟机40使用策略表54中的陈旧的映射策略发送寻址到虚拟机30的分组(图11中的箭头(1))。在动作304中,第一主机12接收从第三主机12中的虚拟机40发送并寻址到虚拟机30的分组(图11中的箭头(2))。但是,虚拟机30已经迁移到第二主机14。第一主机12可以执行如上文结合图4和5描述的分组转发。

在动作306中,第一主机12将陈旧的策略事件通知虚拟机管理器22,即根据陈旧的映射策略从第三主机16接收分组(图11中的箭头(3))。在动作308中,虚拟机管理器22向第三主机16发送策略更新(图11中的箭头(4))来更新它的映射策略以反映迁移的虚拟机30m。在动作310中,第三主机16更新它的映射策略并且此后根据更新的映射策略与迁移的虚拟机30m通信。

图13是数据中心10的简化示意性框图,其图示了根据惰性拉取技术的反应性策略更新。图13中的数据中心10的组件对应于图4中示出的数据中心10的组件,除了出于简化的目的已经省略了数据中心网络架构20。假设第一主机12、第二主机14和虚拟机管理器22具有反映虚拟机30从第一主机12向第二主机14的迁移的更新的映射策略。在第三主机16中的策略表54中的映射策略是陈旧的,并且不反映虚拟机30的迁移。

在动作350中,确定虚拟机30从第一主机12向第二主机14的实时迁移完成。在动作352中,第二主机14中的迁移的虚拟机30m使用更新的映射策略向第三主机16中的虚拟机40发送分组(图13中的箭头(1))。在动作354中,第三主机16从第二主机14中的迁移的虚拟机30m接收分组(图13中的箭头(2))。

在动作356中,第三主机16将到来的分组识别为不匹配策略表54中的映射策略。然后第三主机16将陈旧的策略事件通知虚拟机管理器22(图13中的箭头(3))。在动作358中,虚拟机管理器22向第三主机16发送用于迁移的虚拟机30m的策略更新(图13中的箭头(4))。在动作360中,第三主机16更新用于迁移的虚拟机30m的映射策略并且此后根据更新的映射策略接受来自迁移的虚拟机30m的分组。

已经结合虚拟机从一个提供者地址向另一个提供者地址的实时迁移描述了本发明。但是,可以结合虚拟机从一个提供者地址向另一个提供者地址的任何快速转移来利用本发明。

图15是根据本发明的实施例的第一主机12和虚拟机30的示意图。第一主机12可以包含虚拟化模块400、VM交换机402、存储设备404和物理NIC(网络接口卡)406。虚拟机30可以包含VM NIC 420、IP(互联网协议)模块422、TCP(传输控制协议)模块424和用户应用430。

虚拟化模块400可以控制如本文所描述的去往虚拟机30和来自虚拟机30的通信,其包含但不限于实现和更新被含在存储设备404中的虚拟网络策略、实现阴影策略和阴影策略激活、实现转发策略、实现反向隧道策略、实现惰性推送技术以及实现惰性拉取技术中的一个或多个。存储设备404含有一个或多个虚拟网络策略,并且VM交换机402将分组路由到第一主机12主管的虚拟机30和其它虚拟机,并将来自所述虚拟机30和其它虚拟机的分组进行路由。将理解的是在本发明的范围内,第一主机12可以具有不同的配置并且数据中心10中的其它主机可以具有相同或不同的配置。

本发明可用许多其它的通用或专用计算系统环境或配置来操作。可能适合与本发明一起使用的公知的计算系统、环境、和/或配置的示例包含但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微型计算机、大型计算机、包含任何上述系统或设备的分布式计算环境等等。

可以在由计算机运行的诸如程序模块之类的计算机可执行指令的一般上下文中描述本发明。一般而言,程序模块包含例程、程序、对象、组件、数据结构等等,它们执行特定任务或实现特定抽象数据类型。本发明还可以在分布式计算环境中实施,在该环境下由通过通信网络链接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包含存储器存储设备的本地和远程计算机存储媒体二者中。

参考图16,用于实现本发明的示例性系统包含以计算机1010形式的通用计算设备。图16的计算设备可以被用于实现本文所描述的主机、虚拟机管理器和任何其它的计算设备。计算机1010的组件可以包含但不限于处理单元1020、系统存储器1030以及将包含系统存储器的各种系统组件耦合到处理单元1020的系统总线1021。系统1021可以是若干类型的总线结构中的任何一种,包含使用各种总线结构体系中的任何一种的存储器总线或存储器控制器、外围总线以及局部总线。作为示例而非限制,这样的结构体系包含工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外围组件互连(PCI)总线(也被称为夹层总线(Mezzanine bus))。

计算机1010典型地包含各种计算机可读媒体。计算机可读媒体可以是能够由计算机1010访问的任何可用媒体,并且包含易失性和非易失性媒体、可拆除和不可拆除媒体。作为示例而非限制,计算机可读媒体可以包括计算机存储媒体。计算机存储媒体包含以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的易失性和非易失性、可拆除和不可拆除的媒体。计算机存储媒体包含但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或能够被用于存储想要的信息并且能够由计算机1010访问的任何其它介质。任何上述的组合也应当被包含在计算机可读存储媒体的范围内。

系统存储器1030包含诸如只读存储器(ROM)1031和随机存取存储器(RAM)1032之类的以易失性和/或非易失性存储器形式的计算机存储媒体。含有诸如在启动期间帮助计算机1010内的各元件间传送信息的基本例程的基本输入/输出系统1033(BIOS)典型地被存储在ROM 1031中。RAM 1032典型地含有可由处理单元1020立即存取和/或目前正在运转的数据和/或程序模块。作为示例而非限制,图16图示了操作系统1034、应用程序1035、其它程序模块1036和程序数据1037。

计算机1010还可以包含其它可拆除/不可拆除、易失性/非易失性的计算机存储媒体。仅仅作为示例,图16图示了对不可拆除的非易失性磁性媒体进行读写的硬盘驱动器1040、对可拆除的非易失性磁盘1052进行读写的磁盘驱动器1051、以及对可拆除的非易失性光盘1056进行读写的光盘驱动器1055,可拆除的非易失性光盘1056例如是CD ROM或其它光学媒体。可用于示例性操作环境的其它可拆除/不可拆除、易失性/非易失性计算机存储媒体包含但不限于磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器1041典型地通过诸如接口1040之类的不可拆除的存储器接口连接到系统总线1021,并且磁盘驱动器1051和光盘驱动器1055典型地通过诸如接口1050之类的可拆除的存储器接口连接到系统总线1021。

图16中图示的以及上文所讨论的驱动器及其相关联的计算机存储媒体为计算机1010提供对计算机可读指令、数据结构、程序模块以及其它数据的存储。例如,在图16中,图示的硬盘驱动器1041存储操作系统1044、应用程序1045、其它程序模块1046和程序数据1047。应当指出的是这些组件可以与操作系统1034、应用程序1035、其它程序模块1036和程序数据1037相同或者不同。在这里以不同的数字给出操作系统1044、应用程序1045、其它程序模块1046和程序数据1047来图示出它们至少是不同的副本。

用户可以通过诸如键盘1062和通常被称为鼠标、轨迹球或触摸板的定点设备1061之类的输入设备向计算机1010输入命令和信息。其它输入设备可以包含麦克风1063、操纵杆、平板1064、圆盘式卫星电视天线、扫描仪等等。这些和其它输入设备通常通过耦合到系统总线的用户输入接口1060被连接到处理单元1020,而可能不是通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构被连接。还经由诸如视频接口1090之类的接口将监视器1091或其它类型的显示设备连接到系统1021。除了监视器之外,计算机还可以包含通过输出外围接口1095可连接的诸如扬声器1097和打印机1096之类的其它外围输出设备。

计算机1010可以工作在使用对诸如远程计算机1080之类的一个或多个远程计算机的逻辑连接的联网环境中。远程计算机1080可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且典型地包含上文关于计算机1010所描述的元件的许多或全部,虽然图15中仅仅图示了存储器存储设备1081。图16中描绘的逻辑连接包含局域网(LAN)1071和广域网(WAN)1073以及例如经由无线接口1098利用天线完成的无线链路,但是还可以包含其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。尽管所示出的无线接口1098直接连接到系统总线1021,但是应认识到无线接口1098可以经由网络接口1070连接到系统总线1021。

当使用在LAN联网环境中时,计算机1010通过网络接口或适配器1070连接到LAN 1071。当使用在WAN联网环境中时,计算机1010典型地包含调制解调器1072或其它装置来在诸如因特网之类的WAN 1073上建立通信。调制解调器1072(其可以是内部的或外部的)可以经由用户输入接口1060或其它适当的机制连接到系统总线1021。在联网环境中,关于计算机1010描绘的程序模块或其部分可以被存储在远程存储器存储设备中。作为示例而非限制,图16图示了驻留在存储器设备1081上的远程应用程序1085。将理解的是所示出的网络连接是示例性的,并且可以使用其它在计算机间建立通信链路的措施。

因此已经描述了本发明的至少一个实施例的若干方面,应理解的是,本领域技术人员将容易想到各种变更、修改和改进。

这样的变更、修改和改进都旨在作为本公开内容的一部分,并且意图在本发明的精神和范围内。因此,前文的描述和图仅仅作为示例。

本发明的上述实施例可以以许多方式中的任何一种实现。例如可以使用硬件、软件或其组合来实现实施例。当在软件中实现时,软件代码可以运行在无论是被提供在单个计算机中或者分布在多个计算机中的任何合适的处理器或处理器集合中。这样的处理器可以被实现为集成电路,其具有在集成电路组件中的一个或多个处理器。虽然如此,可以使用以任何合适格式的电路实现处理器。

另外,应当理解的是计算机可以被体现在许多形式中的任何一种中,例如安装在机架上的计算机、台式计算机、膝上型计算机或平板计算机等等。此外,计算机可以被嵌入在一般不被看作是计算机但是具有合适的处理能力的设备中,该设备包含个人数字助理(PDA)、智能电话或任何其它合适的便携式或固定电子设备。

而且,计算机可以具有一个或多个输入和输出设备。这些设备尤其可以被用来呈现用户接口。可以被用来提供用户接口的输出设备的示例包含用于输出的视觉呈现的打印机或显示屏,和用于输出的可听呈现的扬声器或其它声音产生设备。可以被用于用户接口的输入设备的示例包含键盘和诸如鼠标、触摸板之类的定点设备和数字化平板。作为另一个示例,计算机可以接收通过语音识别或以其它可听格式的输入信息。

这样的计算机可以通过诸如企业网络或因特网之类的包含局域网或广域网的任何合适形式的一个或多个网络互连。这样的网络可以是基于任何合适的技术,可以根据任何合适的协议工作,并且可以包含无线网络、有线网络或光纤网络。

而且,本文所概述的各种方法或过程可以被编码为在使用各种操作系统或平台的任何一个的一个或多个处理器上可执行的软件。此外,可以使用许多合适的编程语言和/或编程或脚本工具中的任何一种来编写这样的软件,并且这样的软件还可以被编译为运行在主机或虚拟机上的可执行机器语言代码或中间代码。

在这点上,本发明可以被体现为计算机可读存储介质(或多个计算机可读媒体)(例如计算机存储器、一个或多个软盘、压缩盘(CD)、光盘、数字视频盘(DVD)、磁带、闪速存储器、现场可编程门阵列中的电路配置或其它半导体设备、或其它非暂时性的有形计算机存储介质),其利用一个或多个程序编码,当在一个或多个计算机或其它处理器上运行时,执行实现上文所讨论的本发明的各种实施例的方法。该计算机可读存储介质或媒体可以是可运输的,使得存储在其上的该一个或多个程序可以被装载到一个或多个不同的计算机或其它处理器上来实现如上文所讨论的本发明的各种方面。如本文所使用的,术语“非暂时性的计算机可读存储介质”仅仅包含可以被看作是制造品(即制造的物品)或机器的计算机可读介质。可替换地或附加地,本发明可以被体现为除了计算机可读存储介质之外的诸如传播信号之类的计算机可读介质。

本文中的术语“程序”或“软件”在一般意义上被用来指可以被用于编程计算机或其它处理器以实现如上文所讨论的本发明的各种方面的任何类型的计算机代码或计算机可执行指令集。此外,应当理解的是根据该实施例中的一个方面,在被运行时执行本发明的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以标准组件的形式分布在许多不同的计算机或处理器中来实现本发明的各种方面。

计算机可执行指令可以以诸如程序模块之类的许多形式被一个或多个计算机或其它设备所运行。一般而言,程序模块包含执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。典型地,该程序模块的功能性可以按照所希望的被组合或分布在各种实施例中。

而且,数据结构可以以任何合适的形式被存储在计算机可读媒体中。出于简化图示的目的,数据结构可以被示出为具有通过在该数据结构中的位置关联的字段。这样的关系同样可以通过为在计算机可读介质中具有传达字段之间关系的位置的字段指派存储来达成。但是,可以使用任何合适的机制来建立数据结构的字段中的信息之间的关系,包含通过建立数据元素之间关联的指示器、标签或其它机制的使用。

本发明的各种方面可以单独地、组合地或以不特定于前文所描述的实施例中所讨论的各种布置被使用,并且因此它的应用不受限于在前文的描述中提及的或在图中图示的组件的细节和布置。例如,在一个实施例中描述的方面可以以任何方式与其它实施例中描述的方面组合。

而且,本发明可以被体现为方法,已经提供了该方法的一个示例。作为该方法的部分被执行的动作可以以任何合适的方式排序。因此,实施例可以被构建成其中的动作以不同于图示的顺序被执行,其可以包含同时执行一些动作,即使这些动作在图示的实施例中被示出为连续的动作。

在权利要求中用来修饰权利要求的元素的诸如“第一”、“第二”、“第三”等等之类的序数词的使用自身不暗示一个权利要求的元素相对于另一元素的任何优先级、优先次序或顺序或方法的动作被执行的时间顺序,而是仅仅被用作标签来将一个具有某一名字的权利要求的元素与具有相同名字的另一元素区分开(若非用作序数词)来区分权利要求的各元素。

而且,本文所使用的措辞和术语是出于描述的目的而不应当被看作是限制性的。在本文中“包含”、“包括”或“具有”、“含有”、“涉及”及其变形的使用意在包含此后被列出的项目及其等同物以及附加项目。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号