阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Windows Server 2012 虚拟化实战:网络

137次阅读
没有评论

共计 14016 个字符,预计需要花费 36 分钟才能阅读完成。

虚拟化对于计算的抽象,大家可能相对熟悉,也许都有在单机使用诸如 Virtual PC 或者 Virtual Box 的经验。使用的这些虚拟化软件的第一印象就是我们的 CPU 可以同时运行多套不同的操作系统,并且其上应用程序并行不悖。计算的抽象使得同一套硬件设备上的操作系统之间得以相互隔离,犹如一个身体拥有两个甚至更多灵魂,这是什么鬼?那么接下来很自然的一件事就是,这些灵魂之间该如何沟通呢?依然只有一个身体,如何相互握手和交流,如何对外联系和提供服务。因而对于虚拟化而言,最重要的基础设施除了存储外,再就是网络,即需要实现网络的虚拟化。这里我们粗略描述 Windows Server 2012 R2 和 System Center Virtual Machine Manager 2012 R2(以下简称 SCVMM)实现网络的虚拟化的基本原理,有需要详细了解的可以看微软的电子书 Microsoft System Center: Network Virtualization and Cloud Computing。

一、什么是网络虚拟化

现在有一种流行的说法叫做软件定义网络,网络中有不同的解释,我自己简单理解为是更多通过软件编程来实现对网络的集中管理。比如之前在交换机上的 VLAN 功能,需要在每台交换机进行配置,不同厂商就有不同的配置方式,配置复杂且管理成本高昂,那么通过一个开放、统一和标准的软件平台对网络硬件进行控制,那将极大改善这一状况。当然由于商业竞争的因素,让各个厂商拥有开放包容的心,不是件容易的事,因而软件定义网络还有很长的路要走。那么回到网络虚拟化,即可以认为是一种在特殊情形下的软件定义网络,即在一个或者多个数据中心里实现软件定义网络的美好图景。除了通过统一软件平台来管理网络外,网络虚拟化也有自己特殊的应用目的和需求。

1、需要实现每个虚拟机都可以像单个物理机一样的网络功能。同一台物理机上的不同虚拟机之间,不同物理机上的虚拟机之间,虚拟机与物理机之间,虚拟机与外部网络能够屏蔽底层的硬件差异,在虚拟化网络上互联互通。

2、需要实现物理网络的更高效的利用。在一个物理网络上(通物理机上同一个物理网卡)承载更多的相互隔离且负载均衡的网络(这点类似 VLAN)。数据中心往往需要配置多种相互隔离的网络以承载各类应用,例如域网络、集群心跳网络、集群管理网络、虚拟机迁移网络和外部网络等等,如果在硬件上通过 VLAN 或者直接增加硬件的方式实现,那将是一件费时费力费钱的工作。

3、需要实现网络的高可用性。物理设备,包括网线、网卡和交换机等都有损坏的可能,需要有一种方案降低他们损坏后对网络造成的影响。

4、需要保障虚拟化平台上高可用的虚拟机的动态迁移。当物理网络或者物理主机损坏而掉线后,其上具有高可用性的虚拟机将执行迁移操作,在另一台物理主机上重新上线,甚至让外界无法感知其迁移的过程,这要求虚拟化网络能够保证虚拟机上的所有网络配置在另一台物理主机上是依然有效的。

以上每一项都不是件容易的事,那么我们接下来看看 SCVMM 如何在统一软件管理平台上实现这所有目的和需求。

二、Windows 2012 R2 中的网络虚拟化

实现网络虚拟化的本质是对物理网络的抽象,也就是在物理网络上构建虚拟网络以适应不同的应用场景。这里的核心技术是 IP 数据包的包装协议。各家的虚拟化平台采用的 IP 包装协议并不同,例如主要有:Virtual eXtensible Local Area Network (VXLAN),Stateless Transport Tunneling Protocol for Network Virtualization (STT) 和 Generic Routing Encapsulation (GRE)。SCVMM 采用特殊的 GRE 协议,称为 Network Virtualization using Generic Routing Encapsulation (NVGRE)。这些协议的主要目的就是对原始 IP 数据包进行封装,以实现网络数据传输的隔离。

SCVMM 可以通过几个层次对物理网络进行重新定义,这里我们考虑如下场景:两台物理主机通过两个独立的物理网络相连,这在数据中心中应该是最为常见的状况。

Windows Server 2012 虚拟化实战:网络

下面我们来看看物理主机的网络在下面各个层面的配置:

