1、数据中心高可用网络系统设计数据中心作为承载企业业务的重要 IT 基础设施,承担着稳定运行和业务创新的重任。伴随着数据的集中,企业数据中心的建设及运维给信息部门带来了巨大的压力,“数据集中就意味着风险集中、响应集中、复杂度集中”,数据中心出现故障的情况几乎不可避免。因此,数据中心解决方案需要着重关注如何尽量减小数据中心出现故障后对企业关键业务造成的影响。为了实现这一目标,首先应该要了解企业数据中心出现故障的类型以及该类型故障产生的影响。影响数据中心的故障主要分为如下几类: 硬件故障 软件故障 链路故障 电源/环境故障 资源利用问题 网络设计问题本文针对网络的高可用设计做详细的阐述。高可用数据中心
2、网络设计思路数据中心的故障类型众多,但故障所导致的结果却大同小异。即数据中心中的设备、链路或 server 发生故障,无法对外提供正常服务。缓解这些问题最简单的方式就是冗余设计,可以通过对设备、链路、Server 提供备份,从而将故障对用户业务的影响降低到最小。但是,一味的增加冗余设计是否就可以达到缓解故障影响的目的?有人可能会将网络可用性与冗余性等同起来。事实上,冗余性只是整个可用性架构中的一个方面。一味的强调冗余性有可能会降低可用性,减小冗余所带来的优点,因为冗余性在带来好处的同时也会带来一些如下缺点: 网络复杂度增加 网络支撑负担加重 配置和管理难度增加因此,数据中心的高可用设计是一个综
3、合的概念。在选用高可靠设备组件、提高网络的冗余性的同时,还需要加强网络构架及协议部署的优化,从而实现真正的高可用。设计一个高可用的数据中心网络,可参考类似 OSI 七层模型,在各个层面保证高可用,最终实现数据中心基础网络系统的高可用,如图 1 所示。图 1 数据中心高可用系统设计层次模型数据中心网络架构高可用设计企业在进行数据中心架构规划设计时,一般需要按照模块化、层次化原则进行,避免在后续规模越来越大的情况再进行大规模的整改,造成时间与投资浪费。模块化设计模块化设计是指在对一定范围内的不同功能或相同功能不同性能、不同规格的应用进行功能分析的基础上,划分并设计出一系列功能模块,模块之间松耦合,
4、力求在满足业务应用要求的基础上使网络稳定可靠、易于扩展、结构简单、易于维护。不同企业的应用系统可能有一定的差异。在网络层面,根据应用系统的重要性、流量特征和用户特征的不同,可大致分为以下几个区域,如图 2 所示。图 2 企业数据中心典型模块划分需注意几下几点:1) 企业园区网核心与数据中心核心分离,各司其职园区网核心主要承接纵向流量和用户的接入控制(DHCP、认证等);数据中心核心主要承接服务器间的流量(横向流量居多)。数据中心核心交换机上尽可能少的部署策略和配置,保证其互连互通的高可靠、高性能,同时在扩展新的模块时力求达到核心设备配置的零更改,各模块之间互通的松耦合,避免某功能模块的故障影响
5、其它功能模块,实现风险分散、灵活扩展;2) 分布式安全部署与传统的防火墙集中在核心旁挂的方式不一样,在模块化数据中心网络架构中,安全设备应下移到各功能模块的出口(汇聚层)位置,如图 2 的红色网格线所示。而不是旁挂部署在核心交换区,这样做的目的也是分散风险,实现各模块间的松耦合。数据中心核心交换区就像是连接各城市的高速公路,建设时应充分保证其高可靠和高性能,而不部署红绿灯调度;3) 内部服务器区细分子区4) Intranet 服务器区是企业应用系统的关键分区,此分区可根据应用业务的关键性、实时性等特征的不同,可考虑再进行子分区的划分,一般而言可分为“关键业务区”、“通用业务区”、“财务应用区”
6、几类,子分区可以是物理的,也可以是逻辑的。如果是逻辑的,可为每个子分区分配一个虚拟防火墙来部署安全策略。在业务系统复杂,服务器数据较多的情况下(=200 台),建议采用物理子分区,每个子分区采用独立的汇聚交换机和安全设备。层次化设计数据中心层次化设计包括网络架构分层和应用系统分层两个方面。在当前网络及安全设备虚拟化不断完善的情况下,应用系统分层可完全通过设备配置来实现逻辑分层,不影响网络的物理拓扑。对于网络架构层次化设计,选择三层架构还是二层架构是不少企业进行数据中心网络建设时面临的难题。传统网络中,网络各层的职责大致定义如下: 核心层:主要负责的是数据的交换与路由,不负责处理; 汇聚层:主要
7、负责的是数据的处理,选择和过滤等操作; 接入层:主要负责的是数据的接受与发送,负责端到端的链路建立和释放。从可靠性的角度来看,三层架构和二层架构均可以实现数据中心网络的高可用。近年来随着云计算的逐渐兴起,二层扁平化网络架构更适合云计算网络模型,可以满足大规模服务器虚拟化集群、虚拟机灵活迁移的部署。如表 1 所示为二层和三层架构对比,可见,两者之间没有绝对的优劣之分,企业用户可根据自身的业务特点进行选择,也可以先二层,后续针对某些特定的功能分区采用三层组网。三层架构 二层架构可靠性 增加了一层网络设备,意味着故障点增加网络故障点相对较少,但同时故障点也相对集中安全性 网关和安全策略皆部署在汇聚层
8、,方便部署安全策略部署在接入层,相对比较分散,部署工作量大服务器接入数量 较多 较少扩展性 同一功能分区内服务器数量扩展多,可灵活实现物理分区内的子逻辑分区同一功能分区内服务器数量扩展受限运维管理 设备和管理点较多 设备少,管理点较少成本 汇聚和接入设备可灵活选择配合,达到最佳的成本控制接入设备要求较高,选型受限适合场景 服务器数量多,安全策略控制严格的场合服务器集群、虚拟机迁移应用较多,服务器搬迁移动频繁场合表 1 三层组网与二层组网对比模块化、层次化的架构设计将数据中心网络风险进行了分散,将出现问题后的影响降低到最小,同时模块之间的松耦合可增强数据中心的扩展,简化网络运维,降低在扩展的过程
9、中管理员的人为故障,保证数据中心的可用性。设备层高可用设计设备可靠是系统可靠的最基本保证,数据中心核心交换区设备的可靠稳定尤为重要。尽管可以通过架构、策略、配置等的调整和优化等多种手段降低核心设备的故障几率以及影响范围,但若要解决最根本的设备本身的软硬件故障,则必须选用数据中心级的网络设备。关于数据中心级设备,业界还没有标准的定义,但从目前主流网络设备供应商提供的数据中心解决方案产品可以看出,数据中心级交换机应具备以下特征:1) 控制平面与转发平面物理分离传统的园区网交换机一般采用“Crossbar+共享缓存”的交换架构,引擎板继承担控制平面的工作,同时也承担数据转发平面的工作,跨槽位的流量转
10、发报文需要经背板到引擎板的 Crossbar 芯片进行转发。这种架构限制了设备的可靠性和性能: 可靠性限制:引擎需要承接数据转发平面的工作,因此在引擎出现主备倒换时必然会出现丢包。此外引擎 11 冗余,也使得 Crossbar 交换网只能是 11 的冗余,冗余能力无法做的更高。 性能限制:受制于业界当前 Crossbar 芯片的工艺以及引擎 PCB 板卡布线等制造工艺,将 Crossbar 交换网与 CPU 主控单元集中在一块引擎板上的结构,一般单块引擎的交换容量不可能做的太高(一般约 1TB 左右)。数据中心级交换机产品将控制平面与转发平面物理分离,一般有独立的引擎板和交换网板,同时采用 C
11、LOS 多级交换架构,大大提高设备的可靠性及性能。如表 2 所示为 CLOS 架构与传统的 Crossbar+共享缓存交换架构对比。图 3 Crossbar 架构也 CLOS 架构逻辑实现Crossbar+共享缓存 CLOS 多级交换结构 1,单平面交换;2,交换矩阵和控制统一,即引擎承担了交换和控制双重功能;1,多块交换网板共同完成流量交换2,控制和交换硬件分离转发能力 受限于交换网片的交换能力和PCB 单板制造工艺,单引擎达到 1TB 以上就很难提升。多块交换网板同时分担业务流量,相当于 N 倍于单级交换的能力,可实现 510TB 交换容量可靠性 引擎倒换会丢包 控制平面与转发平面硬件物理
12、分离,引擎切换时不影响转发,可实现零丢包冗余能力 引擎 11 冗余,双引擎负载分担式无冗余引擎 11 冗余,交换网板 N+1 冗余表 2 Crossbar 与 CLOS 交换架构对比2) 关键部件更强的冗余能力除了引擎和交换网板的冗余外,此类设备的电源一般均可以配置多块,实现 N+M 的冗余,保证电源的可靠性更高;另外风扇的冗余也由原来的风扇级冗余,提高到了风扇框冗余,每个独立的风扇框内多个风扇冗余。3) 虚拟化能力数据中心的复杂度越来越高,需要管理的设备也越来越多,设备的虚拟化可将同一层面(核心、汇聚、接入)的多台设备虚拟化为一台,进行设备的横向整合,简化设备的配置和管理。4) 突发大流量的
13、缓冲能力随着业务整合、资源共享、数据仓库、数据挖掘及智能分析等业务的部署,数据中心内部和业务服务器之间的横向流量将会越来越多。流量模型的变化会导致多服务器群向一个服务器群的流量、多个应用服务器向同一个数据库服务器的流量越来越频繁。这种多对一的流量模型是一种典型的拥塞模型,如果网络设备的缓存能力不够,将会导致丢包重传,导致业务系统的响应时间变长或中断。基于 CLOS 架构的数据中心级设备对端口的缓存容量进行扩容,并采用了新一代的分布式缓存机制,将原有的出方向缓存移至入方向,在同样的端口缓存容量条件下,这种分布式的缓存机制可以更好的缓存多对一的拥塞模型,能够更好的吸收数据中心的突发大流量。如图 4
14、 所示。图 4 分布式入端口报文缓存设计5) 绿色节能数据中心是企业能耗的主要部门,同时高的能耗将会带来高的发热量,影响设备的电子器件的稳定性,将到据中心设备的稳定运行。选用低能耗设备降低发热量是提高可靠性的一个方面,另一方面设备本身的散热风道设计的合理与否?能否更好的配合机房的空调循环?也影响着数据中心的可靠性。为更好的配合机房冷热风道的布局,机柜中发热量较大的设备最后是前后散热的风道设计。但普通的横插槽设备一般是左右散热的方式,因此应优先考虑采用竖插槽的设备,实现前后散热。链路层(L2)高可用设计在数据中心网络部署中,在实现设备和链路冗余提高可靠性的同时,也会带来环路和复杂度的增加。一旦链
15、路成环路很容易导致广播风暴,耗尽网络链路及设备资源。1) 常见组网方式对于传统的数据中心服务器区接入汇聚交换网络,针对无环设计和有环设计有多种选择方案。如图 5 所示。可以看出,三角形组网提供了更高的接入可用性以及更灵活的服务器扩展能力,所以通常推荐此组网方式。图 5 数据中心服务器接入汇聚常见组网拓扑 优点 缺点1倒 U 型不启用 STP,好管理VLAN 可以跨汇聚层交换机,服务器部署灵活必须通过链路聚合保证高可用性汇聚交换机故障时,服务器无法感知,无法实现高可用接入2正 U 型不启用 STP,好管理双 active 链路,接入交换机密度高不能使 VLAN 跨汇聚层,服务器部署不灵活接入交换
16、机间链路故障,VRRP 心跳报文无法传递,整机做 VRRP 主备切换,故障收敛时间长。3三角形链路冗余,路径冗余,故障收敛时间最短VLAN 可以跨汇聚层交换机,服务器部署灵活存在环路,需要启动 STP 协议4矩形双 active 链路,接入交换机密度高VLAN 可以跨汇聚层交换机有一半的接入层流量要通过汇聚交换机之间的链路。当接入交换机上行链路故障时,所有流量将从一侧的交换机上行。收敛比变小,网络易拥塞,降低网络高可用性。存在环路,需要启动 STP 协议表 3 组网方式优缺点对比需要指出,接入交换机直接双上行与汇聚层设备相连,冗余连接并不是越多越好,最小的三角形环能够提供最快的收敛速度和最高的
17、可用性。例如图 6中右侧图组网拓扑在接入层交换机和汇聚层交换机之间采用全交叉冗余,是一种过度冗余组网,反而增加交换机的生成树计算的复杂性以及故障排错的复杂性,所以不建议按这种方式部署。图 6 过度冗余与推荐组网2) 通过虚拟化技术简化网络虽然三角形组网已经成为数据中心接入设计的最佳实践,但从网络的拓扑设计、环路规避、冗余备份等角度考虑,设计过程是极其复杂的。如 VLAN 的规划、生成树实例的拓扑阻塞、网关冗余选择,包括相应技术的参数选择、配置,故障切换的预期判断等,需要一套十分详细的流程,而在后期网络运行维护过程中面临的压力和复杂度是显而易见的。因此,引入虚拟化设计方式简化网络则显得尤为重要。
18、通过以 H3C IRF2 为代表的虚拟化技术,在不改变传统设计的网络物理拓扑、保证现有布线方式的前提下,实现网络各层的横向整合,即将交换网络每一层的两台、多台物理设备形成一个统一的交换架构,减少了逻辑的设备数量,同时实现跨设备的链路捆绑,消除环路的同时保证链路的高可用。关于 IRF2 技术与应用的详细介绍,请参考本刊“数据中心 IRF2 虚拟化网络架构与应用”一文。协议层(L3)高可用设计数据中心网络的协议层高可用设计可以从以下三个方面考虑:1) 路由协议部署数据中心汇聚层到核心层间可采用 OSPF 等动态路由协议进行路由层面高可用保障。常见连接方式有两种,如图 7 所示。拓扑 1 采用了三角
19、形连接方式,从汇聚层到核心层具有全冗余链路和转发路径;拓扑 2 采用了四边形连接方式,从汇聚层到核心层没有冗余链路,当主链路发生故障时,需要通过路由协议计算获得从汇聚到核心的冗余路径。所以,三角形拓扑的故障收敛时间较短,但要占用更多的设备端口。图 7 数据中心核心汇聚组网设计在采用模块化、层次化设计之后,数据中心内部各分区与核心交换区的路由将会大大简化,针对拓扑 1 的组网方式,可进行 IRF2 横向整合,对汇聚层、核心层的双机设备进行虚拟化,实现跨设备链路捆绑实现汇聚层上行到核心层的多链路负载分担与备份,在此基础之上,核心层与汇聚层仅需要一个 VLAN 三层接口互联,直接在此 VLAN 三层
20、接口上部署静态路由,简化数据中心内部的协议部署。此方式将简化后续运维的复杂度,但对于数据中心外联模块,由于外部路由相对较复杂,可部署 OSPF 动态路由,提高路由选择的灵活性。数据中心总体路由结构如图 8 所示。图 8 数据中心总体路由结构图2) 快速检测与切换为了减小设备故障对数据中心业务的影响、提高网络的可用性,设备需要能够尽快检测到与相邻设备间的通信故障,以便能够及时采取措施,从而保证业务继续进行。通常情况下,路由协议中的 Hello 报文机制检测到故障所需的时间为秒级,在这时间内会导致数据中心内部 Gbps 速率级高速数据传输的大量数据丢失。BFD(Bidirectional Forw
21、arding Detection,双向转发检测)在此背景之下产生。它是一套全网统一的检测机制,用于快速检测、监控网络中链路或者IP 路由的转发连通状况,保证邻居之间能够快速检测到通信故障,50ms 内建立起备用通道恢复通信。BFD 检测可部署在广域/域城出口模块,如图 9 所示。数据中心核心层与外联模块(广域区、城域区)之前运行 OSPF 动态路由协议,并在核心层交换机上配置 BFD 与 OSPF 路由联动。广域、城域路由设备或链路出现故障时,核心交换机快速感知,并通告 OSPF 进行快速收敛,缩短数据中心外联数据故障恢复时间。图 9 数据中心 BFD 部署OSPF 使用 BFD 进行快速故障
22、检测时,OSPF 可以通过 Hello 报文动态发现邻居,OSPF 将邻居地址通知 BFD 就开始建立会话。BFD 会话建立前处于 down 状态,此时 BFD 控制报文以不小于 1 秒的时间间隔周期发送以减少控制报文流量,直到会话建立以后才会以协商的时间间隔发送以实现快速检测。BFD 还可以部署在 IRF2 虚拟组内,快速检测出 IRF 分裂,提高 IRF 虚拟化部署的可用性。3) 不间断转发在部署了动态路由协议的数据中心网络中,若设备进行主备切换时,将会导致它与邻居关系出现震荡。这种邻居关系的震荡将最终导致路由协议的震荡与重新计算收敛,使得主备切换路由器在一段时间内出现路由黑洞或者导致邻居
23、将数据业务进行旁路,进而会导致业务出现暂时中断。为了实现不间断转发,设备本身需要支持数据转发与控制分离,支持双主控设计;同时需要部分保存协议的状态(控制平面),并借助邻居设备的帮助,实现发生主备切换时控制平面的会话连接不重置、转发不中断的目的。其相应的技术为路由协议的 Graceful Restart(平滑重启)扩展,简称 GR。GR 机制的核心在于:当某设备的路由协议重启时,能够通知周边设备在一定时间内将到该设备的邻居关系和路由保持稳定。该设备路由协议重启完毕后,周边设备协助其进行路由信息同步,使其各种路由信息在尽量短的时间内恢复到重启前的状态。在整个协议重启过程中,网络路由和转发保持高度稳
24、定,报文转发路径也没有任何改变,整个系统可以不间断地转发 IP 报文。在数据中心 OSPF 动态路由部署的区域(广域、外联、园区、互联网等)中,一般按照如图 10 所示的组网结构部署 GR。图 10 数据中心 GR 部署 使用 GR 保证网络中的核心层节点和广域出口节点在出现协议重启时的转发业务不中断,避免出现不必要的路由振荡。 核心层节点和广域出口节点作为 GR Restarter(同时缺省也作为 GR Helper),分支节点作为 GR Helper。这样当广域出口节点发生主备切换或重启 OSPF 进程时,核心节点可以作为 GR Helper 协助其进行 LSDB 重同步,并且保持转发不中
25、断;当核心层节点发生主备切换或重启 OSPF 进程时,广域出口节点和分支节点都可以作为 GR Helper 协助其进行 LSDB 重同步,并且保持转发不中断。应用层(L4L7)高可用设计在数据中心网络层面实现 L4L7 层的高可用,可采用负载均衡的方案。L4L7 层负载均衡一方面可以提高服务器的响应能力和链路的带宽利用率,另一方面可以保证单台服务器或单条链路出现故障后,业务数据无缝分摊到其它服务器和链路,从而实现数据中心的高可用。1) 链路负载均衡(LLB)链路负载均衡常部署在数据中心的广域接入区和互联网接入区,通过静态表项匹配及动态链路检测,对多条链路状态进行实时的探测和监控,确保流量以最合
26、理及快速的方式分发到不同链路上,实现业务的高效传输。对于数据中心广域接入区,由于广域网出口流量仍然是企业内网数据流,在 L4层一般可通过 IP 报文的五元组特征区分出不同的业务流,因此可直接在路由器上通过分层 CAR、跨端口的流量转发实现负载分担、关键业务带宽保证、广域链路捆绑。无需专门的 LB 设备。如图 11 所示。流量控制要求如下:基本业务分流:生产业务走主链路,办公和视频业务走备用链路。超负荷流量调度:无论主备链路,超负荷流量走对方链路;备用链路视频业务不要进行超负荷流量分担;纵向出口进行多业务 QoS 调度。设计实现基本业务分流:通过 OSPF COST 设计,生产业务默认走主链路转
27、发,对办公和视频业务采用策略路由走备链路。超负荷流量调度:以备链路为例,需要在数据中心广域网的入口进行流量监管CAR,超过 10M 的流量结合策略路由调度到左侧路由器。为保证视频流量不会被调度到左侧路由器,必须采用分层 CAR 实现。图 11 路由器分层 CAR 技术实现链路负载分担对于 Internet 出口链路负载均衡,由于内网用户访问的数据流不固定,特征复杂,很难在 L4 层区分出不同的业务流,因此需要部署专门的负载均衡设备实现多运营商出口的链路负载均衡。并启用 Inbound 和 Outbound 两个方向的负载均衡,一方面满足企业内网用户或服务器访问外部 Internet 站点的流量
28、分担;另一方面满足外网用户通过 Internet 访问企业公共服务(如网站、FTP 等)的流量分担。如图 12 所示图 12 Outbound 链路负载均衡 用户将访问外网的报文发送到 LB 负载均衡设备后,负载均衡设备根据就近性算法和调度策略,将内网访问外网的业务流量分别分发给相应的链路。图 13 Inbound 链路负载均衡 负载均衡设备作为权威名称服务器记录域名与内网服务器 IP 地址的映射关系。一个域名可以映射为多个 IP 地址,其中每个 IP 地址对应一条物理链路。外网用户通过域名方式访问内网服务器时,本地 DNS 服务器将域名解析请求转发给权威 DNS 服务器LLB 负载均衡设备,
29、负载均衡设备依次根据持续性功能、ACL 策略、就近性算法选择最佳的物理链路,并将通过该链路与外网连接的接口 IP 地址作为 DNS 域名解析结果反馈给外网用户,外网用户通过该链路访问内网服务器。2) 服务器负载均衡(SLB)目前大多数应用系统都采用了 BS 架构,企业数据中心的 WEB 服务器需要承接来自内网和外网众多用户的连接请求,因此单台服务器的性能和可靠性可能都无法满足,为实现更多的用户接入数和服务器冗余,可在 WEB 服务器部署负载均衡。服务器的负载均衡部署可采用以下两种方式实现: 服务器集群软件服务器集群软件(如 MSCS)一般要求服务器群在同一 VLAN 内,其它无特殊要求在此不做
30、详细介绍。 服务器负载均衡(SLB)设备依据转发方式的不同,分为 NAT 式和 DR 两种部署方式,如图 14 所示。两者有相同的处理思路:LB 设备提供 VSIP(虚拟服务 IP),用户访问 VSIP 请求服务后,LB 设备根据调度算法分发请求到各个实服务。但在具体的处理方式上,两者仍有所不同。NAT 方式:LB 设备分发服务请求时,进行目的 IP 地址转换(目的 IP 地址为实服务的 IP),通过路由将报文转发给各个实服务。服务器响应的报文也要经过 LB 设备进行 NAT 转换,这种方式 LB 设备承担的性能压力较大。DR 方式:LB 设备分发服务请求时,不改变目的 IP 地址,而将报文的
31、目的MAC 替换为实服务的 MAC 后直接把报文转发给实服务。服务器响应的报文不需要经过 LB 设备,直接转发到用户,这种方式 LB 设备承担的性能压力相对较小。图 14 LLB 两种部署方式组网DR 方部署时需要对每个服务器配置 VSIP,并要求其 VSIP 不能响应 ARP 请求。而一般的企业网络运维和服务器运维是不同部门的不同人员负责,这就涉及到部门之间的配合,比较复杂,因此在 LB 设备性能足够的情况下一般不推荐使用。采用 NAT 方式部署组网灵活,对服务器没有额外要求,不需要修改服务器配置,适用于企业数据中心各种组网。总结数据集中意味着风险的集中、响应的集中、复杂度的集中、投资的集中,高可用设计与部署是企业数据中心建设的永恒话题。“勿在浮沙筑高台”,网络作为数据中心 IT 基础承载平台,是 IT 系统高可用的基本保证。数据中心网络要实现高可用,技术并不能解决所有问题,还需要完善的运维流程、规章制度、管理体制等多方面的配合。结合企业业务的发展趋势,不断的总结与积累,是一个长期的、循序渐进的过程。