剖析系统虚拟化(6)- Virtual Switch 的主要功能
作者 吴朱华 | 2010-05-10 19:35 | 类型 云计算, 行业动感 | 13条用户评论 »
系列目录 漫谈虚拟化技术
因为本人并不像很多弯友那样精于网络,并在写此文时常感力不从心,所以希望大家能对本文多多指正!!!
因为Virtual Switch采用了模块化的架构,所以能非常方便地添加或者删除功能,使Virtual Switch不仅能保持其轻量的体积,而且能提供不逊于交换机的功能。 那么接下来,就跟大家介绍一下Virtual Switch的主要功能: 第二层转发(Layer 2 Forwarding)第二层转发堪称交换机最重要的功能,而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创建和管理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 TeamingNIC Teaming 是VMware在其第三代企业级虚拟机产品(VMware Infrastructure 3)中发布的一个特性,其能让一个Virtual Switch连接多个物理网卡,这样能达到负载均衡和故障转移的效果。 负载均衡在普通的物理环境中,会经常使用硬件形式(比如F5)或者软件形式(比如LVS)的负载均衡器来将大量的负载分发给不同的主机。在虚拟环境中,实现负载均衡的方法也是比较类似的,Virtual Switch会作为一个网关来接收请求,之后按照选定的模式发送给相应的虚拟机。主要有四种模式:其一是基于Virtual Switch的端口,其二是基于基于Mac地址,其三是基于IP Hash,其四是Explicit Failover Order。 vMotionvMotion是VMware版本的动态迁移。动态迁移堪称虚拟化技术的一个杀手锏,它能在虚拟机运行的时候将虚拟机从一台主机迁移到另一台主机,这不仅能将虚拟机从出现情况或者性能不佳的主机移出,而且能通过将多个虚拟机动态进行整合来优化资源。关于动态迁移的细节,将会在今后讲述,敬请期待。而Virtual Switch会参与到整个迁移过程中,并起到传输内存页面等作用。 其他功能除了上面这些功能之外,Virtual Switch还提供有用的两个功能:
本篇结束,下篇将关注Distributed Virtual Switch。 参考资料: | |
雁过留声
“剖析系统虚拟化(6)- Virtual Switch 的主要功能”有13个回复
VMCI是一种接近半虚拟化的解决方案,通过有点像Hyper-V的VBus的东西来提供一个快速共享架构,和网络倒是没什么特定关系。不过,VMCI Socket API就在VMCI的基础上实现了Berkeley UNIX sockets和Windows sockets,因此可以用来进行网络通信
@Lucifer 谢谢指正!!!
还有,谢谢首席的编辑工作!
不知道VMWARE的虚拟交换机的性能如何?个人猜想因为所有的包都是在内存中的,估计采用指针交换的方式就可以了,但是很好奇其性能能达到多少。
我不想偏向任何一方。但本系列到目前越来越有演变为软文的趋势了。
探求业界领先的公司的技术趋势固然好,但应着重在技术本身的实现优缺点剖析上吧。跟着忽悠跑怕不是弯曲所追求的吧。
TO过客
为什么不对优缺点进行深入剖析?这个问题问的好,其实我也希望能进行深入地剖析,那么为什么不做呢?原因很简单,因为缺乏相关数据和资料,而且我个人精力有限,所以主要是根据现有的资料进行总结,如果其它资料没有相关的内容,我也无能为力,关键是能将一些大家不是特别熟悉的东西介绍给大家。
to HJ:
我个人也没测过,反正根据我个人使用经验和VMware官方的资料,虚拟交换机应该不是性能的瓶颈!
通常的hyper-v和vmware gsx server等级的虚拟交换机是个瓶颈,esx server好点;纯软件的虚拟交换机在较多虚拟机的时候性能比较低,目前虚拟化的网络部分也在朝着“硬件辅助”的方向发展,如VMDQ和VMDC技术的出现
VMware 用console太麻烦了,能不能把console/keyboard/mouse等虚拟去掉,都从网络等上去。或者一个机器上,多个console直接从telnet上console口。桌面虚拟化的东西,对服务器来说,并不一定要用到。
to droplet:
你的意思是不是ESX取得那个Service Console?其实VMware已经推出了去掉Service Console的ESXi版本。但我个人感觉因为已经有很多第三方应用和脚本都依赖这个Console来完成管理工作,所以短时间内应该不会去掉。
It’s posts like this that keep me coming back and checking this site regularly, thanks for the info!
Great information! I’ve been looking for something like this for a while now. Thanks!
to droplet:俺没玩过ESX,但是对于vmware workstation 6.5/7.0,有一个VNC的选项,激活之后可以直接用vnc viewer联入,这相当于IP-KVM了吧