近几年来,互联网行业处于一个快速发展的快车道,一个又一个风口不断地涌向周边行业。共享单车的出现解决了人们出行***一公里的问题;新零售概念的提出,无人货柜的出现,更是将线上和线下的数据打通,优化了人们的购物体验;以抖音为首的短视频应用,在一夜间爆红,成为当下社交与宣传的重要载体。

而数据中心作为支撑这些业务的基础设施,其规模也随着业务的激增逐渐扩大,单集群内超过数万台服务器的情况已不再罕见。面对如此庞大的服务器数量,在网络建设之初的交换机网络开局已成为网工的梦魇。

一、数据中心开局现状

聚焦于数据中心场景,我们先来回顾一下传统的交换机网络开局流程。

图1 传统网络设备开局流程

Step1:提前准备交换机的版本文件;

Step2:根据部署的架构场景选择对应的配置模板;

Step3:开始“搬砖”,到达现场,设备拆箱集中堆放,加电启动;

Step4:使用U盘插到交换机,串口线连接设备,逐台进行版本升级(若需要);

Step5:根据配置模板结合实际设备的情况进行VLAN、IP、路由以及其他基本信息的修订,然后开始刷配置(另外按照各公司要求,还会协助收集设备的SN用于资产管理);

Step6:协调弱电同学帮忙搬到机房上架;

Step7:基于Checklist完成连通性的测试工作。

整套流程下来,既耗人力,又耗时间。据实际项目经验来看,在不堆叠的前提下完成一台设备的升级和配置大约在10分钟,堆叠情况下由于设备需要重启,需要30分钟才能完成。

总结来看,对于支撑数万台服务器集群的数据中心网络场景,如果按照这种传统的开局模式来部署,会存在以下几点不足:

效率低下:靠手工方式进行设备的版本升级、刷脚本,效率非常低;

出错率高:重复性的工作会导致网工疲于思考,稍有不慎出现失误,需要额外的时间用于排查错误更正,产生一定的时间损耗。

对此,各厂家做了许多的探索,比如零配置上线技术。

二、数据中心自动化开局

随着数据中心规模的不断增大,标准化的建设方式已经成为主流。每个集群内的服务器以及网络设备的规模都是固定的,对应到网络设备的配置策略也是一致的(当然IP等基础信息会略有不同)。因此,在这样标准化、规范化的场景下,我们可以将这些重复性的、机械性的工作编成处理逻辑,交给网络设备自己去完成上线工作,进而解放人力,同时也降低了人们出错的风险。

厂商对于自动化上线技术的开发,主要是利用编程语言(比如Python、Go等)进行逻辑处理,让网络设备自行加载,完成上线,例如ZAM技术(Zero-configure Automatic Manage)。

交换机自动化上线的思路:新出厂或空配置的设备上电启动后自动向文件服务器中获取文件并加载(包括版本文件、配置文件、补丁文件等),实现设备的免现场配置、部署,从而避免了运维人员重复地执行刷脚本、升级等机械性操作,提升开局效率。

以ZAM技术为例,首先要在运维端搭建统一的DHCP服务器和TFTP服务器(可以是同一台服务器),基于架构标准化设计和项目信息提前生成每台设备的完整配置文件以及版本文件,同时这些文件的文件名需要与设备的SN关联起来,确保每个配置文件可以对应唯一一台具体的物理设备。

图2 零配置上线方案架构

交换机加电起机后会主动发起DHCP请求,通过Option拿到TFTP服务器的地址以及脚本名称。通过TFTP的方式下载到脚本文件后,解析并执行。然后自动进行版本的升级以及配置文件的加载,重启后完成设备开局。主要流程如下:

图3 零配置上线流程

细节可以分拆成几个阶段来理解:

1. DHCP&TFTP获取阶段

(1)设备加电后,首先判断自身是否存在配置文件,如果不存在则进入ZAM模式;如果存在则正常加载现有配置文件启动;

(2)进入ZAM模式后,会先尝试从MGMT口上发起DHCP请求,无应答后会从业务口上广播该请求报文。DHCP Server在回应报文中通过Option66(或者150)、67选项,将TFTP Server的IP以及Python脚本名称同步给设备;

图4 典型的DHCP配置

(3)交换机设备(需要支持Python的运行环境)进行Python脚本的下载。

2. 自动化执行阶段

(1)初始化:

