1.背景随着网络技术的发展,数据中心已经成为提供IT网络服务和分布式并行计算的基础设施。数据中心的应用范围越来越广,应用需求越来越大,业务数据量在T/P级以上。此外,视频、金融等业务数据对服务质量、时延、带宽等都有严格的要求。因此,在建设数据中心网络时,对数据中心网络的性能要求非常高。1.数据中心成本表1显示了数据中心的成本,其中大部分来自服务器。但数据中心服务资源利用率不高,服务器利用率通常在30%以下。除了利用率低之外,供应周期长、需求变化不确定、需求更新快、管理风险高、需要冗余资源来保证容错,这些都导致了数据中心的高成本。表1.数据中心成本2.数据中心性能要求数据中心性能要求包括:灵活性、可扩展性、多路径传输、低延迟、高带宽、模块化设计、网络扁平化设计、低成本、绿色节能等。其中最重要的是灵活性,即数据中心的服务可以分配给任何一台服务器。这样可以提高服务开发的效率,降低成本。实现灵活性的三个重要方面:工作负载管理:服务代码可以快速部署在服务器上。存储管理:在分布式存储系统中,服务器可以快速访问存储的数据。网络:服务器可以与数据中心内的其他服务器通信。2、树形数据中心网络架构树形架构在传统数据中心中最为常用,如图1所示。传统数据中心网络是三层架构,最底层是处理业务的服务器,第二层是进行数据交换的交换机,第三层是进行路由的接入路由器和边界路由器。1.处理请求的过程。各种应用程序同时在数据中心运行。每个应用程序通常在一组特定的服务器上运行。在数据中心,来自互联网的请求通过负载均衡分发到应用对应的服务池中。处理。接收外部请求的IP地址称为虚拟IP地址(VIP),负责处理请求的服务器集合称为直接IP地址(DIP)。来自Internet的请求通过第3层边界路由器(BR)和接入路由器(AR)路由到第2层域。在图1连接的交换机的负载均衡器(LB)上配置了应用对应的VIP地址。对于每个VIP,LB都配置了一个DIP列表,其中包括服务器(A)的内部私有地址。负载均衡器根据这个列表,将接收到的请求分发到DIP对应的服务器池中进行处理。图1传统数据中心网络架构2.树形架构存在的问题由于单台交换机的寻址能力有限,数据中心需要增加更多的交换机来扩展业务,因此需要在三层路由器的基础上增加三层路由器2个开关。然而,这种层次化的树形结构存在一系列问题,导致数据中心资源利用率低下。(1)服务器间带宽有限在数据中心,服务器与交换机之间的链路速率通常为1Gb,交换机域内交换机之间的链路带宽为10Gb。如图2所示,如果每台交换机下有50台服务器,则服务器到交换机的总带宽为50Gb,远远大于交换机之间的带宽。那么服务器和交换机之间的超额订阅比例是5:1。级别越高超额越严重,服务器和路由器的超额比例甚至达到了200:1。在这种情况下,一个子网中的服务器与另一个子网中的服务器之间的通信将受到上层链路带宽的限制,未能抢占带宽的服务器只能等待,浪费服务器资源。图2树状结构的超额订阅(2)资源分散如图3所示,如果同一个服务的服务器不部署在同一个子网中,服务器之间的通信会受到上述超额订阅现象的影响,所以会增加通信开销。为了避免这种现象,同一个服务的服务器尽量部署在一个服务器集中。为了服务的可扩展性和稳定性,需要增加一些冗余资源,但这些资源在不使用时很难被其他资源使用。服务使用,造成资源浪费。图3.资源分散现象(3)资源利用率低。影响不同服务之间超额订阅和资源分散的问题将导致服务资源利用率低下。不仅如此,同一子网内的不同服务也会相互影响。例如,当一个服务泛洪时,同一子树中的其他服务器也会受到影响。3.VL2数据中心网络架构VL2数据中心网络架构由微软提出。通过观察多个实际数据中心的流量,总结数据中心流量特征,设计了虚拟二层网络架构。采用CLOS架构、新型数据中心内部寻址方式和VLB、ECMP等算法,实现了灵活、高性能、高利用率的数据中心网络架构。1.VL2架构如图4所示,VL2架构分为两层:底层服务器和上层交换机。这两层通过架顶式(ToR)交换机连接。交换机层包括汇聚交换机和中间交换机。AggregateSwitches和IntermediateSwitches之间的链路连接形成一个完整的二分图。网络采用CLOS架构扩展链路带宽。每个汇聚交换机都可以通过中继交换机连接到其他汇聚交换机。如果n个中继开关中的任何一个发生故障,只会减少1/n的双向带宽。这种设计增加了路径的数量和网络的鲁棒性。图4.VL2架构2.VL2寻址方式VL2在数据中心内部使用两种地址,其中底层服务器使用AA(ApplicationAddresses),上层交换机使用LA(LocatorAddresses)。在这种地址分配方式下,服务器会认为自己和其他服务器在同一个子网中,因为它们使用相同的AAs地址前缀。VL2通过在服务器的协议栈中添加shim子层、ToR交换隧道和目录系统来实现寻址。具体寻址方式如图5所示:应用程序所在的服务器S与另一台服务器D进行通信,第一次通信时,S会发送ARP包请求D的物理地址,此时shim层在协议栈中会拦截这个ARP包,即不会发生ARP广播,??但是会向目录系统发送数据,请求D的LA的地址。目录系统记录了AAs-LAs的映射关系,其中AAs是服务器的地址,LAs是服务器所连接的ToR交换机的地址。因此,目录服务器收到S的请求后,返回D的ToR服务器地址。shim层收到目录系统的响应后,对数据包进行封装,目的地址为D的ToR地址,即洛杉矶地址。然后将数据包发送到自己的ToR服务器。这个ToR通过汇聚交换机和中继交换机将数据包发送给D的ToR交换机。D的ToR交换机收到数据,解封装,得到数据包的真实目的地址,转发给服务器。3.3VL2负载均衡和多路径传输VL2使用VLB实现负载均衡,ECMP实现多路径传输。如图5所示,中继交换机都使用相同的LAs地址,任意一台交换机与中继交换机之间的距离为3跳,没有远近之分。每个汇聚交换机都可以与服务器通信。数据到达汇聚交换机后,汇聚交换机会随机选择一条路径传输数据,因为中继交换机的地址是相同的,所以只需要选择链路状态好的路径传输即可,从而实现多径传输。图5.VL2的寻址方式3.VL2的目录更新机制VL2的目录系统主要包括两部分:RSM(复制状态机)和DS(目录系统)。其中RSM用于保证多个目录服务器之间的一致性,LAs-AAs映射的可靠性主要用于写映射。DS主要用于读取映射和响应用户的映射请求。每个DS将所有的AAs-LAs映射缓存在RSM中,每30秒与RSM同步一次。服务器更新时,比如虚拟机迁移,会主动向DS服务器发送更新消息,DS将更新消息发送给RSM服务器。RSM服务器收到消息后,更新自己的映射关系,并将此更新复制到所有其他RSM,用于映射备份和冗余。然后向DS服务器回复ACK消息,确认映射已经更新,DS向服务器回复ACK消息,确认映射已经更新。最后通知所有DS更新映射。此外,VL2还采用了被动更新机制。如果一个DS服务器收到一个陈旧的映射请求,即映射不再存在但DS还没有更新。DS仍然会在不知不觉中响应这个过时的映射请求,但是接收方的ToR交换机发现目的服务器不在自己的域内,向DS转发消息通知DS映射已经过期,触发DS进行映射更新。图6.VL2的目录更新机制4.总结Vl2采用全新的网络架构,解决了传统数据中心超额订阅、资源利用率低、数据中心成本高等问题。增加数据中心的带宽,通过新的寻址方式解决资源碎片化问题。满足了数据中心对灵活性的需求。并使用VLB、ECMP等算法实现负载均衡和多路径传输,提高资源利用率,提高网络稳定性。但是VL2架构需要改变服务器的主机协议栈,需要高性能、低延迟的目录系统来提供映射搜索服务,给数据中心带来了额外的开销。
