当前位置: 首页 > 科技观察

数据中心交换机水平虚拟化集群探讨

时间:2023-03-22 00:48:30 科技观察

虚拟化技术是数据中心的一个流行词,包括水平虚拟化、垂直虚拟化、一虚多虚拟化、NVO3虚拟化等。今天重点讲一下水平虚拟化。以华为CloudEngine12800系列为例,让小伙伴们了解这项技术的起源和发展历史,深入浅出地介绍各种水平虚拟化技术的特点,以及在各种场景下的应用。选择一个策略。水平虚拟化集群的由来数据中心网络发展初期,没有专门的数据中心交换机,怎么办?首先用最传统的VRRP+STP凑合用parkswitch。这是下面的经典校园网。.这种网络模型具有浓厚的经典和可靠公园的味道。但时间一长,问题来了:◆流量越来越大,STP阻塞导致链路利用率低;备节点设备空闲;◆STP网络规模有限,收敛性能差;◆管理节点多,逻辑拓扑复杂,维护麻烦。这些问题导致了对水平虚拟化的需求,模块化交换机集群率先出现。堆叠典型的模块化交换机堆叠有思科的VSS(VirtualSwitchSystem)、华为的CSS(ClusterSwitchSystem)、H3C的IRF(IntelligentResilientFramework)。VSS、CSS、IRF本质上都是堆叠的,只是穿了不同的马甲而已。当然,各个厂商也发展出了一些差异,这就是后话了。堆叠技术本质上是合并,管理面、控制面、转发面的综合合并。堆叠系统的主控板管理着两台物理设备的所有线卡和网卡,成为逻辑上的大交换机。但需要注意的是,堆叠的目的不仅仅是为了增加尺寸。站在网络的角度看逻辑拓扑,就变“高富帅”了!“高富帅”的主要表现形式:超级节点几乎翻倍的交换能力;层转发流量全负荷分担,充分利用所有链路;◆逻辑单节点,全面的业务支持,简单的网络方案设计;◆通过部署跨框架link-agg,支持物理节点故障保护;有利于网络的管理和维护。碎片化还有很多好处:◆最短路径转发,延迟低;◆与传统STP相比,可以构建更大的二层网络;◆Link-agg收敛性能,网络故障收敛块。在堆叠系统中,堆叠链路的带宽相对于业务端口的带宽总是不够的。这就要求转发的业务流量尽量避免经过堆叠链路。这就是所谓的流量本地优先转发。如上图所示,华为数据中心交换机堆叠系统支持本地优先级三层ECMP和链路绑定。本地优先级转发节省堆栈链路带宽,也减少转发延迟。除了上面提到的通用堆叠技术,华为CloudEngine12800系列数据中心高端交换机还针对堆叠可靠性做了重大的物理优化。stacking的优化可靠性优化(stackseparatedbycontrol)控制分离的栈也称为带外栈。这种优化的主要目的是高可靠性。业界大多数框式交换机的堆叠中,堆叠成员之间的控制通道和转发通道采用一条通道。华为CloudEngine12800系列数据中心交换机率先研发了控制分离的堆叠系统。这里的“中转”是指业务数据转发通道;“控制”是指控制消息(也称为“信令”)通道。在传统的帧式堆叠系统中,业务数据通道和控制消息通道都使用同一个物理通道,即堆叠链路。如下图所示:在这个堆叠系统中,控制消息和数据混合在一起运行。如果堆叠通道的数据流量较大,可能会导致控制消息受到冲击而丢失,从而影响控制面的可靠性。严格来说,这种设计不符合“数据面、控制面、管理面分离”的设计要求。另外,堆叠系统的建立依赖于线卡的启动,增加了软件的复杂度,影响了堆叠的启动速度。传输与控制分离的堆叠系统采用如下架构:硬件堆叠架构带来了一系列的可靠性提升:◆控制消息通道和业务数据通道物理隔离,保证业务数据不影响控制消息;◆三重双主故障保护,包括堆叠管理链路(4路)、堆叠转发链路(至少2路)、业务口/管理口DAD;◆堆叠系统的建立不再依赖线卡的启动,无软件时序依赖,简化了软件实现,简单意味着可靠;◆堆叠系统建立,不再等待线卡/网卡启动,缩短堆叠系统建立时间;◆控制消息通道路径短,故障点少,延迟低。Stacking改进后的limitationstackingsystem带来了前述系列的好处,但是慢慢的,不愉快的问题也逐渐暴露出来,这是stacking原理的本质所决定的。如上图所示,两台交换机通过管理平面、控制平面和数据平面的紧耦合组成了一个逻辑交换机。这导致以下三个风险或问题。◆全系统可靠性风险对于常见故障,堆叠系统可以通过链路倒换、主备板倒换、帧倒换等方式完成故障保护。但是,由于整个系统的两个物理交换机的软件(管理平面、控制平面)是紧密耦合的,这就增加了软件故障从一台交换机传播到另一台交换机的可能性。一旦发生此类故障,整个堆叠系统就会失效,影响所有连接到堆叠系统的服务。◆版本升级服务中断时间长。由于堆叠本身承担了业务保护功能,当堆叠系统升级时,其他节点无法像VRRP成员节点升级那样进行流量保护,中断时间比较长。对此,各厂商开发了双帧RoundRobin和ISSU升级方式。这些升级方式缩短了升级过程中的服务中断时间,但并未解决下述升级风险。甚至因为技术的复杂性和软件工程的复杂性,升级放大了升级风险。◆整个系统升级风险即使采用最传统、最简单的升级方式,设备软件版本升级也是一种有风险的网络操作。设备升级失败将导致设备承载的业务失败。在这种情况下,应该使用包括回滚在内的一切手段尽快恢复服务。由于堆叠系统中成员交换机之间的紧耦合,只能同时升级两台设备。如果升级失败,堆叠系统内所有业务网络将中断。另一方面,堆叠系统往往在接入层承担服务器双归保护接入的角色,或者在汇聚处承担高可靠网关的角色,这意味着升级失败可能导致整个服务瘫痪。Link-aggvirtualization(M-LAG)水平虚拟化,从需求的角度,是为了满足接入层的需求,汇聚层的二层跨设备冗余,三层网关的跨设备冗余聚合层。是否有其他技术支持水平虚拟化而不堆叠?答案当然是肯定的。华为CloudEngine系列数据中心交换机的M-LAG(MultichassisLinkAggregationGroup)就支持这种虚拟化技术。该技术仅在两台设备的link-agg级别实现二层虚拟化,两台成员设备的管理平面和控制平面相互独立。注意:维基百科将此技术称为MC-LAG(多机箱链路聚合组),CISCO将其称为vPC(虚拟端口通道)。下面使用维基百科的术语,简称为MC-LAG。MC-LAG支持跨设备链路捆绑组网,支持Dual-ActiveL3GW。在接入侧,从对端设备和服务器的角度来看,MC-LAG类似于一个堆叠。但是从三层网络来看,MC-LAG的两个成员节点有自己独立的IP地址,两个节点有自己独立的管理和控制平面。从架构上看,MC-LAG的两个成员设备只有数据面的耦合和协议面的轻耦合:MC-LAG的架构决定了该技术方案不存在三个难以解决的问题stacking:那么,说了这么多MC-LAG的好处,就没有缺点了吗?当然不是,尺码长,尺码短。***节对比了stacking和MC-LAG的优缺点,并给出了场景选择的建议。Stacking和MC-LAG的对比和选型建议根据上面的对比表,Stacking和MC-LAG各有优缺点。一般来说,对于网络设计人员和维护人员来说,堆叠在管理和维护方面更胜一筹,而MC-LAG在可靠性和升级风险低方面更胜一筹。在设计数据中心网络方案时,需要权衡取舍,可选择以下策略:◆策略一:汇聚层优先考虑可靠性和升级便利性,选择M-LAG;接入层设备量大,易维护,优先考虑业务部署,选择堆叠。◆策略二:可靠性优先,升级风险低,采用M-LAG汇聚接入。◆策略三:优先考虑业务部署和维护的便利性,采用堆叠方式进行汇聚和接入。