Windows Server “8” Hyper-V 网络虚拟化简介:在云环境中实现快速迁移和工作负荷隔离

我们都听说过服务器虚拟化所带来的灵活性。但是,我们与相关领域人士之间的对话,表明虚拟化的全部潜力还是远超出他们的承受能力范围。特别是缺少灵活的网络配置限制了您以合理的成本达到的灵活性。
 
Windows Server “8”是最优化的云操作系统,它在配置私有、混合和公共云解决方案方面提供了选择和灵活性。Bill Laing 在本篇博文(Windows Server “8” Beta 现已发布)中简要介绍了我们的一些关键投资,其中包括 Hyper-V 网络虚拟化。在本篇博文中,Sandeep Singhal(Windows 网络组总经理)和 Ross Ortega(Windows 网络组首席项目经理)介绍了云采用方面的一些问题,以及 Windows Server “8” 中的 Hyper-V 网络虚拟化如何解决这些难题。

谨启!– Jeffrey Snover

 

过去,我们花费了数年时间与客户探讨他们尚未向云环境部署工作负荷的原因。我们经常听到三个主要问题。首先,他们希望借助灵活的混合云解决方案逐渐开始将个别服务迁移到云环境。其次,迁移到云环境相当困难。它苦燥乏味、耗费时间,需要手动操作,而且易于出错。第三,客户对迁移到云环境的同时保持与其它租户隔离的能力表示担忧,私有云中的其它业务部门或公共云中的竞争对手同样如此。最后,无论您是构建自己的私有云,还是考虑使用公共云提供商,您都需要轻松管理,在任何地方灵活地部署虚拟机(既可以在云环境之中,也可以在云环境之外)以及隔离工作负荷。

网络灵活性:未履行的承诺
考虑到所有这些担忧,客户需要控制并灵活地将服务迁移到云环境,迁移到不同的云提供商,甚至将服务迁移回企业数据中心。但是,如今这是一项劳动相当密集的工作,原因在于将服务迁移到特定的云环境中时,云主机托管服务提供商要求客户更改服务的 IP 地址。这似乎是一个微小的部署细节,但证明 IP 不仅仅是一些由网络配置人员为寻址而任意分配的编号。IP 地址对企业还具有实实在在的语义含义。许多网络、安全、符合性和绩效策略包含并依赖于指定服务的实际 IP 地址。迁移到云环境意味着必须重新编写所有这些策略。当然,您必须首先查阅所有策略,然后与控制这些策略的不同组织进行协商和协调。如果想迁移到不同的云提供商,则新的主机托管服务提供商应分配不同的 IP 地址,而这又需要重新编写策略。当前的情况阻碍了许多客户和应用场景采用云技术。

客户希望Windows 在云环境中的服务与在内部数据中心中运行的服务相似,同时遵守现有的策略并与云托管环境中运行的其它虚拟机相隔离。当迁移到云环境时,客户希望他们的数据如同在自已的数据中心中运行一样孤立和安全。

总之,您需要能够在任何云环境中的任何服务器上运行任何服务。

我们认真对待这一反馈,并设计了一种称为 Windows Server “8”中的 Hyper-V 网络虚拟化的新技术,来为构建云数据中心的客户提供可扩展的、安全的多租户解决方案,并使客户更易于逐渐将网络基础设施迁移到私有、混合或公共云。正如我们将在后面描述的那样,Hyper-V 网络虚拟化建立在现有的 IETF 和 IEEE 标准的基础之上,提供与现有和未来网络设备、安全设备和操作流程的互操作性。 

Hyper-V 网络虚拟化:将服务器虚拟化应用于整个网络
对于传统的服务器虚拟化,每台物理主机被转换为如今可以在公共物理主机上运行的虚拟机 (VM)。每台虚拟机都可以在专用的硬件上运行,即使实际上共享所有资源 — 内存、CPU 和硬件外围设备。