首先要进行初始化,与此同时要清空之前运行过的本地文件,目的是为了避免那些通过错误逻辑模块到达该处时文件错乱的情况,因此需要执行初始化操作;

(2)上传SN:

初始化完成后需要上传设备自身的SN到指定的目录下,目的是提示TFTP Server该设备已经开始启动。即上传 [sn]. ZAM到 /ZAM_STARTUP/, 若上传失败则写"0"到/etc/zam.txt (通告zam执行失败),退出;

(3)配置参数文件下载:

上传SN之后,会基于SN去下载对应的配置参数文件(.PARAM格式),下载路径在代码中已经写好,若下载失败则跳到错误处理;

(4)配置参数文件解析:

下载成功后解析该文件,判断是否需要升级版本,若解析失败则跳到错误处理;

(5)配置文件下载:

通常情况下,脚本中会默认写好配置文件的下载路径,设备会基于SN到该路径下载配置文件 [sn].CFG, 若下载失败跳到错误处理;

(6)版本文件下载:

如果配置参数文件中存在bin文件的标识,则到指定的路径去进行bin文件的下载,若下载失败则跳到错误处理;

(7)版本文件升级:

如果存在bin的文件,则进行升级bin文件,若升级失败则跳到错误处理;

(8)配置文件重命名:

执行代码做配置文件的重命名,更改成config.txt的格式后重启(不同厂家配置文件命名不同,这里以锐捷为例);

(9)设备重启加载:

重启设备后则再次进行配置文件的判断,发现此时存在配置文件,则不进入ZAM模式,正常加载配置文件并启动。

3. 信息同步校验阶段

(1)成功处理:

设备成功上线后

A.上传 [sn].log 到 /ZAM_LOG/

B.上传 [sn].ok 到 /ZAM_STATUS/

C.写"1"到/etc/zam.txt (通告zam执行成功)

D.清空本地本次执行相关文件([sn].CFG, [sn].ZAM, [sn].params, [sn].ok, [sn].error)

图5 ZAM文件夹目录

图6 成功执行ZAM流程

(2)失败处理

主逻辑任意一个节点发生故障,跳到故障处理时,执行下列动作

A.上传 [sn].log 到 /ZAM_LOG/

B.上传 [sn].error 到 /ZAM_STATUS/

C.写"0"到/etc/zam.txt(通告zam执行失败)

D.清空本地本次执行相关文件([sn].CFG, [sn].ZAM, [sn].params, [sn].ok, [sn].error)

三、探索创新

随着网络设备对于类似Python的高级编程语言环境的支持愈加成熟,零配置上线技术在IDC场景中得到了普遍的应用。一方面加快了设备的开局速度,降低了人为操作失误的风险,节省人力投入;另一方面,对于后期设备的运维工作(比如扩容、故障替换等),只需要上报或者替换SN就可以自动完成加载,也不需要人工的参与。

那么,除了IDC场景有这样的需求之外,对于其他场景,是否也存在类似的运维痛呢?

锐捷网络秉承着创新、探索与实践的思路,在新零售门店场景,也做了深入的市场调研与分析。

最近火爆的新零售门店,其特点就是数量众多,业务的激增导致开店速度尤其快。但是门店不会有专业的运维同学驻场,所以网络开局时需要网工四处出差;日常遇到故障,如果远程不能解决也需要网工到现场处理,人力投入极大。

对此,聚焦于新零售门店场景,我们基于数据中心零配置开局的思路进行创新,致力于打造全新的自动化门店网络解决方案,提升新零售门店网络开局和运维的效率,减少人力服务成本。

图7 自动化门店网络解决方案封面

目前我们正在和新零售客户积极的探索和实践中,敬请期待。如果有相关建议和思路,也欢迎留言互动,共同探讨。

本期作者:刘洋

锐捷网络互联网系统部行业咨询

感谢您关注锐捷网络技术干货文章!现诚邀您参与有奖调研,您宝贵的意见和建议将帮助我们在技术探索与分享上持续精进。

点击下方链接参与调研。

http://survey.ruijie.com.cn/jq/26535756.aspx

【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0

