基于SNMP的容量管理系统设计

2017-11-10 02:05陈慧卿
自动化与信息工程 2017年5期
关键词:数据中心容量管理系统

陈慧卿

基于SNMP的容量管理系统设计

陈慧卿

(中国太平洋保险(集团)股份有限公司应用运行支持部)

针对金融机构数据中心规模快速膨胀、设备密度日益增长,设计一种基于SNMP的容量管理系统。通过对性能数据采集,以基线参照方式对被管设备进行全方位容量管理,最终以图表或容量告警触发形式输出。该系统对优化服务器结构、完善设备规划、减少能源消耗、持续建设绿色数据中心具有重要意义。

简单网络管理协议;容量管理;性能数据

0 引言

现代信息科技的创新发展和普及应用给金融行业带来巨大的业务扩展。据智研咨询统计,至2020年将新增IDC机柜18.54万台,较目前的6万台保有量增加近300%[1],由此带来快速增长的高能耗使建设绿色数据中心成为焦点。美国环保局对数据中心机房能耗调研分析表明,服务器、存储设备和网络通信设备所产生的功耗占数据中心机房总功耗的50%左右[2]。可见,设备常态化的容量管理对优化数据中心架构体系、硬件规划及持续建设具有重要意义[3]。

本文结合简单网络管理协议(simple network management protocol,SNMP)特点,设计一种容量管理系统,该系统通过对硬件设备的性能数据采集,结合系统运行相关性,加工数据最终以用户所需的方式展现[4]。

1 系统设计

SNMP由一组网络管理标准组成,包含一个应用层协议、数据库模型和一组资源对象。SNMP的目标是管理互联网上众多厂家生产的软硬件平台,因此几乎所有厂商设备均支持SNMP协议[5]。

基于SNMP的容量管理系统包含数据采集模块、数据存储模块和数据分析模块[6]3个主要部分。

1.1 数据采集模块

数据采集模块按容量管理信息的需求,利用程序代码模拟SNMP的GET操作对被管对象进行原始数据采集,采集一般为循环定时方式。在代码实现过程中,可使用基于SNMP4J的开发类库[7],实现SNMP GET方式仅采集MIB库中的末端叶子结点数据,正常情况下返回采集对象标识符(object identifier,OID)、返回类型、返回数值3个值。

OID采用分层树形结构对任何类型的对象(包括实体对象、虚拟对象、复合对象等)进行全球无歧义、唯一命名[8]。部分厂商设备对应OID除去开头部分固定数字外,后半部分均可将数字对照划分为“功能项目数字+要素的ASCII码”,将ASCII码翻译为英文后,可直观显示该设备的要素名称。

由于数据中心服务器设备总量巨大,采集使用单一服务器无法满足对众多设备进行监管的运行需求。本文部署基于高可用架构、可横向扩展的采集端,将所有被管设备有效分组,对应不同采集端进行数据采集。

1.2 数据存储模块

数据存储模块将采集数据进行持久化存储。由于每日采集的数据量巨大,历史数据的存储应考虑使用针对数据仓库设计的关系型数据库,如SybaseIQ;或者使用针对大数据的非关系型数据库,如MongoDB。

1.3 数据分析模块

数据分析模块将从数据库提取的历史数据进行统计、分析、性能指标计算,并以直观图形或表数据来反映容量管理的结果。系统使用者可设定时间范围,选择该段时间内具体设备的某种属性信息进行统计分析。在一个页面中有多个看板的功能,用以对相同设备进行横向对比。

2 容量管理计算

SNMP GET根据定义正常范围输出的基线值,可直接展示部分指标,如CPU使用率、内存使用率、设备温度等。其他诸如网络丢包率、设备负载、吞吐量等无法由OID对应结果直接展示,需根据规则对原始采集值进行学习、分析、计算。如设备吞吐量的容量管理算法可根据式(1)计算。

单台设备吞吐量采集值经计算后,可与式(1)平均吞吐量相比较,若低于平均数则表明该台设备需调整负载以优化使用率。

3 系统实现方式

3.1 系统部署架构

基于SNMP的容量管理系统架构如图1所示,主应用服务器采用X86集群的高可用架构,SNMP GET程序部署于采集Agent中。采集Agent集群与主应用服务器采用Kafka消息传输中间件进行报文传输。根据被管设备数量,采集Agent可横向扩展。

3.2 应用服务器主要功能实现

3.2.1资源管理

资源管理分为设备管理和采集信息管理。

设备管理相关表的创建应至少包含序号(主键)、设备名称、设备IP、获取设备信息的OID 4个主要字段。设备名称无需用户填写,根据设备对应的OID值直接通过SNMP GET方式获取,这样既可避免人为输入错误设备名称的风险,又可检测被管设备是否正确开启SNMP协议。

采集信息管理相关表的创建应包含序号(主键)、设备名称(与设备管理表外建关联)、采集项目名称、采集实例名称、采集参数名称、采集OID1和采集OID2等字段。由于部分指标可能使用多个采集值进行计算,需设置多个采集OID,如设备吞吐量计算需使用流入、流出2个指标值。程序根据该相关表对被管设备的运行参数进行数据采集。

图1 容量管理系统架构

3.2.2数据传输

由于主应用服务器与被管设备不直接使用SNMP协议采集性能数据,而是通过采集Agent执行任务。因此,主应用服务器与各采集Agent间需通过消息传输中间件传输采集指标和采集结果。本系统因具有高并发、大容量传输等特性,故选择APACHE开源产品软件Kafka传输消息,其数据传输流程如图2所示[9]。

图2 Kafka数据传输流程

Kafka作为一种分布式的消息系统,因具有可水平扩展、高吞吐率和实时性而被广泛使用[10]。在消息传输过程中,由应用服务器作为生产者生成需要采集的OID指标项交给Kafka;采集Agent作为消息的消费者,对消息进行抢锁、消费,然后触发SNMP GET进行指标采集。消息的传输格式使用JSON封装,回传要素包括采集项序号、采集时间、采集OID、采集结果值类型和值。该方法有效解决了实时数据库与SNMP GET之间数据传输速率不匹配问题[11]。

3.2.3数据入库与展示

数据入库分为入当前库和入历史库2部分。入当前库可由应用服务器接收返回的采集报文后,调用数据库入库程序进行解析、入库。历史库数据由当前库导出后,再导入至历史库,该功能由数据库服务器crontab吊起,当前库数据仅保留1至2天,已导出的数据应在当前库中删除。在本系统建设中,当前库采用Oracle,历史库使用SybaseIQ。SybaseIQ是特别为数据仓库设计的关系型数据库,架构与大多数关系型数据库不同,它以列存储数据,而不是行,这样的设计用以支持大量并发用户的即时查询功能[12]。

数据展示主要由数据抽取、数据加工计算和图形化展示3个步骤完成。数据抽取在对使用者选择的时间范围内,对当前库及历史库数据进行抽取。抽取后的数据调用相关加工计算函数,生成图形化展示控件所需的内容格式,最终将计算值显示在图形化页面上。使用者根据显示的峰值、平均值等参数,判断设备的容量是否在合理区间运行。此外,可调用容量告警函数,跟阈值比对后产生容量告警事件[13]。

3.3 系统特点

目前市场上有多种性能监控类开源产品,如ganglia、cloud in sight和云平台提供的监控功能等。该类产品均需对被管设备进行Agent部署,对拥有上万节点的金融行业数据中心而言,部署Agent需要相当大的开销,且需注意版本、兼容性、配置文件等问题。基于SNMP的容量管理系统具有以下特点:

1)简单交互,由于SNMP协议的普遍适用性,无需对各类设备的容量数据采集接口再开发;