1、建立网卡组(NIC Team)

将物理主机上 2 个及以上物理网卡合并为网卡组,可以在这些物理网卡之间形成冗余和实现负载均衡。如下图所示,在物理主机的操作系统层面,合并的网卡组表现为一张网卡,相互连接为一个网络。网卡组的功能其实由 Windows 2012 R2 提供的,SCVMM 可以充分调用 Windows 2012 R2、Hyper- V 和 Failover Cluster 的所有资源和功能。

Windows Server 2012 虚拟化实战:网络

在 Windows Server 2012 中输入命令 lbfoadmin 可以查看和配置网卡组,如下图在物理主机 cloud-pm-ds01 上创建了两个网卡组,每个网卡组中包含 2 张物理网卡。

Windows Server 2012 虚拟化实战:网络

在网络连接界面中,物理网卡已经无法设置网络相关参数,而转移到网卡组进行设置。仔细查看网卡和网卡组属性中的 Networking 选项,可以发现 Microsoft 提供了丰富的网络协议,实现各种功能即是配置的网络协议不同。网卡组使用的关键协议应该是 Microsfot Load Balancing/Failover Provider、IPv6 和 IPv4 这些。在后文中更多关于网络虚拟化提供的功能也只是在增加和配置更多的协议,这在一定程度上即是所谓的软件定义网络吧。

但这里请忽略 Logical Switch 这样对网卡组的命名,为什么不是 Team 这样的命名,这里可以先告诉大家的是 Logical Switch 是一个更高层次的抽象,下文将会涉及。

Windows Server 2012 虚拟化实战:网络

2、虚拟交换机(Virtual Switch)

在网卡或网卡组的基础上,我们可以建立虚拟机交换机,一个物理网卡或者一个网卡组我们可以建立一个虚拟交换机,以便对该网络进行进一步虚拟化。如下图所示:

Windows Server 2012 虚拟化实战:网络

虚拟交换机功能由 Hyper- V 提供,我们安装 Hyper- V 角色,并打开 Hyper-V Mananger,右键通过 Virtual Switch Mananger 对虚拟交换机进行创建和管理。

Windows Server 2012 虚拟化实战:网络

在 Windows 网络连接界面,我们看到虚拟交换机可以与网卡组配置在一起。只是多了一个新协议 Hyper-V Extensible Virtual Switch。但是同时会取消对 IPv4 和 IPv6 的配置,因为这两项协议将被转移到虚拟网卡上进行配置。这时如下图中的设备 Management Logical Switch 现在起的作用是对一个或多个物理网卡的抽象,它可以承担起网卡组的负载均衡的作用,也承担虚拟交换机的作用,虚拟交换机与虚拟网卡互联互通。这与物理上的交换机的状态是不太一样的,物理交换机处在网络的中间位置,而虚拟交换机同时在两端,为主机配置相同的虚拟交换机意味着两者通过该虚拟交换机的底层物理链路连接。

Windows Server 2012 虚拟化实战:网络

3、虚拟网卡(Virtual Network Adapter)

在虚拟交换机的基础上,可以创建虚拟网卡,以连接不同的网络。虚拟网卡一般出现在虚拟机上,用于虚拟机连接该网络,也可以出现在物理主机上,用于物理主机连接该虚拟的网络。虚拟网卡的数量几乎不受限制,如有有必要,可以创建多个虚拟网卡连接同一个虚拟网络。这里“虚拟网络”是 SCVMM 中抽象出的概念,如下图连接虚拟网卡与虚拟网卡之间的虚线就好比虚拟网络,下图出现了像个虚拟网络,他们是相互隔离的。可以用 VLAN 来类比,但是却不是 VLAN 技术,而是 NVGRE 数据包封装技术。

Windows Server 2012 虚拟化实战:网络

如下图都是在物理主机上创建出的用户连接不同虚拟网络的虚拟网卡,这些网卡的配置协议与普通的物理网卡几乎相同,可以在其中配置 IPv4 和 IPv6。当然在虚拟机中更普遍存在了。

Windows Server 2012 虚拟化实战:网络

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-01/139119p2.htm

关于 Windows Server 的虚拟化网络,前文描述了在操作系统层面上的出现的配置变化。其中的一些配置通过 Windows Server 提供的小工具即可实现,如网卡组的配置,而有些需要安装 Windows Server 的服务器角色,如 Hyper-V,然后通过 Hyper-V Manager 或者其命令行工具来配置虚拟交换机。但是要进行全局配置管理和实现一些高级功能,就需要接下来介绍的主角 System Center Virtual Machine Manager(SCVMM)。关于 SCVMM 的安装和部署可以参考另一篇博文——Windows Server 2012 虚拟化实战:SCVMM 的安装和部署。下面图给出 SCVMM 在我们数据中心部署的情况。

