分类:
2010-12-20 08:36:41
因为Virtual Switch采用了模块化的架构,所以能非常方便地添加或者删除功能,使Virtual Switch不仅能保持其轻量的体积,而且能提供不逊于交换机的功能。 那么接下来,就跟大家介绍一下Virtual Switch的主要功能:
第二层转发堪称交换机最重要的功能,而Virtual Switch身为交换机一个变种,当然肯定也是具备这个功能。那么Virtual Switch是怎么实现这个功能的?
Virtual Switch自带一个核心转发引擎(core Layer forwarding engine)。这个引擎首先会主动学习接入虚拟机的MAC地址,从而生成转发表(Forwarding Table)。接着,在处理以太网帧时,引擎会先查看每个以太网帧(Frame)的MAC地址,之后这个帧转发给相对应的端口。因为其只处理以太网帧的头部(headers),所以在架构既保持了精简,又可支持很多扩展功能。
还有一点值得注意,也在前篇有所谈到的,那就是一个主机上的所有的Virtual Switch是无法直接沟通的,如果需要沟通的话,那就需要通过上层的物理交换机才能沟通,虽然这个设计有一个非常明显的缺点就是,在同一主机上关联的虚拟机(比如WAS VM和DB2 VM)必须通过外部的交换机才能进行通信,从而还产生多余的网络开支,但是这种做法却能简化了架构。还有,在vSphere 4中已经推出了VMCI(Virtual Machine Communication Interface)来解决这个问题,VMCI主要是提供一个接口让虚拟器内的程序来调用,通过这个接口能在一个主机上的多个虚拟机之间进行直接的通信,而且无需经过Virtual Switch和更上层的交换机,这样将有效地降低网络通信所产生的开支,但是这需要修改虚拟机上的软件,所以相对麻烦,并可以认为VMCI只适用于对虚拟机间通信要求非常高的情况。
创建和管理VLAN的功能也堪称虚拟机的标配,那么Virtual Switch也当仁不让地提供这个功能。
首先,介绍一下VLAN,VLAN是让一群身处不同地点的主机集合在一个广播域下。一个VLAN在功能上和LAN是一致的,但可以将隶属于不同交换机下的主机组合起来成为一个LAN。
VLAN主要在下面三个方面和传统的LAN相比有一定的优势:
在使用VLAN时最常用到的协议是IEEE 802.1Q(常被称为 VLAN Tagging),它是通过整合Cisco的ISL(Inter-Switch Link)和3Com的VLT(Virtual LAN Trunk)这两个私有协议发展而来。简单的来说,VLAN主要是利用Ethernet II 帧的”Ether Type”字段来实现其功能。
那么Virtual Switch的VLAN和交换机的VLAN有什么区别哪?在功能方面两者基本一致,但是虚拟机的范围更小。
在Virtua Switch层面主要有三种构建VLAN的方式:
下图是一个VLAN的示例:
图1 VLAN的示例(来源于参[2])
Virtual Switch的安全工作主要在三个方面做文章:
综上所述,Virtual Switch是通过关闭Promiscuous mode,锁定MAC地址和屏蔽Forged Transmit来提高安全性。
除了上面这样,Virtual Switch还支持一些和安全相关的特性,比如。Virtual Switch不信任通过它的网络帧中的用户数据,Virtual Switch会复制它受处理所有的网络帧以便于转发和过滤,Virtual Switch 不支持Dynamic Trunking (802.3ad)和“native VLAN”, 同时因为Virtual Switch不需要通过网络来获知和它相连虚拟机的MAC地址,所以它能很好地抵挡MAC flooding的攻击。
虽然分组交换在成本和灵活性这两方面,比电路交换有优势,但是因为分组交换所面对流量的大小不确定的情况,使其不得不对流量进行复杂的管理。而Virtual Switch作为分组交换的延伸,自然也要处理这个问题。VMware的Virtual Switch也提供了流量管理功能,它能控制Virtual Switch流量的大小,但只针对发出流量(outbound traffic only),共可设置三个选项,其一是Average Bandwidth,也就是能保证的带宽。其二是Peak Bandwidth,控制的是发出流量所占带宽的最大值,其三是Burst Size,指的是每次超过Average Bandwidthd的大小。
NIC Teaming 是VMware在其第三代企业级虚拟机产品(VMware Infrastructure 3)中发布的一个特性,其能让一个Virtual Switch连接多个物理网卡,这样能达到负载均衡和故障转移的效果。
在普通的物理环境中,会经常使用硬件形式(比如F5)或者软件形式(比如LVS)的负载均衡器来将大量的负载分发给不同的主机。在虚拟环境中,实现负载均衡的方法也是比较类似的,Virtual Switch会作为一个网关来接收请求,之后按照选定的模式发送给相应的虚拟机。主要有四种模式:其一是基于Virtual Switch的端口,其二是基于基于Mac地址,其三是基于IP Hash,其四是Explicit Failover Order。
vMotion是VMware版本的动态迁移。动态迁移堪称虚拟化技术的一个杀手锏,它能在虚拟机运行的时候将虚拟机从一台主机迁移到另一台主机,这不仅能将虚拟机从出现情况或者性能不佳的主机移出,而且能通过将多个虚拟机动态进行整合来优化资源。关于动态迁移的细节,将会在今后讲述,敬请期待。而Virtual Switch会参与到整个迁移过程中,并起到传输内存页面等作用。
除了上面这些功能之外,Virtual Switch还提供有用的两个功能: