深度分析虚拟化之vswitch

随着服务器虚拟化和数据中心的蓬勃兴起,用于连接服务器的网络组件也开始了虚拟化的发展,本文主要以VMWARE ESX的vswitch为例来进行介绍,说明一些关于交换机虚拟化的一些技术及应用

一、虚拟交换机的网络介绍

在物理环境之中,主机是通过pSwitch连接到网络当中。而在虚拟化环境中,ESX提供了vswitch和dvswitch。ESX的虚拟主机通过vSwitch来连接网络。vSwitch是通过主机上的物理网卡作为上行链路与外界网络进行连接。

跟普通服务器设备一样,每个虚拟机有着自己的虚拟网卡(virtual NIC),每个 virtual NIC有着自己的MAC地址和IP地址。 Virtual Switch(vSwitch)相当于一个虚拟的二层交换机, ABCDE便是交换机上的虚拟端口vPort,该交换机连接虚拟网卡和物理网卡,将虚拟机上的数据报文从物理网口转发出去。根据需要,vSwitch 还可以支持二层转发、安全控制、端口镜像等功能。
每个vSwitch与物理交换机一样,包含一定数量的端口,相同特性的虚拟端口vPort集合就是端口组;vSwitch端口逻辑上可分为三种类型:

  1. 虚拟机端口组,用于虚拟网络连接
  2. VmKernel端口:用于VMotion网络、iSCSI/NFS网络、ESX/ESXi管理网络(ESXi中没有Service Console)
  3. Service Console端口:用于ESX Service Console管理网络,如:vSphere Client和vCenter就是使用此网络管理ESX

二、虚拟交换机的功能及配置

ESX的vSwitch是当前虚拟化产品中功能较为全面和易于管理的一款虚拟化交换机。他主要有以下几个功能:

ESX/ESXi    Standard Vswitch

功能

说明

多网络管理

在vSwitch作为全局的虚拟交换机管理基础上,vNetwork细分了每个vlan下的虚拟主机的安全管理,流量控制及网卡绑定规则

流量控制

定义vPort中的流量策略

安全管理

简单的网络安全管理

网卡绑定

主要用于网络冗余及负载均衡

多网络管理

我们知道在数据中心中不可能只有一个网络,比如为webgame服务器和注册站reg服务器分配在不同的vlan;那么在虚拟网络环境中如何做到多个网络环境并存? vSwitch与物理交换机一样可通过配置Vlan实现多网络并存。
物理交换机上配置Vlan后,两台交换机之间通过Trunk通道传输vlan标记信息;与物理交换机相似,在vSwitch中可在虚拟机端口组vNetwork、VMkernel端口上配置Vlan信息,与外界物理网络Vlan间的通信也需要在vSwitch上行链路上配置Trunk通道。
以下以实例介绍配置步骤:ESX的vSwitch0和vSwitch1的上联分别由两张物理网卡连接组成的teaming,接入交换机并配置vSwitch0上不同的vlan网络分别为ESX管理网络,iscsi,vSwitch1上不同的vlan网络分别为 webgame,reg。通过不同的vNetwork来细化虚拟机的流量策略,网络绑定策略,安全控制等
在交换机上配置与ESX服务器相连的端口为TRUNK
Switch(config)#interface range TenGigabitEthernet 1/11-14
Switch(config-if-range)#switchport mode trunk
Switch(config-if-range)#switchport trunk allowed vlan all

流量控制

控制vSwitch下的虚拟机简单流量策略,支持虚拟机平均流量控制,虚拟机流量峰值管理,突发流量控制等。也可以在vNetwork中进行配置,vNetwork的优先级高于vswitch。

安全控制

Promiscuous Mode虚拟交换机的混杂模式。开启该模式,所有vNic的报文会复制到vSwitch的所有vPort上面
MAC Address Changes:是否允许虚拟机的网卡变更,如果禁止的话,在修改了MAC地址的vm所有报文将不能够被转发。
Forged Transmits:一个和MAC地址相关的安全配置,当允许了MAC address changes后,修改了MAC地址的VM,可以成功的转发报文。
在NLB的单播模式,需要允许MAC address changes 和 forged transmits 因为单播模式会修改主机的MAC地址。如果禁止的话,会被vSwitch过滤。

网卡绑定