Windows Server 2012 虚拟化实战:网络

如图右侧是处于 SCVMM 管理下的所有物理服务器和物理集群,所有物理机器上都安装了 Windows Server 2012 R2 的操作系统,安装了 Hyper- V 服务器角色,同时也安装了与 SCVMM 服务器通信的 SCVMM Agent。而左上的 3 台服务器构成 SCVMM 网络架构的核心。SCVMM Database 是用于存储了所有配置信息和状态信息的 Sql Server 数据库。为实现高可用,该 Sql Server 也可以配置成 Sql Server 故障转移物理集群。SCVMM 其实是一个后台服务,主要负责将 Console 控制台管理的配置信息通过 SCVMM Agent 应用到被管理的物理机器上,并实时更新物理服务器及其上虚拟机的状态。SCVMM Console 则是用户界面,SCVMM Console 可以与 SCVMM 服务部署在一起也可以分开在不同服务器部署。SCVMM 的架构与其他其他任何一个分布式网络架构类似,有集中的地方,SCVMM 及其 Database 作为核心,需要特别保护,避免崩溃。而每个被管理的物理节点崩溃与否却不是那么至关重要。

以上简单介绍了 SCVMM 的网络架构,大家有个总体的印象,接下来我们回到本文的主题,继续讨论使用 SCVMM 相关功能实现网络的虚拟化。

三、SCVMM 中的网络虚拟化实战

1、物理网络拓扑

通过 SCVMM 的 Console 控制台和命令行工具,可以对网络中独立的服务器和故障转移集群(Failover Cluster)的进行统一的配置和管理,其中最重要的功能即是在这些物理服务器上实现网络虚拟化,为搭建一个完整的虚拟化平台奠定基础。下图为我们数据中心 2014 年建设初期的物理网络拓扑图:

Windows Server 2012 虚拟化实战:网络

在建设初期,所有物理机器都安装 Windows Server 2012 R2 并加入域。在上图中蓝色 Network01、绿色 Network02、红色 Network03、紫色 Network04 分别代表 4 个不同的物理网络。为什么是 4 个物理网络,因为我们的服务器都有 4 个网卡,我们希望都利用上,并实现负载均衡。

2、网络虚拟化的目标

我们初步考虑其中蓝色与绿色绑定为网卡组用于内部网络,名称定为 Internal Network,红色和紫色绑定为网卡组用于外部网络,名称定为 Public Network,也就是说我们计划在这两个网卡组的基础上进行网络的虚拟化。

在 Internal Network 上要建立 4 个虚拟网络:

(1) Management Network 用于域和管理,配置给所有物理服务器和部分虚拟机,内网地址 192.168.0.0/24

(2) Cluster Network 用于集群心跳,配置给建立集群的物理服务器,内网地址 192.168.10.0/24

(3) Migration Network 用于虚拟机迁移,配置给所有成为宿主的物理服务器,内网地址 192.168.20.0/24

(4) Application Network 用于虚拟机之间自定义网络,配置需要自定义网络的那些虚拟机,这个是网络虚拟化最彻底的部分,稍后将解释,内网地址 192.168.30.0/24

在 Public Network 上要建立 2 个虚拟网络:

(1) Cernet Network 用于教育网,配置给所有需要教育网的虚拟机,公网地址 121.192.x.x/26

(2) Datacenter Network 用于反向代理的内部网络,配置给所有需要从外部通过非教育网连接的虚拟机,内部地址 172.16.8.0/24。这个网络比较特殊,如果电信网络或者移动网络需要连接虚拟机,需要通过反向代理服务器即如上图的 cloud-pm-ag01 进行方向代理,以实现多种外网接入虚拟化平台上的虚拟机。

如上面描述并不是每个物理服务器或者虚拟机都将接入上面所有虚拟网络,而是可以进行非常灵活的配置,那么我们就来看看如何在 SCVMM 中实现。

3、SCVMM 中网络虚拟化的关键概念

在 SCVMM 中有些功能的名称看起来并不是那么合理,许多配置项容易使人误解,因而带来了许多困扰。

