
在传统的世界里,计算和网络完全是井水不犯河水的关系。但是在引入服务器虚拟化以后,情况就发生了变化,计算和网络变成河水和海水的关系,需要融合了。
在传统的网络世界中,物理接入交换机是网络的最底层,接入交换机接入的是物理服务器。而在虚拟化的世界里,每台物理服务器里还有若干台虚拟服务器。那么,虚拟服务器内部和外部是怎么通信的;里面有什么网络设备;有什么安全措施等等都是以前没有的,需要好好关心的事情。
虚拟交换机是一个软件,提供虚拟机之间、虚拟机和外部网络的通道,主要提供二层交换能力。虚拟机本质上和物理机没有本质区别,如图1,对外的通信也是利用虚拟网卡进行的,而虚拟网卡和虚拟交换机相连。虚拟服务器之间的流量叫做东西向流量,在传统物理网络设备之间的流量叫做南北向流量。东西向流量上也需要防火墙、防病毒、流量清洗等虚拟设备。在引入SDN后还会有虚拟的路由器、负载均衡、DNS等,这些设备的情况以后有机会再讲。虚拟交换机的上行出口就是物理服务器的网卡。通过这个网卡的网卡接入以太网交换机。

图1
以最常用的vmware虚拟化软件为例,我们来讲述计算和网络的融合。首先需要了解一个传统网络中没有的概念——端口组。
端口组
端口组是虚拟化领域里独有的概念,准确的说是VMware为虚拟化平台引入的概念。是一种执行策略,这种策略可以提供增强的网络安全、网络分段、更佳的性能、高可用性以及流量管理。 和传统的物理机连接方法不同,虚拟机不是将其虚拟网卡连接到虚拟交换机上的特定端口,而是连接到端口组。
传统交换机可以分割冲突域,但是接入所有交换机的端口都处在一个广播域之中,物理环境可以放置路由器来分割广播域,但是在虚拟环境下,是通过端口组来分割的。端口组是以名称来区分的,不同端口组的虚拟网卡将不会收到互相的广播,这种限制不仅局限于同一台物理服务器上。端口组还可以配置vlan、流量调整、网卡绑定等策略。
一般会设置3个大的端口组,对应管理网络、迁移网络和应用网络。所以在物理服务器配置中,建议最好配置对应的3组网卡。如果配置是千兆网卡,建议配置6张,如果是万兆网卡就物理网卡划分对应的6张子网卡。管理和应用网络的网卡,在资源有限的情况下可以合设,但迁移网络最好单独设置。
虚拟交换机可分为两种,标准虚拟交换机(vSwitch)和分布式虚拟交换机(vDs)。
标准虚拟交换机
vSwitch是由虚拟化软件的核心层提供,运行在物理主机的内存中的数据交换层。在同一台物理服务器内的虚拟机的数据交换本质上是内存的数据交换。虚拟机通过虚拟网卡和虚拟交换机的端口组相联,虚拟交换机的上连物理网卡的一张或多张网卡相联,链路可以捆绑设置。并且一台物理服务器上可以配置多台虚拟交换机,但不同的vSwitch无法使用同一物理网卡。

图2
分布式虚拟交换机
分布式虚拟交换机就将分布在每台物理服务器上的标准虚拟交换机串接起来,合并成为一台,可以在物理主机之间实现共享,当虚拟机跨多个主机移动时使其保持网络运行时状态。并允许使用第三方虚拟交换机(如Cisco Nexus 1000v、H3C S1010V),将常用的物理网络功能和控制扩展到虚拟网络。现在VMware的虚拟交换机功能和稳定性都已经很完善了,在替换虚拟交换机时要谨慎,要分析清楚为什么要更换,能带来什么好处,是否能够承受带来的问题等。据我了解,他省曾经有2个更换案例,最终存在不少问题,还是用回了原生的虚拟交换机。图3,为了便于理解,将分布式虚拟交换机的控制(大脑)和接入(手脚)逻辑分离表示。控制部分是在vCenter统一配置和管理下的统一平面;而接入部分内是分布部署在不同物理机上的。虽然在一台虚拟交换机接入下,但是跨物理机的虚拟机之间网络访问,其实还是要经过物理网络的。

图3
二者比较
标准虚拟交换机和分布式虚拟交换机的本质区别在于其应用的范围。标准虚拟交换机只能应用于一个物理主机,不具有任何灵活性,并且其他主机不能共享一个虚拟交换机。分布式虚拟交换机(vDS)可以在主机之间实现共享,是一台单点配置的超级交换机。比如10台物理服务器,都装了标准虚拟交换机,其实可以看做是10台独立的接入交换机,而都装了分布式虚拟交换机,就是1台接入交换机。分布式虚拟交换机比标准虚拟交换机更为灵活,提供更多的网络功能。集群中的所有主机都可以使用分布式虚拟交换机,而且分布式虚拟交换机可以相对容易地将主机增加到集群当中。但分布式虚拟交换机对于刚入手的管理人员来说配置起来比标准虚拟交换机复杂。
当虚拟机迁移时候,vCenter会控制和配合计算和网络资源的协同,使网络信息(对应的端口组信息)也随着虚拟机迁移。不管是标准的还是分布的虚拟交换机都支持迁移。可以这样理解,标准交换机是在二台交换机之间迁移,而分布式交换机是在同一台逻辑交换机上迁移。