网络虚拟化将服务器虚拟化的概念扩展到应用于整个网络。通过网络虚拟化,每个物理网络被转换为一个如今可以在公共物理网络上运行的虚拟网络。每个虚拟网络都可以在专用的网络上运行,即使实际上共享所有资源 - IP 地址、交换和路由。

Hyper-V 网络虚拟化允许客户在迁移到云环境时保留自己的内部 IP 地址,同时与其它客户的虚拟机相隔离 - 即使这些虚拟机恰好使用完全相同的 IP 地址。我们通过为每台虚拟机提供两个 IP 地址来实现这一目标。虚拟机中可见的一个 IP 地址在指定租户的虚拟子网环境中相关。遵循 IEEE 命名法,我们将此称为客户地址 (CA)。其它 IP 地址在云数据中心中的物理网络环境中相关。这称为提供商地址 (PA)。租户和数据中心 IP 地址的这种解耦具有许多优点。

第一个优点是可以将虚拟机迁移到云,而且无需修改虚拟机的网络配置和担心数据中心中的其它东西(或其他人)。您的服务可以继续照常工作。在本文最后引用的视频演示中,我们使用 traceroute(一种低级网络诊断工具)来说明本地服务如何与已迁移到云环境的服务透明地交互。我们强调的事实是,服务迁移到云之后,数据包即可利用一个额外的跃点到达云数据中心。虚拟子网成为近乎透明、扩展的企业数据中心。我们还为虚拟子网创建了安全加密的隧道。最终结果是,具有与连接到同一虚拟交换机的完全相同 IP 地址的不同客户被隔离。

 

想象一下上图中显示的红色虚拟机的 IP 地址为 10.1.1.7,而蓝色虚拟机的 IP 地址为 10.1.1.7。在此示例中,10.1.1.7 IP 地址是 CA IP 地址。通过为这些虚拟机分配不同的 PA IP 地址(例如 Blue PA = 192.168.1.10 和 Red PA = 192.168.1.11),不存在路由分歧的问题。我们通过策略将红色虚拟机限于仅与其它红色虚拟机进行交互,同样使蓝色虚拟机仅局限于与蓝色虚拟网络进行交互。红色虚拟机和蓝色虚拟机的 CA 均为 10.1.1.7,它们可以在同一 Hyper-V 虚拟交换机和同一云数据中心中安全地共存。

其次,终端主机中的执行策略为多租户隔离提供可扩展的解决方案。我们不需要重新配置网络基础设施即可使租户相互隔离。在 Hyper-V 网络虚拟化之前,通用的解决方案是使用 VLAN 实现隔离。但是,VLAN 具有可扩展性限制,在共享数据中心中仅支持有限数量的租户。除了具有可扩展性限制之外,VLAN 更适合静态网络拓扑,不适合更动态的环境,即租户可能持续加入和离开云数据中心,或者租户工作负荷可能持续在物理服务器上迁移,以实现负荷平衡或容量管理目的。在每次需要将虚拟机引入新的服务器时,VLAN 要求重新配置生产交换机。通常,虚拟机部署团队为网络操作团队创建重新配置具有相关 VLAN 标签的相应交换机的服务票证。通过消除这一步骤,Hyper-V 网络虚拟机提高了运行数据中心的总体运营效率。

第三,通过允许在迁移到云环境时保留 IP 地址,Hyper-V 网络虚拟化还实现了跨子网的实时迁移。当我们谈到实时迁移时,我们的意思是指任何与服务通信的客户端并不知道托管该服务的虚拟机已从一个物理主机迁移到不同的物理主机。以前无法实现跨子网实时迁移,原因在于,按照定义,如果将虚拟机从一个子网迁移到不同的子网,其 IP 地址必须更改。更改 IP 地址导致服务中断。但是,如果一个虚拟机具有两个 IP 地址,则数据中心环境中相关的 IP 地址(物理地址)可以更改,但不需要更改虚拟机的 IP 地址(客户地址)。因此,通过 CA 与虚拟机通信的客户端并不知道虚拟机已物理地迁移到不同的子网。