在 Windows  2012 R2 中的网络虚拟化小节中,我们提到了在操作系统层面发生的关于网络配置的改变包含:网卡组、虚拟交换机,虚拟网卡。很容易发现这些配置其实只针对某个物理服务器或者某个虚拟机(虚拟网卡可用于虚拟机),那么这些物理服务器和虚拟机的虚拟网卡如何算是连接在同一个网络中,其实非常容易想到的就是我们必须在物理网络的基础上,为这些物理服务器和虚拟机进行相同的配置,让他们拥有同样的虚拟交换机和虚拟网卡的配置,那么整个虚拟化平台就能正常工作了。因而在 SCVMM 上所做所有工作其最终目的就是为了在多个物理服务器和虚拟机之间实现配置的一致性,当然最终也带来的配置的便捷性。

其实在 SCVMM 中关于网络虚拟化最重要的概念有以下几个,我来看看他们本质上对应到操作系统层面将改变什么?

(1) Logical Networks 逻辑网络和 VM Networks 虚拟机网络

可以简单的认为就是上文中我们需要创建的虚拟网络。这里需要注意的是一个逻辑网络(虚拟网络)并不代表只有一个子网,例如上文中我们的目的之一是创建 Management Network,并标识使用内网地址 192.168.0.0/24,原因是我们并没有超过 255 台的机器。倘若我们的确有那么多机器需要接入 Management Network,并且它们分布在不同地方,例如在不同的楼栋,不同的楼层或只是不同的房间,那么在可能我们会遇到它们不仅仅使用同一个子网的情况。我们可以简单的扩大子网来容纳更多的机器,但是倘若它们之间能够路由,那么就不用在同样的子网里。也就是说逻辑网络代表了可以路由的所有子网的集合,例如在楼栋 A 有子网 192.168.0.0/24,在楼栋 B 有子网 172.16.0.0/24,倘若它们可以路由,那么它们可以划入同一个的逻辑网络中,实现同一个目的。因而逻辑网络的配置与 Network Site 站点(可以理解为物理上部署在一起的服务器构成一个站点)一起配置,也是为了这个原因。同一个逻辑网络中的所有机器是可路由的,也即是可以相互连接的,而不同的逻辑网络是相互隔离的。

Windows Server 2012 虚拟化实战:网络

上图是创建逻辑网络的第 1 个界面,这里有 3 个选项,代表的是 3 个不同的物理网络环境。其中 VLAN-baseed independent networks 和 Private VLAN network 表示两种不同的基于 VLAN 的物理网络环境,如果的确有就选,但是一般情况下,我们不会在数据中心内使用 VLAN,因而我们重点关注第 1 个选项 One connected network,就是一般的情况下直接通过交换机路由器连接,而没有做 VLAN 配置的物理网络。

其中有两个复选框:Allow new VM networks created on this logical network to use network virtualization,这个需要特别注意 VM network 并不是虚拟网络的意思,而是虚拟机网络 。该选项的意思是在这个逻辑网络的基础上允许自定义虚拟机网络,也就是第二层虚拟化。第二层虚拟化是我想的,不是官方概念,下图表示虚拟机网络的示意图。

Windows Server 2012 虚拟化实战:网络

由于 SCVMM 是支持多租户的,也就是说在同一个逻辑网络上(逻辑网络由管理员确定,租户无法更改),允许租户自定义自己的网络,租户可以控制自己的虚拟机,也可以控制自己的虚拟机网络,这样可以满足了租户的个性需求。

Create a VM network with the same name to allow virtual machines to access this logical network directly,则允许创建一个同名的虚拟机网络,以便用于虚拟机接入该逻辑网络。

虚拟机必需连接虚拟机网络,而虚拟机网络与逻辑网络关联。第一个复选框允许对逻辑网络做第二层虚拟化,那么随后还可以在该逻辑网络上再创建多个虚拟机网络,并自定义虚拟机网络 IP 池;第二复选框则允许默认创建一个同名的虚拟机网络,并且使用逻辑网络相同的 IP 池。如果以上两个复选框都不选择的话,那么该逻辑网络将毫无用处。虚拟机网络并不只用于虚拟机,而是用于虚拟网卡。物理服务器上创建的虚拟网卡也需要接入虚拟机网络,所以默认创建一个同名的虚拟机网络,并且使用逻辑网络相同的 IP 池的选项是非常重要的。

微软的官方文档中,逻辑网络之间是绝对隔离的,但是对于实现第二层虚拟化的虚拟机网络(非默认创建,这里容易混淆)之间却不是,那仅仅是便于租户对网络进行管理而已。

(2) Port Profiles 端口配置文件

