作者系:中科院声学所 国家网络新媒体工程技术中心 ——李博
中科院声学所 国家网络新媒体工程技术中心 ——井丽南
一、背景
随着网络技术的发展,数据中心已经成为提供IT网络服务、分布式并行计算等的基础架构。数据中心应用范围愈加广泛,应用需求不断增加,业务数据量达T/P级以上。另外,如视频、金融业务数据等对服务质量、时延、带宽都有严格要求,因此构建数据中心网络时,对于数据中心网络的性能要求很高。
1. 数据中心成本开销
表1中为数据中心的成本开销,其中大部分开销来源于服务器,然而数据中心的服务资源利用率并不高,服务器利用率通常在30%以下。除了利用率低外,供应周期长,需求变化不确定、需求更新快,管理风险大,需要冗余资源来保证容错性等原因都造成了数据中心的成本过高。
表1. 数据中心的成本开销
2. 数据中心性能要求
数据中心的性能要求包括:实现灵活性,可扩展性,多路径传输,低时延、高带宽,模块化设计、网络扁平化设计,低成本、绿色节能等。其中最为重要的是灵活性,即把数据中心的服务可以分配到任何一个服务器上。这样可以提高服务开发的效率,降低成本。实现灵活性的三个重要方面:
工作负载的管理:可以快速的在服务器上部署服务代码。
存储管理:在分布式的存储系统中,服务器可以快速访问存储的数据。
网络:服务器可以和数据中心的其他服务器进行通信。
二、树形数据中心网络架构
在传统数据中心中使用最多的为树形架构,如图1所示。传统数据中心网络为一个三层架构,最底层为处理服务的服务器,第二层为进行数据交换的交换机,第三层为进行路由的接入路由器和边界路由器。
1. 处理请求的过程
多种应用同时在数据中心内运行,每种应用一般运行在特定的服务器集合上,在数据中心内部,来自因特网的请求通过负载均衡分配到这个应用对应的服务池中进行处理。其中接收外部请求的IP地址称为虚拟IP地址(VIP),负责处理请求的服务器集合为直接IP地址(DIP)。来自因特网的请求通过3层边界路由器(BR)和接入路由器(AR)被路由到2层域,应用对应的VIP地址被配置在图1中连接的交换机的负载均衡器上(LB),对于每个VIP,LB配置了一个DIP列表,这个列表包括服务器(A)的内部私有地址,根据这个列表,负载均衡器将接收到的请求分配到DIP对应的服务器池中进行处理。
图1. 传统数据中心网络架构
2. 树形架构存在的问题
由于单个交换机的寻址能力有限,数据中心为了扩展服务,增加更多交换机,因此在二层交换机的基础上需要三层路由器。但这种层次性的树形架构存在一系列问题,导致数据中心资源利用率低。
(1) 服务器到服务器之间的带宽有限
数据中心中,服务器到交换机之间的链路速率通常为1Gb,交换机域交换机之间的链路带宽为10Gb。如图2所示,若每个交换机下有50个服务器,那么服务器到交换机的总带宽为50Gb, 远远大于交换机之间的带宽。那么服务器与交换机之间的超额认购(over-subscription)比例为5:1。层次越高超额认购的情况越严重,服务器与路由器的超额认购比例甚至达到200:1。这种情况下,一个子网内的服务器与另一个子网内的服务器进行通信就会受到上层链路带宽的限制,未能抢占到带宽的服务器只能等待,浪费了服务器资源。
图2. 树形架构的超额认购情况
(2) 资源分散
如图3所示,若同一服务的服务器没有部署到同一子网内,服务器之间的通信就会受到上述超额认购现象的影响,因此会增加通信开销。为了避免这种现象,同一服务的服务器尽量部署在一个服务器集合内,为了服务的可扩展性和稳定性,就需要增加部分冗余资源,但这部分资源在没被使用时也很难被其他服务使用,造成了资源的浪费。
图3. 资源分散现象
(3) 资源利用率低,不同服务之间存在影响
超额认购、资源分散的问题都会导致服务资源利用率低,不仅如此,在同一子网内的不同服务还会相互存在影响。例如一个服务发生流量泛洪时,在同一子树内的其他服务器也会受到影响。
三、 VL2数据中心网络架构
VL2数据中心网络架构由微软提出,在观察了多个实际数据中心中的流量后,总结数据中心流量特点,设计了一个虚拟2层的网络架构。使用CLOS架构,新的数据中心内部寻址方式以及VLB、ECMP等算法实现的具有灵活性,高性能,高利用率的数据中心网络架构。
1. VL2架构
如图4所示,VL2架构分为底层服务器和上层交换机两层架构,这两层之间使用机架交换机(top of rack,简称ToR)连接。其中交换机层包括汇聚交换机(Aggregate Switches)和中继交换机(Intermediate Switches),汇聚交换机和中继交换机之间的链路连接形成完全二分图,网络采用CLOS架构,扩展链路带宽。每个汇聚交换机都可以通过中继交换机与其他汇聚交换机相连。n个中继交换机任何一个失效,只会减小1/n的双向带宽,这种设计增加了路径数量和网络的健壮性。
图4. VL2架构
2. VL2的寻址方式
VL2在数据中心内部使用两种地址,其中底层服务器使用AAs(Application Addresses), 上层交换机使用LAs(Locator Addresses)。在这种地址分配方式中,服务器会认为与其他服务器都在同一个子网中,因为他们使用相同的AAs地址前缀。VL2通过在服务器的协议栈中增加shim子层、ToR交换机隧道、目录系统实现寻址。具体寻址方式如图5所示:应用所在服务器S与另一服务器D进行通信,在第一个通信时,S会发送ARP数据包请求D的物理地址,此时协议栈中的shim层将会拦截此ARP数据包,即不会发生ARP广播,而是向目录系统发送数据,请求D的LAs地址。目录系统记录AAs-LAs的映射关系,其中AAs为服务器的地址,而LAs为服务器连接的ToR交换机地址,因此目录服务器收到S的请求后,返回的是D的ToR服务器地址。shim层在收到目录系统的应答后,将数据包封装,其目的地址为D的ToR地址,即LAs地址。然后将数据包发给自己的ToR服务器。此ToR通过汇聚交换机、中继交换机将数据包发送到D的ToR交换机。D的ToR交换机受到数据后,进行解封装,获取数据包的真实目的地址,并将其转发给服务器。3.3 VL2负载均衡与多路径传输
VL2使用VLB实现负载均衡,ECMP实现多路径传输。如图5所示,中继交换机全部使用相同的LAs地址,对于任意交换机与中继交换机都是3跳的距离,不存在远近之分。每个汇聚交换机都可以与服务器通信。数据到达汇聚交换机后,汇聚交换机会随机选择路径进行传输数据,因为中继交换机的地址是相同的,因此只要选择链路状态好的路径传输就可以,以此实现多路径传输。
图5. VL2的寻址方式
3. VL2的目录更新机制
VL2的目录系统主要包括两部分:RSM(Replicated State Machine),DS(Directory System)。其中RSM用来保证多个目录服务器之间的一致性,LAs-AAs映射的可靠性,主要用来写映射。而DS主要用来读映射,相应用户的映射请求。每个DS都会缓存RSM中全部的AAs-LAs的映射,每30秒和RSM进行一次同步。当服务器发生更新时,例如虚拟机的迁移,会主动向DS服务器发送更新消息,DS将更新消息发送给RSM服务器。RSM服务器收到消息后,更新自己的映射关系,并复制这个更新到所有其他的RSM,进行映射备份,冗余。然后回复DS服务器ACK消息确认已更新映射,DS回复服务器ACK确定已更新映射。最后通知全部的DS进行映射更新。另外,VL2还使用一种被动更新机制。若某个DS服务器接收到一个陈旧的映射请求,即映射已不存在但此DS尚未更新。DS在不知情的情况下,仍会用这个陈旧的映射请求进行响应,但接收方的ToR交换机发现目的服务器并不在自己的域内,会向DS转发信息通知DS此映射已过期,触发DS进行映射更新。
图6. VL2的目录更新机制
四、总结
vl2通过一种新的网络架构解决传统数据中心中存在的超额认购,资源利用率低,数据中心成本高等问题。增加数据中心内的带宽,并用一种新的寻址方式解决资源分段问题。实现了数据中心灵活性的需求。并利用VLB、ECMP等算法实现负载均衡和多路径传输,增加资源利用率,提高网络稳定性。但VL2架构需要更改服务器的主机协议栈,并且需要一个高性能,低时延的目录系统提供映射查找服务,为数据中心带来额外的开销。
领取专属 10元无门槛券
私享最新 技术干货