真正令人兴奋的是,跨子网实时迁移实现了崭新的应用场景。回想我们的“任何服务、任何服务器、任何云环境”愿意。虚拟机如今可以在数据中心中的任何地方运行和实时迁移,而且不会导致服务中断。新的数据中心效率可以如愿以偿,得以实现。例如,对于主机托管服务提供商而言,在轻负荷期间(例如在大约午夜 3 点),可以将任何活动的虚拟机整合到数据中心的子网和关闭数据中心的其它部分 - 所有这一切都不必重新配置物理网络拓扑。管理员不再需要担心因数据中心的 IP 地址物理地限制 IP 地址有效的位置而使一台虚拟机陷入数据中心的某一部分。同样,虚拟机部署算法可以自由地在数据中心的任何地方分配虚拟机,因为更改物理数据中心环境中相关的 PA 地址,与虚拟网络中相关的 CA 地址无关。

对于 Hyper-V 网络虚拟化,虚拟机完全不知道其 IP 地址已被虚拟化。从虚拟机的角度来说,所有通信均通过 CA IP 地址进行。由于虚拟机并不知道它们属于虚拟网络的一部分,因此,在 Hyper-V 虚拟机中运行的任何操作系统(例如 Windows Server 2008 R2、Windows Server 2003、 Linux 等)都可以是虚拟网络的成员。Hyper-V 网络虚拟化对客户操作系统完全透明。

针对子网上 IP 地址虚拟化的两种机制
客户可以使用IP 虚拟化机制而不需要升级任何硬件或更改拓扑在现有的数据中心中部署 Hyper-V 网络虚拟化。我们通过在不同的终端主机之间发送网络通信时使用 PA 来实现 CA IP 地址的虚拟化。我们使用两种不同的机制来虚拟化 IP 地址:通用路由封装 (GRE) 和 IP 改写。对于大多数环境,应使用 GRE 进行网络虚拟化,因为它具有最大的灵活性和性能。但是,在当前的某些高容量数据中心中,IP 改写可能比较适合,以便提高性能和兼容性。

在来源和目标虚拟机监控程序中,数据包与虚拟子网 ID 相关联。虚拟子网 ID 允许虚拟机监控程序区分可能共享相同 CA IP 地址的不同虚拟子网的流量(例如,区分红色 10.1.1.7 和蓝色 10.1.1.7)。虚拟机监控程序可以使用虚拟子网 ID 应用每个租户的策略,例如访问控制。

第一种 IP 虚拟化机制是通用路由封装 (GRE),这是一种既定的 IETF 标准。在此情况下,我们将虚拟机的数据包(使用 CA IP 地址)封装在另一个数据包中(使用 PA IP 地址)。这个新数据包的标头还包含虚拟子网 ID 的副本。GRE 的一个关键优点在于,由于数据包中包括虚拟子网 ID,网络设备可以对数据包应用每个租户的策略,实现有效的流量计量、流量调整和入侵检测。GRE 的另一个关键优点在于,由于虚拟子网 ID 可用于将各种 IP 地址与不同的虚拟子网区分开来,位于指定终端主机上的所有虚拟机可以共享相同的 PA。共享 PA 对可扩展性具有重大影响。网络基础设施需要知晓的 IP 和 MAC 地址的数量可以大大减少。例如,如果每个终端主机的虚拟机平均数量是 20,则网络基础设施需要知晓的 IP 和 MAC 地址数量减少 20 倍。GRE 当前的不足在于,NIC 卸载机制不再为终端主机提供可扩展性好处,因为 NIC 卸载机制对外部标头起作用,不对内部标头起作用。卸载机制对虚拟机需要 10 千兆位带宽的高性能环境非常重要。同样,数据中心多路径路由的熵减小,原因在于交换机通过散列仅仅位于外部数据包中字段,将不区分来自位于同一终端主机上的不同虚拟机的流量。