端口配置文件是为虚拟交换机的各类接口提供配置的,有两种端口的配置文件,我们参照一个物理交换机来理解会简单的多。物理交换机上的端口按照网络结构可以分为两种:一种是普通端口即连接下行设备的,例如连接每个服务器;另一种是上行端口即连接上行设备,例如连接上级交换机或路由器。端口配置文���也是为这两类在虚拟交换机上的端口而生。

Virtual Port Profile 普通端口配置文件,可以规范下行端口的行为,例如该端口在 Offload 减负载,Security 安全和 Bandwidth 带宽上的配置。其中网络领域 Offload 技术是蓬勃发展的,其主要目的都是为了减少网络 I / O 对 CPU 的消耗,提高效率,因而将 CPU 的负载转移到网卡上,那么可能就需要物理网卡的支持。另一个在带宽配置上,一个虚拟交换机可能连接多个逻辑网络(虚拟网络),那么可以配置它们之间的带宽如何分配。

Windows Server 2012 虚拟化实战:网络

Uplink Port Profile 上行端口配置文件,配置虚拟交换机将连接那些逻辑网络(虚拟网络)。这里 Network configuration 可以详细到站点与逻辑网络的组合,本质上是决定哪些物理服务器参与连接逻辑网络,哪些逻辑网络参与连接虚拟交换机。

Windows Server 2012 虚拟化实战:网络

(3) Logical Switch 逻辑交换机

Logical Switch 逻辑交换机在操作系统层面上将对应创建一个虚拟交换机,并且围绕该虚拟交换机进行配置,也可以认为是一个虚拟交换机的配置中心。其配置的本质就是组合普通端口配置和上行端口配置,以方便在物理服务器和虚拟机上的配置。

Windows Server 2012 虚拟化实战:网络

如上图,我们将把蓝色与绿色标识的物理网络绑定为网卡组用于内部网络 Internal Network,并通过 Internal Logical Switch 进行统一管理。将其上关联目标中的 4 个逻辑网络(虚拟网络)。其中有个选项 SR-IOV 单根虚拟化,如图中说明,即允许虚拟机直接使用某个物理网卡,简单可认为即某个物理网卡直接当做虚拟机的虚拟网卡,以提高网络 I / O 性能。那么该选项不符合我们的期望,因为我们希望创建网卡组做负载均衡,与 SR-IOV 是矛盾的。

另外两个配置项 Uplink 和 Virtual Port 即使分别配置关联哪些上行端口配置文件和普通端口配置文件。其中普通端口配置文件并不是直接一对一的配置,而是通过 Port Classifications 端口分组进行关联。因而我们中心的总体的配置逻辑如下图:

Windows Server 2012 虚拟化实战:网络

4、SCVMM 中网络虚拟化配置

结合上文我们的网络虚拟化目标和 SCVMM 的相关配置功能,我们大体上需要完成如下图配置:

Windows Server 2012 虚拟化实战:网络

上图中的配置是一个完全的配置,也就是说并不是所有物理机器都需要 4 个 Physical Network 物理网络,也并不是每个虚拟机都需要接入所有的 VM Network 虚拟机网络,实际应用中,要根据实际需要。

(1) 创建 Logical Network 逻辑网络

我们利用每个物理机器上的 4 个物理网卡两两组合成网卡组,并在其上创建 6 个逻辑网络(虚拟网络),因为物理环境中没有 VLAN 配置,都选择 One connected network 方式。站点分为两个,一部分服务器在 Buliding A,一部分服务器在 Buidling  N。这 6 个逻辑网络的配置如下:

逻辑网络 基于网卡组 站点 IP 地址池 第二层虚拟化 同名虚拟机网络 虚拟机网络
Management NetworkInternalBuilding A
Buidling N
192.168.0.0/24Management Network
Cluster NetworkInternalBuidling N192.168.10.0/24 
Migration NetworkInternalBuidling N192.168.20.0/24 
Application NetworkInternalBuidling N192.168.30.0/24App Network
Database Network
Cernet NetworkPublicBuilding A
Buidling N
121.192.x.x/26Cernet Network
Datacenter NetworkPublicBuilding A
Buidling N
172.16.8.0/24Datacenter Network

完成后如下图:

Windows Server 2012 虚拟化实战:网络

(2) 创建 Port Profile 端口配置文件

