陳慧卿
基于SNMP的容量管理系統(tǒng)設(shè)計
陳慧卿
(中國太平洋保險(集團(tuán))股份有限公司應(yīng)用運行支持部)
針對金融機構(gòu)數(shù)據(jù)中心規(guī)??焖倥蛎?、設(shè)備密度日益增長,設(shè)計一種基于SNMP的容量管理系統(tǒng)。通過對性能數(shù)據(jù)采集,以基線參照方式對被管設(shè)備進(jìn)行全方位容量管理,最終以圖表或容量告警觸發(fā)形式輸出。該系統(tǒng)對優(yōu)化服務(wù)器結(jié)構(gòu)、完善設(shè)備規(guī)劃、減少能源消耗、持續(xù)建設(shè)綠色數(shù)據(jù)中心具有重要意義。
簡單網(wǎng)絡(luò)管理協(xié)議;容量管理;性能數(shù)據(jù)
現(xiàn)代信息科技的創(chuàng)新發(fā)展和普及應(yīng)用給金融行業(yè)帶來巨大的業(yè)務(wù)擴展。據(jù)智研咨詢統(tǒng)計,至2020年將新增IDC機柜18.54萬臺,較目前的6萬臺保有量增加近300%[1],由此帶來快速增長的高能耗使建設(shè)綠色數(shù)據(jù)中心成為焦點。美國環(huán)保局對數(shù)據(jù)中心機房能耗調(diào)研分析表明,服務(wù)器、存儲設(shè)備和網(wǎng)絡(luò)通信設(shè)備所產(chǎn)生的功耗占數(shù)據(jù)中心機房總功耗的50%左右[2]。可見,設(shè)備常態(tài)化的容量管理對優(yōu)化數(shù)據(jù)中心架構(gòu)體系、硬件規(guī)劃及持續(xù)建設(shè)具有重要意義[3]。
本文結(jié)合簡單網(wǎng)絡(luò)管理協(xié)議(simple network management protocol,SNMP)特點,設(shè)計一種容量管理系統(tǒng),該系統(tǒng)通過對硬件設(shè)備的性能數(shù)據(jù)采集,結(jié)合系統(tǒng)運行相關(guān)性,加工數(shù)據(jù)最終以用戶所需的方式展現(xiàn)[4]。
SNMP由一組網(wǎng)絡(luò)管理標(biāo)準(zhǔn)組成,包含一個應(yīng)用層協(xié)議、數(shù)據(jù)庫模型和一組資源對象。SNMP的目標(biāo)是管理互聯(lián)網(wǎng)上眾多廠家生產(chǎn)的軟硬件平臺,因此幾乎所有廠商設(shè)備均支持SNMP協(xié)議[5]。
基于SNMP的容量管理系統(tǒng)包含數(shù)據(jù)采集模塊、數(shù)據(jù)存儲模塊和數(shù)據(jù)分析模塊[6]3個主要部分。
數(shù)據(jù)采集模塊按容量管理信息的需求,利用程序代碼模擬SNMP的GET操作對被管對象進(jìn)行原始數(shù)據(jù)采集,采集一般為循環(huán)定時方式。在代碼實現(xiàn)過程中,可使用基于SNMP4J的開發(fā)類庫[7],實現(xiàn)SNMP GET方式僅采集MIB庫中的末端葉子結(jié)點數(shù)據(jù),正常情況下返回采集對象標(biāo)識符(object identifier,OID)、返回類型、返回數(shù)值3個值。
OID采用分層樹形結(jié)構(gòu)對任何類型的對象(包括實體對象、虛擬對象、復(fù)合對象等)進(jìn)行全球無歧義、唯一命名[8]。部分廠商設(shè)備對應(yīng)OID除去開頭部分固定數(shù)字外,后半部分均可將數(shù)字對照劃分為“功能項目數(shù)字+要素的ASCII碼”,將ASCII碼翻譯為英文后,可直觀顯示該設(shè)備的要素名稱。
由于數(shù)據(jù)中心服務(wù)器設(shè)備總量巨大,采集使用單一服務(wù)器無法滿足對眾多設(shè)備進(jìn)行監(jiān)管的運行需求。本文部署基于高可用架構(gòu)、可橫向擴展的采集端,將所有被管設(shè)備有效分組,對應(yīng)不同采集端進(jìn)行數(shù)據(jù)采集。
數(shù)據(jù)存儲模塊將采集數(shù)據(jù)進(jìn)行持久化存儲。由于每日采集的數(shù)據(jù)量巨大,歷史數(shù)據(jù)的存儲應(yīng)考慮使用針對數(shù)據(jù)倉庫設(shè)計的關(guān)系型數(shù)據(jù)庫,如SybaseIQ;或者使用針對大數(shù)據(jù)的非關(guān)系型數(shù)據(jù)庫,如MongoDB。
數(shù)據(jù)分析模塊將從數(shù)據(jù)庫提取的歷史數(shù)據(jù)進(jìn)行統(tǒng)計、分析、性能指標(biāo)計算,并以直觀圖形或表數(shù)據(jù)來反映容量管理的結(jié)果。系統(tǒng)使用者可設(shè)定時間范圍,選擇該段時間內(nèi)具體設(shè)備的某種屬性信息進(jìn)行統(tǒng)計分析。在一個頁面中有多個看板的功能,用以對相同設(shè)備進(jìn)行橫向?qū)Ρ取?/p>
SNMP GET根據(jù)定義正常范圍輸出的基線值,可直接展示部分指標(biāo),如CPU使用率、內(nèi)存使用率、設(shè)備溫度等。其他諸如網(wǎng)絡(luò)丟包率、設(shè)備負(fù)載、吞吐量等無法由OID對應(yīng)結(jié)果直接展示,需根據(jù)規(guī)則對原始采集值進(jìn)行學(xué)習(xí)、分析、計算。如設(shè)備吞吐量的容量管理算法可根據(jù)式(1)計算。
單臺設(shè)備吞吐量采集值經(jīng)計算后,可與式(1)平均吞吐量相比較,若低于平均數(shù)則表明該臺設(shè)備需調(diào)整負(fù)載以優(yōu)化使用率。
基于SNMP的容量管理系統(tǒng)架構(gòu)如圖1所示,主應(yīng)用服務(wù)器采用X86集群的高可用架構(gòu),SNMP GET程序部署于采集Agent中。采集Agent集群與主應(yīng)用服務(wù)器采用Kafka消息傳輸中間件進(jìn)行報文傳輸。根據(jù)被管設(shè)備數(shù)量,采集Agent可橫向擴展。
3.2.1資源管理
資源管理分為設(shè)備管理和采集信息管理。
設(shè)備管理相關(guān)表的創(chuàng)建應(yīng)至少包含序號(主鍵)、設(shè)備名稱、設(shè)備IP、獲取設(shè)備信息的OID 4個主要字段。設(shè)備名稱無需用戶填寫,根據(jù)設(shè)備對應(yīng)的OID值直接通過SNMP GET方式獲取,這樣既可避免人為輸入錯誤設(shè)備名稱的風(fēng)險,又可檢測被管設(shè)備是否正確開啟SNMP協(xié)議。
采集信息管理相關(guān)表的創(chuàng)建應(yīng)包含序號(主鍵)、設(shè)備名稱(與設(shè)備管理表外建關(guān)聯(lián))、采集項目名稱、采集實例名稱、采集參數(shù)名稱、采集OID1和采集OID2等字段。由于部分指標(biāo)可能使用多個采集值進(jìn)行計算,需設(shè)置多個采集OID,如設(shè)備吞吐量計算需使用流入、流出2個指標(biāo)值。程序根據(jù)該相關(guān)表對被管設(shè)備的運行參數(shù)進(jìn)行數(shù)據(jù)采集。
圖1 容量管理系統(tǒng)架構(gòu)
3.2.2數(shù)據(jù)傳輸
由于主應(yīng)用服務(wù)器與被管設(shè)備不直接使用SNMP協(xié)議采集性能數(shù)據(jù),而是通過采集Agent執(zhí)行任務(wù)。因此,主應(yīng)用服務(wù)器與各采集Agent間需通過消息傳輸中間件傳輸采集指標(biāo)和采集結(jié)果。本系統(tǒng)因具有高并發(fā)、大容量傳輸?shù)忍匦?,故選擇APACHE開源產(chǎn)品軟件Kafka傳輸消息,其數(shù)據(jù)傳輸流程如圖2所示[9]。
圖2 Kafka數(shù)據(jù)傳輸流程
Kafka作為一種分布式的消息系統(tǒng),因具有可水平擴展、高吞吐率和實時性而被廣泛使用[10]。在消息傳輸過程中,由應(yīng)用服務(wù)器作為生產(chǎn)者生成需要采集的OID指標(biāo)項交給Kafka;采集Agent作為消息的消費者,對消息進(jìn)行搶鎖、消費,然后觸發(fā)SNMP GET進(jìn)行指標(biāo)采集。消息的傳輸格式使用JSON封裝,回傳要素包括采集項序號、采集時間、采集OID、采集結(jié)果值類型和值。該方法有效解決了實時數(shù)據(jù)庫與SNMP GET之間數(shù)據(jù)傳輸速率不匹配問題[11]。
3.2.3數(shù)據(jù)入庫與展示
數(shù)據(jù)入庫分為入當(dāng)前庫和入歷史庫2部分。入當(dāng)前庫可由應(yīng)用服務(wù)器接收返回的采集報文后,調(diào)用數(shù)據(jù)庫入庫程序進(jìn)行解析、入庫。歷史庫數(shù)據(jù)由當(dāng)前庫導(dǎo)出后,再導(dǎo)入至歷史庫,該功能由數(shù)據(jù)庫服務(wù)器crontab吊起,當(dāng)前庫數(shù)據(jù)僅保留1至2天,已導(dǎo)出的數(shù)據(jù)應(yīng)在當(dāng)前庫中刪除。在本系統(tǒng)建設(shè)中,當(dāng)前庫采用Oracle,歷史庫使用SybaseIQ。SybaseIQ是特別為數(shù)據(jù)倉庫設(shè)計的關(guān)系型數(shù)據(jù)庫,架構(gòu)與大多數(shù)關(guān)系型數(shù)據(jù)庫不同,它以列存儲數(shù)據(jù),而不是行,這樣的設(shè)計用以支持大量并發(fā)用戶的即時查詢功能[12]。
數(shù)據(jù)展示主要由數(shù)據(jù)抽取、數(shù)據(jù)加工計算和圖形化展示3個步驟完成。數(shù)據(jù)抽取在對使用者選擇的時間范圍內(nèi),對當(dāng)前庫及歷史庫數(shù)據(jù)進(jìn)行抽取。抽取后的數(shù)據(jù)調(diào)用相關(guān)加工計算函數(shù),生成圖形化展示控件所需的內(nèi)容格式,最終將計算值顯示在圖形化頁面上。使用者根據(jù)顯示的峰值、平均值等參數(shù),判斷設(shè)備的容量是否在合理區(qū)間運行。此外,可調(diào)用容量告警函數(shù),跟閾值比對后產(chǎn)生容量告警事件[13]。
目前市場上有多種性能監(jiān)控類開源產(chǎn)品,如ganglia、cloud in sight和云平臺提供的監(jiān)控功能等。該類產(chǎn)品均需對被管設(shè)備進(jìn)行Agent部署,對擁有上萬節(jié)點的金融行業(yè)數(shù)據(jù)中心而言,部署Agent需要相當(dāng)大的開銷,且需注意版本、兼容性、配置文件等問題。基于SNMP的容量管理系統(tǒng)具有以下特點:
1)簡單交互,由于SNMP協(xié)議的普遍適用性,無需對各類設(shè)備的容量數(shù)據(jù)采集接口再開發(fā);
2)占用被管設(shè)備的資源較少,經(jīng)長期運行發(fā)現(xiàn),SNMP代理端在被管設(shè)備中,占用的運行資源不到千分之一;
3)易整合,隨著數(shù)據(jù)中心應(yīng)用和設(shè)備數(shù)量的迅速增長,自動化運維系統(tǒng)的開發(fā)已勢在必行[14],本系統(tǒng)可無縫嵌入各類自動化運維系統(tǒng);
4)功能擴展性,系統(tǒng)可按需開發(fā)各類生產(chǎn)運行相關(guān)報表,如故障報表、健康報表、預(yù)測報表等[15]。
容量管理是建設(shè)綠色數(shù)據(jù)中心過程中最重要的環(huán)節(jié)[16]。本容量管理系統(tǒng)對容量進(jìn)行可視化、可量化監(jiān)控,可衡量虛擬化硬件的使用效率、網(wǎng)絡(luò)設(shè)備的流量、機房設(shè)備的負(fù)載,監(jiān)控容量的異常變化。本系統(tǒng)使用SNMP協(xié)議采集的數(shù)據(jù),擁有精度高、數(shù)量大、資源占用率少等特性,對數(shù)據(jù)中心生產(chǎn)穩(wěn)定運行具有重要參考意義。
[1] 智研咨詢集團(tuán).2016-2022年中國IDC市場運營態(tài)勢與發(fā)展前景分析報告,R416920[R].北京:智研咨詢集團(tuán),2016.
[2] 郭棟.大型綠色數(shù)據(jù)中心的規(guī)劃研究[D].上海:復(fù)旦大學(xué), 2008.
[3] 李崇輝.如何建設(shè)綠色數(shù)據(jù)中心[J].中國金融電腦,2008(10):36-38.
[4] 劉立峻,李欣.基于SNMP協(xié)議的網(wǎng)絡(luò)性能管理系統(tǒng)研究與設(shè)計[J].福建電腦,2010,26(5):115-116.
[5] 百度百科. SNMP[EB/OL].(2014-5-4)[2017-5-25]. http://baike. baidu.com.
[6] 楊潔.基于SNMP的網(wǎng)絡(luò)管理軟件設(shè)計[D].天津:天津大學(xué),2009.
[7] 劉家樂.基于SNMP4J的網(wǎng)絡(luò)管理程序的實現(xiàn)[J].電腦知識與技術(shù),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的設(shè)計方案[J],軟件,2016,37(1):61-66.
[11] 王震,陳亮.基于Kafka消息隊列的電網(wǎng)設(shè)備準(zhǔn)實時數(shù)據(jù)接入方法研究[J].山東電力技術(shù),2015,42(6):41-43.
[12] 吳飛.基于Sybase IQ的電力數(shù)據(jù)中心研究與應(yīng)用[J].網(wǎng)絡(luò)財富,2010(5):157-158.
[13] 金丹.期貨數(shù)據(jù)中心集中監(jiān)控系統(tǒng)的研究和應(yīng)用[D].上海:上海交通大學(xué),2012.
[14] 桂林.數(shù)據(jù)中心自動化運維平臺建設(shè)方法[J].中國電子商務(wù),2014(11):79-80.
[15] 王西林.基于SNMP網(wǎng)絡(luò)管理系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2010.
[16] 吳軍,王宇.如何構(gòu)建綠色數(shù)據(jù)中心[J].智能建筑電氣技術(shù),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年生,學(xué)士,工程師,主要研究方向:數(shù)據(jù)中心生產(chǎn)運行、系統(tǒng)運維管理、自動化運維。E-maill: chenhuiqing1987@163.com