乐趣区

异构去堆叠 | 一种完美提升网络高可用SLA的方案

行业内接入网络去堆叠已经逐步成为主流方向,在大型互联网公司也已经批量部署。但由于京东集团不同的业务需求及历史原因,没有条件完全复制目前主流的 ARP 转主机路由方式的去堆叠方案,这促使我们设计一种尽可能满足各类业务需求的方案。
近几年来云市场迅速发展,越来越多的用户把关键应用甚至全部应用部署到公有云上。云服务商在产品收入快速增长同时,也深刻体会到产品的高可用性对用户发展和用户留存的重要性。面向用户的产品 SLA 的实现效果取决于其依赖的各个环节,而基础网络是所有产品需要依赖的一个重要环节,因此,提升网络高可用 SLA 对整体提升产品整体 SLA 有着重要促进作用。今天我们要谈的异构去堆叠就是京东云在提高网络高可用 SLA 方面的新技术研究。用户自有网络其实也面临同样的问题,有提高网络可靠性需求的用户可以考虑在自有网络中使用类似方案。
网络高可用通用解决方案
首先,让我们先来看一下为了实现网络高可用,当下的四种服务器连接主流方案:

由上图可以看出,双网卡 / 交换机堆叠和双网卡 / 去交换机堆叠提供了更好的高可用保证。
通用堆叠方式 V.S 通用去堆叠方式
01 堆叠方案

优势

服务器双网卡捆绑,无需特别改造
交换机控制面统一,支持服务器 BGP 路由方式接入劣势

多设备统一控制面,可靠性低
升级困难
横向连接浪费端口

02 去堆叠方案
常见的去堆叠方案有以下两种:
去堆叠方案 - 路由方式

优势

交换机完全独立
支持异构

路由方式接入的服务器无需特别改造
劣势

2 层方式接入的服务器需要进行改造
服务器除网卡 IP 外需配置单独业务 IP
服务器多 IP 增加业务方运维复杂度
静态路由方式不适合 VM 或 Docker 漂移
动态路由方式要求全部服务器运行路由协议

2. 去堆叠方案 -ARP 转主机路由方式

优势

交换机完全独立
服务器网卡捆绑方式不变,便于运维
服务器网卡捆绑方式不变,便于运维

劣势

一组交换机要求同厂商,不支持异构
需要修改服务器 Linux 内核 ARP 处理部分
不支持服务器 BGP 路由方式接入

通过以上对比,可以发现堆叠与去堆叠方式其实都可以实现网络的高可用,但各有利弊。针对这样的情况,京东云提出了一种理想的去堆叠方式,可以满足下图中的所有需求。

异构去堆叠方案

01 实现方法
交换机侧

IP 配置 /24 掩码,两台交换机可配置相同 IP 或者不同 IP;
启用 ARP 代理及转主机路由功能;
配置 ARP 超时时间为 5s 以便在服务器不响应 ARP 时快速撤回主机路由。

服务器侧

服务器双网卡配置相同 IP 地址(掩码 /32);
采用 onlink 方式配置目的为交换机 IP 的静态路由指向对应网卡;
采用 onlink 方式配置缺省路由同时指向两块网卡;
需要运行 Ifplugd 进程监控物理连接,物理连接发生 UP/DOWN 时执行相应 ARP Ping 和路由修改操作。

02 冗余测试

从上图中的测试拓扑和结果中可以看出,不论是软件操作上的禁用还是硬件拔出,在设定的收敛时间内,服务器的网络一直保持高可用。
03 异构去堆叠方案小结

异构去堆叠方案优势
交换机完全独立
异构避免单一厂商风险
异构推动自研交换机快速上线
服务器侧支持 2 层方式或 BGP 路由方式
不修改 Linux 内核

注意事项

需要内核版本支持 L4 HASH 方式 ECMP(Centos 7.4 以上)
需要运行 Ifplugd 进程监控物理连接

总结
综上所述,异构去堆叠有助于实现苛刻的网络 SLA 和极致的用户体验。京东云在设计去堆叠方案时首先考虑了异构,一方面因为单一厂商对网络高可用 SLA 还是一个重要风险点,另一方面异构方式可以促进京东正在进行的自研交换机实现快速部署。众所周知,自研交换机在各大互联网公司都是重点项目,但软件和硬件的稳定性一直是批量部署的重大障碍。而异构去堆叠利用自研和商用交换机 1 + 1 的方式可以大大降低自研交换机稳定性的影响。
·END·

退出移动版