每个物理网卡或者网卡组虚拟化后,可以在其上创建多个逻辑网络,但是这句话在 SCVMM 却不是显而易见的。你需要事先配置好逻辑网络,端口配置文件和逻辑交换机,而后在配置每个物理服务器的时候,将这些配置与物理机器的某个网卡或者多个网卡(自动构成网卡组)关联。也就是说你在进行逻辑网络,端口配置文件和逻辑交换机配置时是与硬件无关的,但是你需要知道你的目的是最终要与硬件网卡关联。

Windows Server 2012 虚拟化实战:网络

上行端口配置文件的配置方式是非常灵活的,有时让人难以把握。我们需要回到上行端口配置文件的本质,是为了统一配置物理服务器和逻辑网络的连接。这时你可能还需要明白处于不同地理位置的服务器,如不同楼栋或楼层的服务器可能配置会又不一样,那么上行端口配置文件就不会一样。也就是说上行端口配置文件出于需要关联的逻辑网络有关外还与站点有关。与站点关联的目的是规定该上行端口配置文件可以被应用到哪些物理服务器上。

我们以 Internal Uplink Port- Building N 为例看看上行端口配置文件的属性。Internal Uplink Port- Building N 主要关联内部的逻辑网络,并且选择的服务器位于在 Building N。

Windows Server 2012 虚拟化实战:网络

普通端口配置文件本质上是为了控制端口的行为,在不同逻辑网络间调配负载。SCVMM 内置了一些,我们根据不同的逻辑网络也分别创建了一些。我们以 Management Port Profile 为例,Security 暂不选,其他配置如下图,其中带宽权重为 10,即不要超过总带宽的 10%。

Windows Server 2012 虚拟化实战:网络

Windows Server 2012 虚拟化实战:网络

(3) 创建 Logical Switch 逻辑交换机

逻辑交换机的目的在于组合以上配置。需要特别注意的是对于普通端口配置文件,我们需要创建 Port Classifications 端口分组,而后通过端口分组关联普通端口配置文件。如下我们针对两个网卡组分别创建了两个逻辑交换机,其中 Internal Logical Switch 关联 4 个逻辑网络:Management Network、Cluster Network、Migration Network 和 Application Network;Public Logical Switch 关联 2 个逻辑网络:Cernet Network 和 Datacenter Netwrok。

Windows Server 2012 虚拟化实战:网络

接下来我们来看看 Internal Logical Switch 的配置。在 Uplink 选项卡中关联所有域 Internal 有关的上行端口配置文件。这样就让 Internal Logical Switch 关联上所有相关位置和所有属于 Internal 的逻辑网络。

Windows Server 2012 虚拟化实战:网络

在 Virtual Port 选项卡中关联相关的普通端口配置文件。

Windows Server 2012 虚拟化实战:网络

(4) 为物理服务器配置虚拟网络

所有的配置都准备好了,那么最后的步骤就是让物理服务器应用这些配置。我们通过在物理服务器上右键属性的 Virtual Switches 选项卡中来实现。如下图我们为名称为 cloud-pm-cn01 的物理服务器加入了如下两个 Logical Switch(Virtual Switch),Internal Logical Switch 和 Public Logical Switch,每个 Logical Switch 都使用两张物理网卡,并在在其下加入需要该物理服务接入的逻辑网络所需要的 Virtual Network Adapter 虚拟网卡。

这里需要特别注意,每台物理服务器配置需保持一致,并且划归某个 Logical Switch 的物理网卡在物理链路上必须在同一个网络中。如果加入的物理网卡多于一个,将自动组成网卡组。在 Uplink Port Profile 列中需要选择该物理服务器物理位置相同的那个上行端口配置文件,以便与其所处物理位置相同的物理服务器通讯。

Windows Server 2012 虚拟化实战:网络

对其中每个虚拟网卡的配置如下图。需要特别注意的是 Management 虚拟网卡的配置。在完成物理服务器操作系统安装后,将物理机器加入域中,这时物理网卡 Ethernet 01 会配置域网络,当我们配置 Management 虚拟网卡时注意勾选 This virtual network adapter inherits settings from the physical manangement adapter。这样 Management 虚拟网卡将获得 Ethernet 01 的配置(这时域网络会短暂断开)。VM Network 选择对应的虚拟机网络,Port Profile 选择对应的普通端口分组,以应用相关端口配置策略。

Windows Server 2012 虚拟化实战:网络

其实上图中对虚拟网卡的配置界面与虚拟机的虚拟网卡是相同的,接下来我们也看看虚拟机中如何应用虚拟网卡配置。

(5) 为虚拟机配置虚拟网络

