在一个vSphere主机上,虚拟交换机(vSwitch)是核心网络构件,它连接主机服务器上的物理网卡(pNIC)和虚拟机上的虚拟网卡(vNIC)。作为2层网管交换机,vSphere vSwitch仿真传统以太网的特征,实现诸如划分VLAN等相似的功能。但是vSphere vSwitch没有路由功能,必须依靠虚拟路由器或3层物理路由器才能进行路由。
考虑到这一点,在vSphere中有很多种方法来设计vSwitch。在规划vSwitch的架构时,工程师必须决定怎样使用物理网卡(pNIC)和分配端口组来确保冗余、隔离和安全性。例如拥有的物理网卡越多,对于隔离、负载均衡和失效备援的可选方案也就越多。物理网卡较少则可选方案有限,而且在vSwitch中难以平衡安全性、性能和冗余三者的关系。
三种vSphere vSwitch
工程师首先必须要做的是选择适合他们应用环境的vSwitch。与vSphere一起使用的vSwitch有三种类型:虚拟网络标准虚拟交换机(vNetwork Standard vSwitch,VSS),虚拟网络分布式虚拟交换机(vNetwork Distributed vSwitch ,vDS)以及思科的Nexus 1000v。
标准虚拟交换机:易于使用,工作在规模相对较小的应用环境中。一台vSphere主机可以拥有多达248个vSS和最多4088个vSwitch端口,其中每个vSwitch可配置多达512个端口组。对于vSS,必须在每个主机上分别配置它们,因此在大的应用环境中维护它们会耗时。此外,vSS缺乏vDS和1000v所具有的所有高级网络特征。
分布式虚拟交换机:同标准虚拟交换机十分相似,但是标准虚拟交换机是在每个主机上分别配置;vDS则是使用虚拟中央服务器(vCenter Server)集中配置。在每一个虚拟中央服务器上你可以拥有多达32个的vDS,并且每个主机可以连接多达16个vDS。尽管创建和维护vDS需要使用虚拟中央服务器,但是在运行中vDS却是不依赖于vCenter Server的。
思科Nexus 1000v:一款混合型的分布式vSwitch,它是由思科和VMware联合开发的。Nexus 1000v添加了更多的智能和更好的管理特征来保护虚拟机流量。
你应该选择那一款vSphere vSwitch?在没有vSphere企业增强版许可(Enterprise Plus License)的情况下答案非常简单:标准虚拟交换机是你唯一的选择。如果你拥有了一个企业增强版许可,vDS或Nexus 1000v则可能是更好的选择。但是,vSphere中包含了vDS的许可,而对1000v而言每个主机都额外需要一个许可。
使用一台vSphere vSwitch进行802.1Q VLAN标记添加
虚拟交换机支持802.1Q VLAN标记添加,该技术允许同一个物理交换机端口被划分到多个VLAN中。这个功能可以极大地减少主机上所需的物理网卡数量。你可以使用一个单独的网卡连接到多个VLAN,而不用在主机上为每一个VLAN配备一个独立的物理网卡。
添加标记(Tagging)的工作原理就是给所有的网络帧添加标记来标识其属于一个特定VLAN。vSphere中有许多种方法来添加标记,这些模式之间主要的不同是标记用在哪里。虚拟机来宾标记(VGT)模式是在来宾操作系统层上添加标记;外部交换机标记(EST)模式是在外部物理交换机上添加标记;虚拟交换机标记(VST)模式是在VMkernel内添加标记。VST模式是vSphere中最常用模式之一。#p#
vSphere vSwitch设计依据
●冗余:必须有足够的物理网卡,当一个物理网卡失效了vSwitch仍然可以工作。
●负载均衡:必须有足够的物理网卡,使流量可以通过多个物理网卡。
●隔离:敏感的虚拟机流量类型必须物理上隔离。
●功能:各种主机流量类型必须物理隔离。
vSwitch设计中的端口和端口组分配
由于安全和性能原因,不推荐将所有的端口和端口组放在单独一个拥有指定物理网卡的vSwitch上。在创建vSwitch时可以添加许多种类型的端口和端口组来实现隔离、安全和管理。
服务控制端口:该类端口是ESX主机所独有的一个关键端口。它是虚拟机服务控制的管理接口,也被称作VSWIF端口。每一个ESX主机必须拥有一个服务控制端口,而且另外一台vSwitch上能够创建第二个服务控制端口作为冗余。
VMKernel端口:ESXi中将该端口用作管理控制接口。ESX和ESXi主机也都可以将该端口用于vMotion、容错记录和NFS与iSCSI数据存储的连接。可以在多个vSwitch上建立VMKernel端口作为冗余,并且在各个vSwitch内隔离不同的流量类型。
虚拟机端口组:连接一个虚拟机所有虚拟网卡的端口组。一个vSwitch中,每个VLAN可以创建多个虚拟机端口组。利用VLAN ID可以将流量路由到正确的端口组。
服务控制端口和VMkernel端口的流量对于主机的正常运行是非常关键的,应该始终将他们同虚拟机的流量分开。这些流量也包含敏感数据,而且并非所有的流量(例如vMotion)都是加密的。因此你应该将物理网卡分派到多个用于特定功能和流量类型的vSwitch中。
vSwitch的冗余设计
如果一个vSwitch仅仅使用了一个物理网卡,发生故障时,所有的虚拟机都将失去网络连接。对服务控制端口和VMkernel端口来说这是特别重要的。心跳通信在每个主机之间不停地广播,它是高可用性功能的触发器,并且通过服务控制端口(ESX)和VMkernel端口(ESXi)进行发送。如果那些端口由于网络故障超过12秒不可用,高可用性功能就会被触发,主机上的虚拟机就会关机,同时在另外一台主机上启动该虚拟机。因此,使用冗余来防止因为单个网络端口故障导致误报警的发生是很重要的。
在一个vSwitch上实现冗余,而且是在主机层而不是路径层提供冗余,要求至少要有两个物理网卡分配给它。为实现更强的快速回复能力,每个物理网卡必须连到一个不同的物理交换机上。那样的话当一个交换机完全失效仍然可以确保一条网络路径完好可用。可以在活跃(Active)或备用(Standby)模式下设置物理网卡。活跃意味着一个物理网卡在交换机上活跃可用。备用模式说明物理网卡直到有一个活跃状态的物理网卡失效才会参与工作。大多数情况下一个物理网卡将会处于活跃状态,被充分使用。一个物理网卡能够作为一个端口组的活跃端口和同一交换机上另一个端口组的备用端口同时工作。当物理网卡数量有限而工程师想要分配某种流量类型给每一个物理网卡,同时又想要有物理网卡用作冗余时,这样做是很有帮助的。
下面给出了一个同时包括服务控制端口和VMkernel端口组的vSwitch例子。如果为每个端口组创建一个vSwitch,那么为了每个vSwitch的冗余总共将需要四个物理网卡。而为两个端口组共同创建一个vSwitch,仅需要使用两个运行于活跃/备用模式的物理网卡:
●vSwitch0——服务控制端口组——vmnic0(活跃)——vmnic1(备用)
●vSwitch0——VMkernel端口组——vmnic1(活跃)——vmnic0(备用)
在这个配置中,每一个关键的端口组都有一个专用的物理网卡,但是如果一个故障发生,另一个物理网卡能够代替故障网卡并且同时服务于两个端口组。
【编辑推荐】