别担心!我们拥有针对这些限制的解决方案。

在 Windows Server “8”,我们已采用具有高优先级的标准。我们与主要的业界思想领导者(Arista、Broadcom、Dell、Emulex、HP 和 Intel)发布了指导性的草案 RFC (NVGRE),讨论了使用现有的 IETF 标准 GRE 作为网络虚拟化的封装协议。我们与服务器、交换机和 NIC 合作伙伴一起,展示了对 Hyper-V 网络虚拟化的泛生态系统支持。在我们的合作伙伴将 NVGRE 纳入产品之后,主机托管服务提供商将在没有性能损失的情况下获得 GRE 的可扩展性好处。他们还将见证部署多租户网络设备的机会,其中包括负载均衡器、防火墙、存储控制器、网络监控和分析工具,以及其它安全和性能产品。

GRE 是适合大多数当前和未来数据中心的首选网络虚拟化方法。对于这些环境,Windows Server “8”支持第二种 IP 虚拟化机制,即 IP 改写。

通过 IP 改写,我们在数据包离开终端主机时,用相应的 PA 地址改写数据包中来源和目标 CA IP 地址。同样,当虚拟子网数据包进入终端主机时,用相应的 CA 地址改写 PA IP 地址。IP 改写的一个主要优点是不更改数据包格式。现有的网络硬件卸载技术,例如大量发送卸载 (LSO) 和虚拟机队列 (VMQ),可以按预期工作。这些卸载机制为 10 千兆位以太网环境中的网络密集应用场景带来了显著好处。此外,IP 改写完全兼容现有的网络设备,它并不查看任何新的流量类型或格式。当然,虚拟子网 ID 并不在网络上传输,因此,现有的网络设备不能执行每个租户的数据包处理。
 
创建混合云的增量方法
通过 Hyper-V 网络虚拟化,我们使将子网迁移到云环境变得轻松。但是,一旦迁移到云环境中,接下来要做的是让虚拟子网相互交互。例如,典型的 3 层架构包括前端层、业务逻辑层和数据库层。您需要一种适合这些虚拟子网(在本示例中为层)进行通信的方法,使它们如同都位于您自己的数据中心一样。Hyper-V 网络虚拟化允许您在虚拟子网之间路由。也就是说,不但可以将虚拟子网引入云环境中,而且可以将整个网络拓扑引入云环境中。
 
Windows Server “8”还提供一种 Cloud Cross-Premise 连接解决方案,这种解决方案可以将您的数据中心或私有云与公共云相连接,以便创建混合云。将 Hyper-V 网络虚拟化与 Cloud Cross-Premise 连接相结合,意味着我们已使云成为数据中心的无缝扩展。

在 Microsoft 内部,我们使用 GRE 作为 IP 虚拟化机制,在私有云部署时采用 Hyper-V 网络虚拟化。这里的租户是服务器和工具业务部门 (STB) 中的各个产品组。我们希望对数据中心基础设施进行整合,以便实现云环境的运营效率和资源效率,并为我们的产品组提供在云环境中部署服务时所需的必要的灵活性。

结论
我们对 Hyper-V 网络虚拟化感到兴奋不已,因为它使迁移到私有、混合和公共云的客户大大受益;为运行云数据中心的主机托管服务提供商和管理员带来新的效率;而且,为我们的生态系统合作伙伴提供了新的机会。Hyper-V 网络虚拟化与存储实时迁移、同时实时迁移和故障转移复制等其它技术相结合,通过 Windows Server “8”实现了虚拟机的完全移动性。

要了解有关 Hyper-V 网络虚拟化的更多内容,请观看我们在 //BUILD/ 大会上提供的演示。我们的演示在 13 分 52 秒开始。我们的 //BUILD 讨论:使用 Hyper-V 网络虚拟化构建安全、可扩展的多租户云提供更详细的技术信息。有关部署信息,欢迎访问我们的 Technet 站点