我们对需要配置网络的虚拟机右键,选择 Hardware Configuration 选项卡,并为其添加虚拟网卡 Network Adapter 1,如下图可见对该虚拟网卡的配置。

Windows Server 2012 虚拟化实战:网络

 

至此我们大体了解了 Windows Server 2012 R2 下通过 SCVMM 进行网络虚拟化配置流程,及其中的难点。接下来我会继续总结更多 SCVMM 搭建虚拟化平台的知识,请大家继续关注。

本文���久更新链接地址 :http://www.linuxidc.com/Linux/2017-01/139119.htm

虚拟化对于计算的抽象,大家可能相对熟悉,也许都有在单机使用诸如 Virtual PC 或者 Virtual Box 的经验。使用的这些虚拟化软件的第一印象就是我们的 CPU 可以同时运行多套不同的操作系统,并且其上应用程序并行不悖。计算的抽象使得同一套硬件设备上的操作系统之间得以相互隔离,犹如一个身体拥有两个甚至更多灵魂,这是什么鬼?那么接下来很自然的一件事就是,这些灵魂之间该如何沟通呢?依然只有一个身体,如何相互握手和交流,如何对外联系和提供服务。因而对于虚拟化而言,最重要的基础设施除了存储外,再就是网络,即需要实现网络的虚拟化。这里我们粗略描述 Windows Server 2012 R2 和 System Center Virtual Machine Manager 2012 R2(以下简称 SCVMM)实现网络的虚拟化的基本原理,有需要详细了解的可以看微软的电子书 Microsoft System Center: Network Virtualization and Cloud Computing。

一、什么是网络虚拟化

现在有一种流行的说法叫做软件定义网络,网络中有不同的解释,我自己简单理解为是更多通过软件编程来实现对网络的集中管理。比如之前在交换机上的 VLAN 功能,需要在每台交换机进行配置,不同厂商就有不同的配置方式,配置复杂且管理成本高昂,那么通过一个开放、统一和标准的软件平台对网络硬件进行控制,那将极大改善这一状况。当然由于商业竞争的因素,让各个厂商拥有开放包容的心,不是件容易的事,因而软件定义网络还有很长的路要走。那么回到网络虚拟化,即可以认为是一种在特殊情形下的软件定义网络,即在一个或者多个数据中心里实现软件定义网络的美好图景。除了通过统一软件平台来管理网络外,网络虚拟化也有自己特殊的应用目的和需求。

1、需要实现每个虚拟机都可以像单个物理机一样的网络功能。同一台物理机上的不同虚拟机之间,不同物理机上的虚拟机之间,虚拟机与物理机之间,虚拟机与外部网络能够屏蔽底层的硬件差异,在虚拟化网络上互联互通。

2、需要实现物理网络的更高效的利用。在一个物理网络上(通物理机上同一个物理网卡)承载更多的相互隔离且负载均衡的网络(这点类似 VLAN)。数据中心往往需要配置多种相互隔离的网络以承载各类应用,例如域网络、集群心跳网络、集群管理网络、虚拟机迁移网络和外部网络等等,如果在硬件上通过 VLAN 或者直接增加硬件的方式实现,那将是一件费时费力费钱的工作。

3、需要实现网络的高可用性。物理设备,包括网线、网卡和交换机等都有损坏的可能,需要有一种方案降低他们损坏后对网络造成的影响。

4、需要保障虚拟化平台上高可用的虚拟机的动态迁移。当物理网络或者物理主机损坏而掉线后,其上具有高可用性的虚拟机将执行迁移操作,在另一台物理主机上重新上线,甚至让外界无法感知其迁移的过程,这要求虚拟化网络能够保证虚拟机上的所有网络配置在另一台物理主机上是依然有效的。

以上每一项都不是件容易的事,那么我们接下来看看 SCVMM 如何在统一软件管理平台上实现这所有目的和需求。

二、Windows 2012 R2 中的网络虚拟化

实现网络虚拟化的本质是对物理网络的抽象,也就是在物理网络上构建虚拟网络以适应不同的应用场景。这里的核心技术是 IP 数据包的包装协议。各家的虚拟化平台采用的 IP 包装协议并不同,例如主要有:Virtual eXtensible Local Area Network (VXLAN),Stateless Transport Tunneling Protocol for Network Virtualization (STT) 和 Generic Routing Encapsulation (GRE)。SCVMM 采用特殊的 GRE 协议,称为 Network Virtualization using Generic Routing Encapsulation (NVGRE)。这些协议的主要目的就是对原始 IP 数据包进行封装,以实现网络数据传输的隔离。