VMware建议ESX中的三种网络类型最好配置不同的Vlan,并且使用不同的上行物理链路分配流量,并且为了保证故障冗余,每个网络类型至少关联2块网卡。这就需要在vSwitch进行网卡绑定。
ESX NIC teaming,相当于vSwitch与交换机的聚合,通过下图可以看到,vSwitch网卡绑定主要功能有:

  1. 网络的负载均衡
  2. 网络故障切换检测
  3. 交换机通知
  4. 故障恢复
1.  ESX的网络负载均衡的3种方式

(1) 基于端口的负载均衡(默认) (Route based on the originating virtual port ID)
这种方式下,负载均衡是基于vPort ID的。一个vPort和ESX主机上的一个pNIC(从vSwitch角度看就是某个uplink)捆绑在一起,只有当这个pNIC失效的时候,才能切到另外的pNIC链路上。这种方式的负载均衡只有在vPort数量大于pNIC的数量时才生效。
什么是vPort呢?形象的说就是vSwitch交换机上的一个端口
因为基于vPort id的负载均衡,VM是vNIC绑定在其中的一个PNIC上,他的uplink速率不可能大于单个PNIC,只有当VM的数量大于PNIC的时候,所以vPort的负载均衡就是VM各个vPort之间的负载均衡。
(2) 基于源MAC的负载均衡(Route based on source MAC hash
这种方式下,负载均衡的实现是基于源MAC地址的。因为每个vNIC总是具有一个固定的MAC地址,因此这种方式的负载均衡同基于端口的负载均衡具有同样的缺点。同样是要求vPort数量大于pNIC的时候才会有效。同样是vNIC的速率不会大于单个pNIC的速率。
(3) 基于IP hash的负载均衡(Route based on IP hash)
这种方式下,负载均衡的实现是根据源IP地址和目的IP地址的。因为同一台VM(源IP地址总是固定的)到不同目的的数据流,就会因为目的IP的不同,走不同的pNIC。只有这种方式下,VM对外的流量的负载均衡才能真正实现。但是VMware的负载均衡(Load Balancing)只是出站(Outbound)的负载均衡,入站流量的负载均衡就需要在物理交换机上配置静态AP。 VMware不支持动态链路聚合协议(例如802.3ad LACP或者Cisco的PAgP).
交换机配置:
Switch(config)#interface range TenGigabitEthernet 1/13-14
Switch(config-if-range)#port-group 1
Switch(config-if-AggregatePort 1)#switch mode trunk
Switch(config-if-AggregatePort 1)#exit
Switch(config)#aggregateport load-balance src-dst-ip
ESX的三种负载均衡优缺点:

负载均衡方式 优点 缺点
vPort
  1. 配置容易,
  2. 不需要配置pSwitch,可以跨pSwitch实现链路冗余
  3. Vnetwork还可以选择SMAC的负载均衡方式
  4. 对于某个VM,最大的带宽就是某个PNIC的带宽
SMAC
  1. 配置容易不需要配置pSwitch,可以跨物理交换机实现链路冗余
  2. Vnetwork还可以选择vport的负载均衡方式
  3. 对于某个VM,最大的带宽就是某个PNIC的带宽
IPhash
  1. 能够真正的利用网卡多链路的冗余及扩容
  2. 需要在pSwitch配置静态AP
  3. 不能够跨交换机实现冗余
  4. Vnetwork必须和vswitch配置相同的负载均衡策略
2.  网络故障切换检测(Network failover Detection)

ESX提供了两种方式的网络故障检测分别为link status only 和 beacon probing,下面用图表来说明两者的主要优缺点:
a.  Link status only:仅判断网络链路的up 和down状态
b. Beacon probing: vswitch的每个物理网卡周期性的发送广播信号报文,实现网络链路检测。

网络故障检测方式 优点 缺点
Link status only
  1. 能够检测链路状态的up和down状态
  2. 不会造成额外的网络开销
  3. 需要交换机支持“Link state tracking”
  4. 无法判断链路的配置是否正确,报文是否正常转发
Beacon probing
  1. 能够检测链路状态
  2. 能够确保网络的连通情况
  3. 发送信号广播报文,有额外的网络开销
  4. 只有两个网卡绑定的物理网络无法使用
3.    交换机通知(Notify switches)

ESX的交换机通知是用于在VM发生链路变更及vm迁移的时候,用来通告物理交换机,保障物理交换机上能够感知虚拟机的端口变化并更新MAC地址表。

4.    故障恢复(Failback)

ESX默认配置Failback为YES,当Teaming中的网卡恢复后,会依照failover设定好的故障切换顺序,还原Teaming中的PNIC优先级。

三、分布式虚拟交换机

Dvswitch:分布式虚拟交换机是主要是为了简化数据中心的虚拟网络连接,它可以将跨多个 ESX/ESXi主机将网络连接聚合到一个集中的集群级别。 Distributed Switch 可对各个虚拟机的配置进行抽象化处理,并通过Vcenter实现集中部署、管理和监控。原来每ESX标准交换机分别配置,现在vCenter Distributed vSwitch可在数据中心级别集中配置、管理,并且在vSphere 4.0中除了可以使用VMware内置的Distributed vSwitch外,还支持加载第三方厂商的交换模块,比如Cisco针对vSphere虚拟网络环境开发的nexus 1000v 和 nexus 1010。Dvswitch逻辑架构图
通过dvswitch,配置不同类型的dvport模板,将数据中心中同一类型vnetwork中的vm迁移到对应的dvport,大大提高了虚拟机的管理效率。
下面我们通过实例将vm接入Dvswitch:
实验目的:在虚拟数据中心lixukai,创建一个dvswitch,并将数据中心的vm1和vm2服务器中的虚拟机,由vswitch迁移至dvswitch。可以很清楚的看到数据中心的网络情况,并且通过定义了多个不同的分布式端口组的方式,大大提搞了vSwitch的布署效率。
Dvswitch优点:

数据中心布署环境 布署10台ESX,每个ESX有10个vnetwork 耗时(假设每个vnetwork需要10min)
vswitch 分别创建vnetwork,一共需要创建100个vnetwork 耗时= 1000min
Dvswitch 通过vCenter一次性创建10个dv_network,并将10台ESX接入dvswitch即可 耗时100min

四、总结:

本章介绍的仅仅是虚拟化的一个很小的方面。随着虚拟化技术蓬勃兴起,它正在走向数据中心的各个领域,服务器虚拟化,交换机虚拟化桌面虚拟化。最终还是要落实到如何实实在在的应用上。

  1. 如何提高业务用户的访问速度
  2. 提高业务访问的稳定性
  3. 节省业务的带宽成本
  4. 增加业务持续运行时间,增加可靠性
  5. 减少业务的数据丢失风险
  6. 降低业务异常的维护时间
  7. 减少业务计划内的维护时间
  8. 减少业务硬件成本
  9. 给业务运营分析,业务改进提供数据支持

带着这些问题,我们更深入的去了解、学习和应用虚拟化,一起努力把我们的虚拟化产品做好。

weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:13   其中:访客  9   博主  4

    • avatar 小麦 0

      呵呵、看来博主对网络技术、虚拟化研究的很深入啊、我是lcxv.net的博主、收到您的评价、现来访问、我也对云计算、虚拟化、集群作业调度做过一点研究、很高兴认识你、因为鄙人学生一枚、友连周末回去添加、鄙视QQ345515713、希望能愉快交流、

      • avatar 行畔博客 3

        恩,我发现你的网站内容中各种关键词很多,推荐使用一款插件哦
        WP Keyword Link。

          • 激劉勇靖 激劉勇靖 Admin

            @行畔博客 嗯 谢谢哈, 我看看能不能用代码搞定,用插件会影响性能。

          • avatar 站长 5

            问一下,你去我的网站图片显示正常吗?

            • avatar 刘印博客 0

              原来如此~

              • avatar 乐乐堂 0

                真的是受益匪浅啊……学习了…………

                • avatar 站长 5

                  不知道你对voip和磁盘阵列方面研究的怎么样.

                    • 激劉勇靖 激劉勇靖 Admin

                      @站长 磁盘阵列没有深入研究过。voip有接触过,但是没有深入。

                    • avatar 站长 5

                      这些东西我们都有讲,但是都是讲的皮毛,很不懂,没有真正利用这些技术,一点都不懂。@激劉勇靖

                        • 激劉勇靖 激劉勇靖 Admin

                          @站长 这个vmware的ESX操作系统你可以下个版本在你自己的pc上用vmware workstation上安装一个玩玩。就知道vswitch是干嘛的了,他就是一个虚拟交换机。

                        • avatar 站长 5

                          可以去看看。@激劉勇靖

                          • avatar 匿名 1

                            哈哈,又见深度贴,一如既往啊!