python 自动化运维 读取交换机数据_技术干货|数据中心自动化运维技术探索之交换机零配置上线...相关推荐

  1. Python按单元格读取复杂电子表格(Excel)数据实践

    Python读取电子表格方法 本文所使用电子表格的目标是读取.解析来自Excel编制的数据报表,或者软件界面导出的数据报表,这类电子表格报表显著特点是有一定的格式,且数据位置不连续,而非标准二维数据表 ...

  2. 算命数据_未来的数据科学家或算命精神向导

    算命数据 Real Estate Sale Prices, Regression, and Classification: Data Science is the Future of Fortune ...

  3. 电厂运维的cis数据_科技驱动升级,各类智慧电厂技术大盘点

    原标题:科技驱动升级,各类智慧电厂技术大盘点 传统电厂智慧化升级的背后是各类科技技术的快速发展与成熟应用,要建设"安全.环保.高效.灵活"的智慧电厂,需要拥有"自分析.自 ...

  4. json 插入数据_让繁琐的工作自动化——python处理JSON文件

    让繁琐的工作自动化--python处理JSON文件 不得不说,python真TMD香.由于python解析json过于简洁,我只好写个实例了,不然文章太短. 1.环境 python3.8 pychar ...

  5. 局域网网络流量监控_【干货】Linux网络安全运维:网络流量监控与分析工具Ntop和Ntopng...

    本文授权转载自微信公众号:计算机与网络安全,转载请联系授权.对于单台服务器网络故障的排查,iftop工具可以轻松实现,但是在监控一个庞大的服务器网络,并且要分析每台主机以及端口的网络状态时,iftop ...

  6. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...

    原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...

  7. python收取wss数据_大宗商品现货数据不好拿?商品季节性难跟踪?Python爬虫一键解决没烦恼...

    更多精彩内容,欢迎关注公众号:数量技术宅 季节性在大宗商品的交易中至关重要 大宗商品交易中,特别是在期货市场,由于商品价格周期的存在,季节性作为一种确定性相对较高的周期波动,对于某些品种,比如农产品, ...

  8. 为什么不用python做大数据_光环大数据告诉你为什么说:人生苦短,我用Python

    首先我们要说明的是本文不扯什么大道理,只是先介绍Python的背景,然后从实用的角度出发举一两个真实栗子. 首先要想了解要一门语言的好坏,或者为什么招程序员喜欢(卧槽,原来程序员喜欢不是女朋友?)我们 ...

  9. 数据中台是下一代大数据_全栈数据科学:下一代数据科学家群体

    数据中台是下一代大数据 重点 (Top highlight) Data science has been an eye-catching field for many years now to you ...

最新文章

  1. oracle date 转换 timestamp,Oracle timestamp类型转换成date类型
  2. 从一个男人身上看出他的修养和抱负
  3. 【SRIO】5、Xilinx RapidIO核例子工程源码分析
  4. html 日历系统 源码,calendar.html
  5. Pycharm社区版安装教程(永久免费,随时升级)
  6. 计算机专业英语的理解,计算机专业英语之理解网络地址
  7. 5G(10)----5G 终端发展
  8. 编程菜鸟的日记-初学尝试编程递归
  9. 数据持久化基础知识——属性列表
  10. 计算机地图制图符号制作的心得,计算机地图制图实习报告.docx
  11. unity中移动的九种方法
  12. HC-SR04超声波传感器
  13. JAVA透视相机安卓_透视相机下载安卓版
  14. 职场7条小tips,一定有一条说到你心坎里
  15. Unity编程笔录--实现360全景视频和VR视频
  16. 网站服务器防御怎么查,如何查看服务器被攻击
  17. Docker: 绿色版docker(带dockerui)安装测试记录_20200120_七侠镇莫尛貝
  18. 颜值性能满分的华为Noto9,这个性能会让将他视为手中的至宝吗
  19. 食神软件测试初学者,橙光游戏食神养成计划升阶攻略
  20. Zhong__Jenkins安装和使用

热门文章

  1. linux中指令是在那里使用的?_关于启停保基础指令在实际编程中的使用
  2. CorelDraw插件开发-GMS插件-VBA-查找相同对象-cdr插件
  3. TIMIT语音库-----下载和matlab读取
  4. 37 张图详解 DHCP :给你 IP 地址的隐形人
  5. HTML5系列代码:设置边框的边距
  6. CodeForces 86C-Genetic engineering
  7. 计网----物理层:EIA-232接口标准与X.21标准
  8. 电脑崩溃蓝屏问题如何重装系统
  9. 笔记本电脑重装系统后开机蓝屏要怎么办
  10. 论文总结——情感对话