1. 前言
新代数据中的典型特点是从 “物理服务器互联” 转变为 “虚拟机” 互联。虚拟化技术为数据中带来了服务器整合、业务连续性和弹资源性等优势,也给数据中带来了新的挑战,即:如何实现针对虚拟机的服务器络接技术。
2. VEB技术
VEB(Virtual Ethernet Bridge,虚拟以太交换机)是虚拟机与服务器络接层之间的个新的络层。解决的是同服务器中不同虚拟机如何通过同张物理卡与外部络进通信,以及这些虚拟机之间如何互相通信的问题。最初为通过纯软件式实现的 vSwitch,后续为了解决性能问题也出现了基于 SR-IOV 卡的 Hardware-based VEB 实现。
vSwitch
以软件实现的 vSwitch:实现式简单,技术兼容性好,典型软件有:Open vSwitch、VMware ESXi。
VMware ESXi,由 VMM 内嵌的 VEB:
Open vSwitch,在服务器上运的(第三)VEB:
vSwitch 案具有以下优点:
本地虚拟机之间的报转发性能好,流量不出卡。节省接层物理交换机设备,张物理卡持多个虚拟机。
与外部络的兼容性好,不需要对外部络进改造。缺点:
占服务器的 CPU 资源。只能实现简单的 L2 转发。缺乏络流量的可视性,例如:端报统计、端流镜像、Net Stream 等,导致虚拟机之间的流量法被管系统所监管,另也使得络发故障时,难于定位问题原因。缺乏络控制策略的实施能,例如:端安全,QoS、ACL 等,导致限制了数据中的端到端络控制策略的部署能。缺乏管理可扩展性,vSwitch 数量剧增,且与外部络法进统管理。VEB 的以上这些缺陷,最终导致了计算资源和络资源的管理界模糊,继解决了服务器团队和络团队的管理定界问题。
HW VEB
以硬件实现的 SR-IOV 卡设备:借助持 SR-IOV 特性的卡可以实现基于 HW VEB。
HW VEB 的设计思想是:将 vSwitch 的交换功能 offload 到硬件设备,通过卡硬件改善 vSwitch 占 CPU 资源影响虚拟机性能的问题。HW VEB 案必须采持 SR-IOV(Single-Root I/O Virtualization)特性的 PCIe卡,否则张物理卡法映射到多个虚拟机上。
Intel x710 VEB
在 HW VEB 案中的 VMM(e.g. ESXi、KVM)只需要实现 SR-IOV 卡设备的驱动程序(e.g. 资源分配、中断处理等)不再参与虚拟机与外部络,以及虚拟机之间的报转发流程。
对于虚拟机发往外部络的报,由虚拟机操作系统的驱动程序直接操作卡寄存器进发送;对于外部络发往虚拟机的报,卡设备根据 dstMAC,将报放虚拟机对应的接收队列,虚拟机操作系统的驱动程序再通过 DMA 或中断式进接收处理;对于同物理服务器中的虚拟机之间的报转发,卡通过查讯内部 MAC table(静态配置,通常不持 MAC 学习)进转发处理。
基于 SR-IOV 技术的 HW VEB 案的优点:
硬件设备、SR-IOV VF 直通,所以报转发性能。
但是,HW VEB 依然存在不能有效解决虚拟机流量可视化、络策略实施及管理可扩展性等问题,甚会由于硬件设计、成本等原因还恶化了这些问题。
3. 虚拟机流量感知技术
为了解决 VEB 技术存在的问题:缺乏络流量的可视性、缺乏络控制策略的实施能、 缺乏管理可扩展性,需要反思两点原因:
1. 虚拟机之间的本地流量不出卡。
2. 虚拟机在外部络的流量没有标识信息。
所以,解决问题的办法然是:
1. 把虚拟机的络流量纳传统络交换设备的管理之中
2. 同时还需要对虚拟机的流量做标识。
这就是所谓的虚拟机流量感知技术。对此,思科和惠普两联盟分别提出了的解决案:
思科和 VMware 主推的是 VN-Tag 技术,标准为 802.1Qbh BPE(Bridge Port Extension,端扩展设备):尝试从接层到汇聚层提供个完整的虚拟化络解决案,尽可能达到软件定义个可控络的的。它扩展了传统的络协议,因此需要新的络设备持,成本较。惠普、Juniper、IBM、Qlogic、Brocade 主推的是 VEPA(Virtual Ethernet Port Aggregator,虚拟以太端汇聚器),标准为 802.1Qbg EVB(Edge Virtual Bridging,边缘虚拟交换机):尝试以较低成本利现有设备改进软件模拟的络。
EVB
EVB 将 VEPA 作为基本实现案,将多通道技术(Multi-Channel Technology)作为扩展案。由于EVB 要求将所有的虚拟机流量都引向外部的物理交换机,因此与虚拟机相关的流量监管、控制策略和管理可扩展性问题得以解决。但同时也带来了更多络带宽开销和转发时延的问题。需要注意的是,EVB的出现并不是完全替换 VEB 案,但是 EVB 对于需要对虚拟机流量进感知的场景,是种优选的案。
VEPA
上图显示了 VEPA 的基本概念:在服务器中,物理卡将虚拟端根据定的规则进分组,完成端分组(Port Group)功能。同时这个卡设备能够对外抽象出被分为组的端,将属于同组端的数据起投递出去,完成端汇聚功能(Port Aggregation)。
VEPA 的核思想是:将虚拟机产的络流量(包括本地流量和外部流量)全部强制地交由与服务器相连的物理交换机进处理,然后物理交换机再将数据返回进来,不再通过本地虚拟交换机来处理。我们知道,传统物理交换机的数据帧是不能从进出去的,所以需要对物理交换机硬件作修改,允许其绕回。如下图,由 VM1 发往 VM2 或 VM3 的报,先被发往外部交换机,查表后,报沿原路返回服务器,这种作模式称之为发卡弯(hairpin turn)转发。
NOTE 1:以太交换机在处理报转发时,对于从个端上收到的报,不会再将该报从该端发回。因此,当使能 VEPA 特性的服务器接到个外交换机上时,该交换机相应端必须持上述 “发卡弯” 转发式。可幸的是,当前多数交换机的硬件芯都能持这种 “发卡弯” 转发特性,只要修改驱动程序即可实现,不必为持 “发卡弯” 式增加新的硬件芯。
NOTE 2:另个由 VEPA 技术引起的变化是服务器对从外部络接收到组播或播报的处理式。由于 VEPA 从物理卡上收到的报可能是来外部交换机的 “发卡弯” 报,也就是说 srcMAC 可能是服务器上的虚拟机的 MAC 地址,这种报必须进过滤处理,以避免发送该报的虚拟机再次从络上收到发出的组播或播报。因此,当前的操作系统或卡驱动都需要做相应的修改。
相对于 VN-Tag,VEPA 的优点在于:完全基于 IEEE 标准,不需要专的报格式,且容易实现。通常只需要对卡驱动、VMM 的 Bridge 模块和外部交换机的软件做很的改动,从实现低成本案标。
与 VEB 类似,VEPA 也同样具有纯软件和基于 SR-IOV 技术的硬件两种实现式:
Intel x710 VEPA:
Multi-Channel
在数通络,想要标识流量,肯定是要使特定的字段来做。HP 使的是 QinQ(802.1ad),在标准 VEPA 的基础上使 QinQ 的 S-TAG 来标识虚拟机流量,形成了增强型 VEPA,即:802.1Qbg MultiChannel(多通道技术)。
多通道技术是种通过给虚拟机报增加 IEEE 标准报标签,以增强 VEPA 功能的案。通过标签机制,可以实现 VEB、Director IO 和 VEPA 的混合部署案,借助多通道技术,管理员可以根据络安全、性能以及可管理等的需求,灵活的选择虚拟机与外部络的接案(VEB、Director IO 或 VEPA)。
多通道技术由 HP 公司提出,最终被 IEEE 802.1 作组接纳为 EVB 标准的种可选案。多通道技术案将交换机端或卡划分为多个逻辑通道,并且各通道间逻辑隔离。每个逻辑通道可根据户需要定义成 VEB、VEPA 或 Director IO 的任何种。每个逻辑通道作为个独的到外部络的通道进处理。多通道技术借了 802.1ad S-TAG(QinQ)标准,通过个附加的 S-TAG 和 VLAN-ID来区分卡或交换机端上划分的不同逻辑通道。
多通道技术使外部物理交换机通过报的 S-TAG 识别络流量来哪个 VEAP/VEB,或来哪个Director IO 的卡。反之亦然。
如上图,多通道技术可组合出多种案:
1. 管理员通过多通道技术解决 VEB 与 VEPA 共享个外部络(卡)的需求,多个 VEB 或 VEPA共享同个物理卡。管理员可以为特定的虚拟机使 VEB,以获得较好的交换性能;也可以为其他虚拟机使 VEPA,以获得更好的络控制策略可实施性和流量可视性。
2. 直接将个虚拟机映射到物理卡上(SR-IOV VF Director IO),其它的虚拟机仍然通过 VEB 或VEPA 共享物理卡。
BPE
BPE(Bridge Port Extension,端扩展设备)是种功能有限的物理交换机,通常作为个上物理交换机的线卡使。端扩展技术需要在标准的以太数据帧中增加段 TAG,端扩展设备借助 TAG中的信息,将端扩展设备上的物理端映射成上物理交换机上的个虚拟端,并且使 TAG 中的信息来实现报转发和策略控制。当前市场上的端扩展设备主要由思科的 Nexus 2K 和 Nexus 5K。
BPE 有 VN-Link 和 FEX 两部分组成。VN-Link 部署在服务器的交换组件上,负责虚拟机的接,FEX 部署在接层的物理交换机上,负责虚拟机间的互通。两者配合在起实现了虚拟机的实时感知和分布式接,接配置和策略的集中式分发保证了虚拟机的缝迁移。
图中,Port Extender 向下为 VN-Link 技术,向上为 FEX 技术:
VN-Link 由持 VN-TAG 的卡实现,如 Cisco UCS 服务器中集成的 Palo,该卡只负责 VNTAG 的封装/解封装,不做任何策略相关的作。FEX 技术由 Cisco 的 N2K/N5K 组合实现,持以级联式组,其中 N5K 负责寻址转发和策略的制定,N2K 则作为 N5K 的远端板卡部署在 TOR 实现分布式接,N5K 通过 VIC 协议分发给N2K,实现分布式转发。
VN-TAG 体系将数据中的接络虚拟成了个的接交换机,由 VN-Link 充当线,由 N2K 充当分布式线卡,N5K 充当主控板,处于任何物理位置的虚拟机都好像连接在这个的接交换机上。带宽、阻塞和低时延的优良特性使得 N2K/N5K 间络连接能够与单机内总线相当,保证了分布式接的性能。在 N5K 上可以基于虚拟机对应的 SVI_ID/DVI_ID 制定 ACL,QoS 和流控等级接策略,持络策略随虚拟机任意的漂移。
VN-Tag
为了实现端扩展(Port Extension),思科和 VMware 共同推出了 VN-TAG 标准。其核思想是:在标准以太数据帧中增加段专的标记 VN-Tag,以区分不同的 vNIC(虚拟机的虚拟接),从识别特定的虚拟机的流量,并且标明了报的播域。可 VN-Tag 技术是思科的套闭源的全栈案,VN-Tag 报格式并不建在 IEEE 已定义的各种标准之上的。
VN-TAG 将 6 个字节的新字段插到 VLAN 的前,这些字节只在 VN-TAG 设备中出现,现有的协议(包括 VLAN 的使)不会受到任何的影响。其中,DVIF_ID/SVIF_ID 是的/源虚拟机被分配的唯标识,各有 12 位,通过 Port Profile 的配置与虚拟机接端进对的通道绑定,VN-TAG 物理交换机将根据这个标识来识别虚拟机,实现络接虚拟化。其他的标志位于 FEX 系统中,D 位标识报的向,P 位标识报是否需要复制,L 位标识源主机和的主机是否连接在同台物理交换机上,R 位作为保留。
通信流程:服务器中的交换组件不进 MAC 寻址,它接受源虚拟机的流量,封装好 VN-TAG(标记SVI_ID),然后直接交给上游的物理交换机,上游的交换机完成 SVI_ID 对源 MAC 地址、VLAN 和端的学习,根据的 MAC 地址标记 DVI_ID,然后转发给标服务器,标服务器根据 DVI_ID 进通道转发,剥掉 VN-TAG 后转发给标虚拟机。
思科针对 VN-Tag 推出了名为 Palo 的虚拟服务器卡,Palo 卡为不同的虚拟机分配并打上 VN-Tag 标签。如下图,上联交换机与服务器之间通过 VN-Tag,使上联交换机能区分不同虚拟机产的流量,并在物理交换机上成对应的虚拟接 vIF(Virtual InterFace),和虚拟机的 vNIC 对应起来,这就好像把虚拟机和物理交换机直接对接起来,全部交换作都在上联交换机上进,即使是同个物理服务器内部的不同虚拟机之间的流量交换,也通过上联交换机转发。
相对于 VEPA,VN-TAG 技术有些缺点:
VN-TAG 是种新提出的标签格式,没有沿现有的标准(如 IEEE 802.1Q、 IEEE 802.1ad、IEEE 802.1X tags)。必须要改变交换机和卡的硬件,不能只是简单的对现有的络设备软件进升级。也就是说,VN-TAG 的使需要部署持 VN-TAG 的新络产品(卡、交换机、软件)。
最初 IEEE 802.1 作组曾考虑将 “端扩展” 作为 EVB 标准的部分,但是最终决定将端扩展发展成个独的标准,即 802.1 Bridge Port Extension。Cisco 曾向 IEEE 802.1Q 作组建议,将其私有的VN-TAG 技术作为实现 EVB 的种可选案,但作组最终没有接纳这个提案。Cisco 后来修改了 VN-TAG 技术草案,修改后的草案称为 M-TAG,该案的主要标仍是为了实现端扩展设备与上交换机
之间的通信标准化。
参考档:
https://wenku.baidu.com/view/fc085465312b3169a551a41d.html
https://www.internet2.edu/presentations/jt2009jul/20090719-congdon.pdf
关于九州云99Cloud
九州云成立于2012年,是中国早期从事开放基础架构服务的专业公司。公司成立八年,秉承“开源 · 赋能变革”的理念,不断夯实自身实力,先后为政府、金融、运营商、能源、制造业、商业、交通、物流、教育、医疗等各大行业的企业级客户提供高质量的开放基础架构服务。目前拥有国家电网、南方电网广东公司、中国人民银行、中国银联、中国移动、中国电信、中国联通、中国资源卫星、eBay、国际陆港集团、中国人寿、万达信息、东风汽车、诺基亚等众多重量级客户,被用户认可为最值得信赖的合作伙伴。