SCVMM 可以通过几个层次对物理网络进行重新定义,这里我们考虑如下场景:两台物理主机通过两个独立的物理网络相连,这在数据中心中应该是最为常见的状况。

Windows Server 2012 虚拟化实战:网络

下面我们来看看物理主机的网络在下面各个层面的配置:

1、建立网卡组(NIC Team)

将物理主机上 2 个及以上物理网卡合并为网卡组,可以在这些物理网卡之间形成冗余和实现负载均衡。如下图所示,在物理主机的操作系统层面,合并的网卡组表现为一张网卡,相互连接为一个网络。网卡组的功能其实由 Windows 2012 R2 提供的,SCVMM 可以充分调用 Windows 2012 R2、Hyper- V 和 Failover Cluster 的所有资源和功能。

Windows Server 2012 虚拟化实战:网络

在 Windows Server 2012 中输入命令 lbfoadmin 可以查看和配置网卡组,如下图在物理主机 cloud-pm-ds01 上创建了两个网卡组,每个网卡组中包含 2 张物理网卡。

Windows Server 2012 虚拟化实战:网络

在网络连接界面中,物理网卡已经无法设置网络相关参数,而转移到网卡组进行设置。仔细查看网卡和网卡组属性中的 Networking 选项,可以发现 Microsoft 提供了丰富的网络协议,实现各种功能即是配置的网络协议不同。网卡组使用的关键协议应该是 Microsfot Load Balancing/Failover Provider、IPv6 和 IPv4 这些。在后文中更多关于网络虚拟化提供的功能也只是在增加和配置更多的协议,这在一定程度上即是所谓的软件定义网络吧。

但这里请忽略 Logical Switch 这样对网卡组的命名,为什么不是 Team 这样的命名,这里可以先告诉大家的是 Logical Switch 是一个更高层次的抽象,下文将会涉及。

Windows Server 2012 虚拟化实战:网络

2、虚拟交换机(Virtual Switch)

在网卡或网卡组的基础上,我们可以建立虚拟机交换机,一个物理网卡或者一个网卡组我们可以建立一个虚拟交换机,以便对该网络进行进一步虚拟化。如下图所示:

Windows Server 2012 虚拟化实战:网络

虚拟交换机功能由 Hyper- V 提供,我们安装 Hyper- V 角色,并打开 Hyper-V Mananger,右键通过 Virtual Switch Mananger 对虚拟交换机进行创建和管理。

Windows Server 2012 虚拟化实战:网络

在 Windows 网络连接界面,我们看到虚拟交换机可以与网卡组配置在一起。只是多了一个新协议 Hyper-V Extensible Virtual Switch。但是同时会取消对 IPv4 和 IPv6 的配置,因为这两项协议将被转移到虚拟网卡上进行配置。这时如下图中的设备 Management Logical Switch 现在起的作用是对一个或多个物理网卡的抽象,它可以承担起网卡组的负载均衡的作用,也承担虚拟交换机的作用,虚拟交换机与虚拟网卡互联互通。这与物理上的交换机的状态是不太一样的,物理交换机处在网络的中间位置,而虚拟交换机同时在两端,为主机配置相同的虚拟交换机意味着两者通过该虚拟交换机的底层物理链路连接。

Windows Server 2012 虚拟化实战:网络

3、虚拟网卡(Virtual Network Adapter)

在虚拟交换机的基础上,可以创建虚拟网卡,以连接不同的网络。虚拟网卡一般出现在虚拟机上,用于虚拟机连接该网络,也可以出现在物理主机上,用于物理主机连接该虚拟的网络。虚拟网卡的数量几乎不受限制,如有有必要,可以创建多个虚拟网卡连接同一个虚拟网络。这里“虚拟网络”是 SCVMM 中抽象出的概念,如下图连接虚拟网卡与虚拟网卡之间的虚线就好比虚拟网络,下图出现了像个虚拟网络,他们是相互隔离的。可以用 VLAN 来类比,但是却不是 VLAN 技术,而是 NVGRE 数据包封装技术。

Windows Server 2012 虚拟化实战:网络

如下图都是在物理主机上创建出的用户连接不同虚拟网络的虚拟网卡,这些网卡的配置协议与普通的物理网卡几乎相同,可以在其中配置 IPv4 和 IPv6。当然在虚拟机中更普遍存在了。

Windows Server 2012 虚拟化实战:网络

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-01/139119p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计14016字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中