近几年来,互联网行业处于一个快速发展的快车道,一个又一个风口不断地涌向周边行业。共享单车的出现解决了人们出行最后一公里的问题;新零售概念的提出,无人货柜的出现,更是将线上和线下的数据打通,优化了人们的购物体验;以抖音为首的短视频应用,在一夜间爆红,成为当下社交与宣传的重要载体。
而数据中心作为支撑这些业务的基础设施,其规模也随着业务的激增逐渐扩大,单集群内超过数万台服务器的情况已不再罕见。面对如此庞大的服务器数量,在网络建设之初的交换机网络开局已成为网工的梦魇。
一、数据中心开局现状
聚焦于数据中心场景,我们先来回顾一下传统的交换机网络开局流程。
图1 传统网络设备开局流程
Step 1: 提前准备交换机的版本文件;
Step 2: 根据部署的架构场景选择对应的配置模板;
Step 3: 开始"搬砖",到达现场,设备拆箱集中堆放,加电启动;
Step 4: 使用U盘插到交换机,串口线连接设备,逐台进行版本升级(若需要);
Step 5: 根据配置模板结合实际设备的情况进行VLAN、IP、路由以及其他基本信息的修订,然后开始刷配置(另外按照各公司要求,还会协助收集设备的SN用于资产管理);
Step 6: 协调弱电同学帮忙搬到机房上架;
Step 7: 基于Checklist完成连通性的测试工作。
整套流程下来,既耗人力,又耗时间。据实际项目经验来看,在不堆叠的前提下完成一台设备的升级和配置大约在10分钟,堆叠情况下由于设备需要重启,需要30分钟才能完成。
总结来看,对于支撑数万台服务器集群的数据中心网络场景,如果按照这种传统的开局模式来部署,会存在以下几点不足:
效率低下:靠手工方式进行设备的版本升级、刷脚本,效率非常低;
出错率高:重复性的工作会导致网工疲于思考,稍有不慎出现失误,需要额外的时间用于排查错误更正,产生一定的时间损耗。
对此,各厂家做了许多的探索,比如零配置上线技术。
二、数据中心自动化开局
随着数据中心规模的不断增大,标准化的建设方式已经成为主流。每个集群内的服务器以及网络设备的规模都是固定的,对应到网络设备的配置策略也是一致的(当然IP等基础信息会略有不同)。因此,在这样标准化、规范化的场景下,我们可以将这些重复性的、机械性的工作编成处理逻辑,交给网络设备自己去完成上线工作,进而解放人力,同时也降低了人们出错的风险。
厂商对于自动化上线技术的开发,主要是利用编程语言(比如Python、Go等)进行逻辑处理,让网络设备自行加载,完成上线,例如ZAM技术(Zero-configure Automatic Manage)。
交换机自动化上线的思路:新出厂或空配置的设备上电启动后自动向文件服务器中获取文件并加载(包括版本文件、配置文件、补丁文件等),实现设备的免现场配置、部署,从而避免了运维人员重复地执行刷脚本、升级等机械性操作,提升开局效率。