2)占用被管设备的资源较少,经长期运行发现,SNMP代理端在被管设备中,占用的运行资源不到千分之一;

3)易整合,随着数据中心应用和设备数量的迅速增长,自动化运维系统的开发已势在必行[14],本系统可无缝嵌入各类自动化运维系统;

4)功能扩展性,系统可按需开发各类生产运行相关报表,如故障报表、健康报表、预测报表等[15]。

4 结语

容量管理是建设绿色数据中心过程中最重要的环节[16]。本容量管理系统对容量进行可视化、可量化监控,可衡量虚拟化硬件的使用效率、网络设备的流量、机房设备的负载,监控容量的异常变化。本系统使用SNMP协议采集的数据,拥有精度高、数量大、资源占用率少等特性,对数据中心生产稳定运行具有重要参考意义。

[1] 智研咨询集团.2016-2022年中国IDC市场运营态势与发展前景分析报告,R416920[R].北京:智研咨询集团,2016.

[2] 郭栋.大型绿色数据中心的规划研究[D].上海:复旦大学, 2008.

[3] 李崇辉.如何建设绿色数据中心[J].中国金融电脑,2008(10):36-38.

[4] 刘立峻,李欣.基于SNMP协议的网络性能管理系统研究与设计[J].福建电脑,2010,26(5):115-116.

[5] 百度百科. SNMP[EB/OL].(2014-5-4)[2017-5-25]. http://baike. baidu.com.

[6] 杨洁.基于SNMP的网络管理软件设计[D].天津:天津大学,2009.

[7] 刘家乐.基于SNMP4J的网络管理程序的实现[J].电脑知识与技术,2011,7(14):3356-3358.

[8] 百度百科.OID[EB/OL].(2016-5-13)[2017-5-25]. http://baike. baidu.com.

[9] Apache Kafka.A high-throughput distributed messaging system [EB/OL]. [2017-5-26]. http://kafka.apache.org.

[10] 王岩,王纯.一种基于Kafka的可靠的Consumer的设计方案[J],软件,2016,37(1):61-66.

[11] 王震,陈亮.基于Kafka消息队列的电网设备准实时数据接入方法研究[J].山东电力技术,2015,42(6):41-43.

[12] 吴飞.基于Sybase IQ的电力数据中心研究与应用[J].网络财富,2010(5):157-158.

[13] 金丹.期货数据中心集中监控系统的研究和应用[D].上海:上海交通大学,2012.

[14] 桂林.数据中心自动化运维平台建设方法[J].中国电子商务,2014(11):79-80.

[15] 王西林.基于SNMP网络管理系统的设计与实现[D].西安:西安电子科技大学,2010.

[16] 吴军,王宇.如何构建绿色数据中心[J].智能建筑电气技术,2016,10(6):21-23.

Design of Capacity Management System Based on SNMP

Chen Huiqing

(Application Operations Support Department of China Pacific Insurance (Group) Co. Ltd.,)

Aiming at the rapid expansion of data center in financial institutions and the increasing density of equipment, a capacity management system based on SNMP is designed. Through the performance of data collection, the equipment for all-round capacity could be managed to the baseline reference, the final form or capacity alarm trigger form of output. The system is important for optimizing the server structure, improving equipment planning, reducing energy consumption, and continuously building green data centers.

SNMP; Capacity Management; Performance Data

陈慧卿,男,1987年生,学士,工程师,主要研究方向:数据中心生产运行、系统运维管理、自动化运维。E-maill: chenhuiqing1987@163.com

猜你喜欢
数据中心容量管理系统
酒泉云计算大数据中心
基于James的院内邮件管理系统的实现
浅析数据中心空调节能发展趋势
水瓶的容量
关于建立“格萨尔文献数据中心”的初步构想
停车场寻车管理系统
生产管理系统概述
海盾压载水管理系统
小桶装水
鼹鼠牌游乐场