
数据中心运维是一项复杂的工作 ,当数据中心规模不断增长,由当初的几个机柜扩展成成百上千个机柜时,运维工作的难度不止是增加几倍这么简单。作者认为数据中心运维的综合复杂度大致可以由如下公式表示。
数据中心运维综合复杂度≈网络技术*服务器技术*业务系统*工具*流程管理
其中各因子的意义如下:
● 网络技术(架构/模型、错综繁杂的网络设备、软硬件、网络管理、网络安全、风火水电、线路)
● 服务器技术(选型、功耗、品牌、虚拟化)
● 业务系统(数据平台、容灾、决策分析、对外服务、对内支撑、持续集成、微服务、调度系统)
● 工具(配置管理、测试、监控、日志、排障、自动化、可视化)
● 流程(人员、变更、资源管理、技术储备)
上述因素的相互作用,原本一件简单的运维事件,会涉及到多部门的协同工作,问题解决的过程无外乎是长时间的会议和协同办公。而这样的运维工作效率较低。
运维工作自动化将原本的工作模型化、标准化, 屏蔽人的差异性、技术的复杂性、厂商的异构等问题,真正提升运维效率。
如何实现网络自动化呢?本文从以下五个层面来思考这个问题。
1、 设备自动化上线
图一,网络设备生命周期
当我们回顾网络设备生命周期(如图1所示)时可以发现,除了设备的采购、设备的上、下架需要人工操作,其他的工作都是可以自动化实现,例如:设备配置、设备镜像校验、上业务、变更配置等。
网络设备自动化部署有一个难点是如何识别设备。这就需要在自动化部署前规划好设备的耦合关系。
1) 确定设备的序列号(或自己收集或厂家提供),此关系到设备的维保及使用年限
2) 根据设备序列号对应到所在的物理位置(精确到XX机房、XX房间、XX机柜、XX机架位置)
3) 根据物理位置确定设备身份(接入设备、边界设备、业务网关等)
4) 根据设备身份部署网络配置(其中包含了基础配置例如:SNMP、AAA、链路聚合、网络管理等。还有专属配置包括:接口业务VLAN,IP地址信息,设备命名,描述信息等)
而在技术选择上可以使用如下两种脚本的形式来实现网络自动化部署。
Python脚本方式
a) 利用Python脚本,网络设备可以判断本地是否有足够存储空间
b) 利用Python脚本下载sn.txt序列号文件,通过序列号得知设备所在的物理位置的关联关系,从而能够得知这个设备的角色定位
c) Python脚本还能够实现指定设备堆叠(IRF2)的成员序号,实现自动重启设备,完成堆叠
d) Python能够指定启动镜像文件,指定配置文件(cfg格式),指定专属配置文件(设备角色所专属的配置)
图2,利用Python脚本实现自动化上线
LLDP方式
a) 能够利用LLDP的邻居发现特点,用于发现新增设备的物理所在位置,从而决定网络设备的身份、角色(通常,这种部署方式可以用于增量设备部署)
b) 利用脚本读取LLDP扩展字段的位置信息,完成合规性检测
c) 设备空配置时会出发AutoConfig自动部署功能(数据中心级网络设备均可实现)
d) 此时会轮询LLDP中的接口,当满足特定格式的描述信息时,尝试设置管理口的IP和服务器端IP,这时,同样能够发现网络设备所在的位置、角色
e) 根据脚本同样会执行使用TFTP下载配置文件,并设置启动镜像、启动cfg文件、完成IRF2堆叠等工作
图3,LLDP实现网络自动化部署
2、 配置自动化变更
利用Netconf实现网络配置管理
与传统的CLI、SNMP等网络管理方式相比,Netconf(Network Configuration Protocol 网络配置协议)是一种更高效、更便捷的网络配置管理方式(如表1所示),它提供一种可编程的、对网络设备进行配置和管理的方法。
1. 该协议可以设置参数、获取参数值、获取统计信息等。
2. Netconf是基于XML的网络管理协议,具有强大的过滤能力, 每一个数据项都有一个固定的元素名称和位置,这使得同一厂商的不同设备具有相同的访问方式和结果呈现方式,不同厂商之间的设备也可以经过映射XML得到相同的效果。
3. Netconf在第三方软件的开发上非常便利,很容易开发出在融合不同厂商、不同设备的环境下的特殊定制的网管软件。
表1,Netconf与传统配置工具对比
借助Netconf能解决很多传统网络配置工具所不能实现(或者说实现效率低下)的工作。例如:
● 利用get-bulk,实现批量获取设备的数据
● 利用get-bulk-config,实现批量修改设备配置数据
● 利用Netconf,封装CLI,对不同厂商不同品牌的网络设备实现统一封装,标准化配置管理
● 利用Netconf,减少甚至禁止人工对网络设备的直接操作,减少误操作几率,强化操作审计
利用Neutron插件实现云环境自动化配置
越来越多的IaaS基础架构采用Openstack及Openstack相关的商业定制版,而在这些云环境中,借助H3C Neutron Driver也可以实现环境的自动化配置。H3C Neutron Driver是一个更全面的配置驱动,能够实现对开源社区版Openstack、H3C CloudOS、其他商业定制版Openstack的配置自动化部署,借助于Message Queue消息队列,实现对网络设备的管理,不论原网络环境中是否有SDN控制器和VXLAN网络环境,都可实现统一管理。
利用现有网络设备的拓扑发现能力,借助MQ队列发现服务,不需要用户在Neutron中手工配置,即可发现网络拓扑(包括Overlay和Underlay)。
同时,利用Neutron已有的Subnet/VRF/Network/Port等概念,H3C Driver可以一一对应这些概念,并在基础网络设施中一一对应创建这些元素。
3、 设备智能化
设备智能、设备开放可编程能力能够更好的编排网络业务,更高效、安全、有序的对业务支撑,才是运维的价值所在。
目前很多数据中心级的网络设备均已支持SNMP、CLI、WEB、Python、Netconf、REST、XMl 、Bash、TCL等开放可编程方式,使用者可以根据自身擅长情况对设备进行管理和操作。同时如果用户使用类似Puppet、Ansible、Chef等开源配置工具也能够对设备做操作和管理。
如果从多个维度开放API接口供业务编排,如图6所示。可以选择直接编排网络设备调用API;通过网络管理中间件实现分门别类管理,同样,各个管理平台也会提供API;通过SDN控制器对整体网络资源进行管理。
图6,多种途径对网络设备编排管理
如果谈到SDN,必然会谈到控制器,控制器本身会通过Openflow下发转发表项,但从全局业务视角而言,Openstack才是IaaS资源发起的真正入口。Openstack能感知Network/Subnet创建成功没,但是VM创建成功的后的工作不会关注。例如这个Subnet创建之后的隔离情况、出局后的VRF,是否要共享VRF等后续工作。因此SDN控制器作为资源的调度中心,这样的云环境才足够智能。
4、 可视化监控
网络设备可视化
随着网络的不断发展,越来越多的业务对网络质量有高要求,例如丢包率低于xx,延迟小于xx毫秒,抖动在xx毫秒范围内,流量峰值到达xxxGbps等,这些要求都希望网络运维工作的结果能够可视化。。新华三针对这些需求,把运维工作的如下三个步骤实现了可视化。:
1) 流量可视化:利用IMC NTA组件、xFlow、Netstream等技术可以实现流量的精确可视,包括流量的利用率,流量的内部构成,让运维者心知肚明流量使用情况
2) 缓存可视化:如今的网络设备都内置缓存芯片,而缓存芯片能够在大流量大IO时候有效保证数据不丢失,例如:Hadoop场景、Ceph存储场景、出口场景等,而缓存的可视化可以有效保障突发流量时网络能够及时感知
3) 芯片可视化:根据芯片能力,能够实现对经过ASIC转发芯片时,每一个进出方向的数据包都被记录下来
网络路径可视化
网络路径是由点成网构成的结构,设备之间通过链路组成通信关系。通常,拓扑的互联关系可以由邻居发现协议或者路由协商等方式形成。但真正某项业务在整网拓扑上跑的时候,实际经过了哪些设备,这个路径的可视化之前是没有考虑到但却是运维部门实际需要的。
新华三给出的网络路径可视化方案会在拓扑呈现的基础上更进一步,结合H3C VCFC控制器和网络管理平台,针对Vxlan环境和传统IP网络环境提供不同技术实现和一致的路径展示。
1) 控制器通过Openflow,下发指定的路径探测报文(此报文可以模拟业务),通过控制器packet-out送到第一跳网络设备
2) 由网络设备将此探测报文以正常业务流方式转发
3) 每一跳网络设备根据保留字段得知此报文是一个模拟出来的路径探测报文,在正常业务转发的同时,会将此报文packet-in一份上送控制器
4) 控制器会收集到全网端到端的路径信息,此时是以表的方式储存路径信息
5) 控制器通过API接口,将路径表信息上送给网管平台,网管平台绘制出端到端业务路径,实现路径可视化
VXLAN网络环境:利用VXLAN保留字段实现
IP传统网络环境:利用DSCP扩展字段实现
5、 运维大数据
数据真正带来业务价值,而运维工作中最不缺的就是数据信息,如何利用好运维数据才是体现运维服务业务的价值关键。运维大数据的“相关性网络”,将IT运维过程中各个信息元素进行关联,对其进行数据挖掘,提炼出运维维度的相关性。
运维工作大致可以划分成以下几个维度:网络流量预测、网络性能预测、网络容量预测、故障预测。
网络流量预测:根据历史数据,形成对未来网络流量的预测,给运维决策提供预测数据。根据流量数据的采集,判断流量的组成要素,根据流量的组成判断流量的突发情况。根据每个网络设备的负载运行情况,判断整网的流量压力。
网络性能/容量预测:根据网络负载的实时监控,网络中的性能/容量数据会被存储收集于大数据平台,最终实现预测。
网络故障预测(故障定位):利用运维大数据平台,将日志、告警、snmp、syslog等信息做统一收集,做数据转换后形成故障推理,帮助用户在一堆日志告警中精确判断真正故障原因。
结束语: 在数据中心网络运维过程中,往往有大量重复性、耗时较久的任务,不断消耗IT运维的人力资源。随着近年来互联网的高速发展、云计算的大量普及,IT基础设施的复杂度有了大幅的提升,自动化运维已经成为数据中心运维的必选项。新华三在数据中心领域耕耘多年,尤其在云计算领域,提供一体化的数据中心SDN解决方案。同时可以提供全方位,多角度,多场景的自动化运维手段,协助用户实现基于应用的自动化交付,解放运维人员,极大提升了运维效率,降低了运维成本。未来将会有更加开放、智能化、自动化的协议、设备、以及运维工具和方案,新华三将不断提供场景化解决方案,助力云数据中心运维效能有质的提升。