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