《云数据中心网络与SDN:技术架构与实现》——3.3.6 高可用

举报
华章计算机 发表于 2019/06/06 14:50:10 2019/06/06
【摘要】 本书摘自《云数据中心网络与SDN: 技术架构与实现》——书中第3章,第3.3.6节,作者是张晨。

3.3.6 高可用

和安全一样,高可用对于云数据中心网络来说同样是至关重要的。传统网络中广泛使用了各种高可用技术,如实现多网卡绑定的LACP、实现链路冗余的xSTP、实现网关冗余的VRRP、实现多路径的ECMP、实现数据中心互联的VPLS、实现故障检测的BFD等。总结起来,主要可归为以下几个方面:设备关键组件要有冗余、物理拓扑要有环路保护、路由要快收敛防震荡以及多数据中心间要做双活/主备。

1.网络冗余与监测

传统网络中的冗余机制同样也适用于SDDCN的设计。对于一个SDDCN的产品来说,应尽可能地多提供高可用的功能,这是在生产环境中落地最为重要的加分项。不过需要明确的是,这些冗余机制并不一定都要通过SDN的方式来实现。

设备关键组件要有冗余,比如多背板、多主控、多电源、多风扇等,SDN白盒交换机在设计中需要考虑上述要求。

物理拓扑要有环路保护,要求SDN控制器能够处理多网卡绑定(LACP),并在Leaf-Spine间实现负载均衡。在对接传统网络时,还需要能够正确处理STP的BDPU以防止环路,以及出口IGP/BGP以实现多路径。

路由要快收敛防震荡,要求SDN控制器能够快速发现拓扑变化,计算并开通倒换路径,或者由控制器预先下发逃生路径给设备,发生故障时在本地完成路径切换。

多数据中心间要做双活/主备,要求SDN控制器提供数据中心间的2层连接通路,该通路上应该支持QoS以区别对待不同的业务,少数场景下还需要在多数据中心间做流量调度。

除了冗余机制的设计外,网络还需要提供实时、全面、准确的监测机制。传统网络中有监测通断BFD、监测性能的NQA等手段,这些手段可以继续在云数据中心中使用,设备间交互不同的探针对网络中不同的状态进行监测,当发生状态异常或者指标波动的时候,设备可以主动上报给SDN控制器,然后由SDN控制器根据一些网络管理的策略执行对应的动作,以保证网络的高可用。当然,SDN控制器上也可以集成探针的生成、接收和参数调整等功能。

2.消除控制器的单点

高可用的天敌是单点,网络中应该尽可能地消除单点。传统数据中心网络中,路由器和防火墙是流量集中经过的地方,最容易成为单点。在SDDCN产品的设计中,应尽可能提供分布式路由、分布式NAT以及分布式防火墙,消除流量的集中点,避免网络中出现单点故障。

由于SDN比传统网络多引入了控制器这一角色,因此还需要考虑控制器的单点问题。对于数据中心而言,控制器通常是部署在intra-net的,受到直接攻击的可能性比较小,只要集群部署得当,控制器的可用性是可以有所保障的。集群是个纯软件架构的话题,可以说是老生常谈了,当然,不同控制器对于集群本身的实现是有好有坏的。如果控制器上的业务允许控制器进行无状态的主备或者负载均衡,那么实现起来较为容易,不过大部分情况下控制器间都需要进行状态同步,此时就需要考虑数据持久化、数据分片、数据一致性、设备控制权主从、脑裂检测等诸多方面的问题。一般来说,控制器可以通过一些成熟的开源分布式产品(如Zookeeper、ETCD、Consul等)来实现集群,一揽子地解决集群的问题,但是考虑到集成后的性能以及功能上的定制化,一些控制器需要分解出更为复杂的技术堆栈,甚至另起炉灶自己来“造轮子”,这就需要根据业务需求以及企业自身的技术水平具体地来考虑了。

不过,即使控制器的集群做得再好,也不可能提供100%的可用性,因此要考虑在集群整体瘫痪的时候,保证数据平面上的通路仍然能够正常完成流量的转发。实现这个目标有几种主要的思路。

1)设备立即切换到传统的分布式控制。这种方式实现复杂而且网络的状态不可控。

2)设备仍然能够按照控制器之前下发的策略继续转发,直到控制器被修复后重新接受新的控制策略。这种方式实现简单但是中间会存在控制的真空期。

3)将基础类的控制策略保留在设备本地,将优化类的控制策略放在控制器上,控制器出现问题时也不会影响基础的转发。这种方式取了前两种方式的优点,代价是控制器失去了一部分控制的权限。

控制器的高可用还会涉及的另外一个问题,那就是升级。理想情况下,控制器应该能够提供做热补丁的能力,不用重启控制器就可以补掉程序中的Bug。在实际情况下,控制器也至少应该提供集群的不间断升级能力,即在升级控制器A时可以将其控制权临时转移给控制器B,控制器A完成升级后切换控制权,然后再升级控制器B,A和B都升级完成后再做负载均衡。

实际上,控制平面的高可用也并不是只有SDN才会面临的问题,传统网络中对设备主控同样提供了很多高可用机制,比如主备控制引擎的倒换技术,数据平面的不中断转发技术、主控的热升级技术等。这些机制和上述提到的SDN控制器的高可用,都是可以一一对应起来的,SDN控制器在做架构设计时不妨向传统网络多多“取经”。

3.负载均衡

应用的高可用通常通过负载均衡器(简称LB)来实现,LB可以看作L4~L7层的转发器,它和防火墙一样属于网络的一部分。对于传统的Hardware LB或者VNF vLB,SDN控制器可以通过NETCONF、RESTful API等方式自动地向其下发配置。对于OpenFlow交换机,SDN控制器也可以向其下发流表来模拟一些简单的负载均衡行为。为了避免单点,LB本身同样也得做高可用,多个LB的前端需要有一个Distributor来分散VIP流量。Disrtibutor的实现既可以使用传统的BGP+ECMP,通过路由收敛来保证高可用,也可以使用多台OpenFlow交换机组成Distributor Fabric来实现。

高可用是个很大的话题,从网络到应用到数据,ICT的任何层面都对高可用有着无止境的追求。但是,越高的可用性通常也意味着越高的成本,而可用性和成本并不是线性的关系,因此在生产环境中到底需要多少的高可用,还是需要数据中心的管理者在需求和成本间进行综合考虑。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。