劉益,朱曉民(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,北京 100876;2 東信北郵信息技術(shù)有限公司,北京 100191)
?
資源池中CLI模板化網(wǎng)絡(luò)配置管理設(shè)計方案*
劉益1,2,朱曉民1,2
(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,北京 100876;2 東信北郵信息技術(shù)有限公司,北京 100191)
摘 要本文以浙江移動私有云資源池管理系統(tǒng)為研究對象,分析了原有設(shè)備驅(qū)動模塊的缺陷,提出CLI(命令行界面)模板化配置管理方案。該方案主要涉及模板化配置文件和解析引擎。配置文件以XML作為數(shù)據(jù)的編碼方式,封裝CLI命令和業(yè)務(wù)流程;解析引擎使用DOM(文檔對象模型)解析配置文件,根據(jù)預(yù)設(shè)規(guī)則調(diào)用相應(yīng)的接口實現(xiàn)對設(shè)備的操作。該方案使設(shè)備驅(qū)動和系統(tǒng)解耦和,有利于設(shè)備驅(qū)動的維護(hù)和升級,并增加了系統(tǒng)的擴(kuò)展性,實現(xiàn)靈活、高效的網(wǎng)絡(luò)設(shè)備配置管理。
關(guān)鍵詞網(wǎng)絡(luò)設(shè)備;配置管理;CLI模板化
網(wǎng)絡(luò)配置管理即對網(wǎng)絡(luò)設(shè)備驅(qū)動的管理。資源池中大部分網(wǎng)絡(luò)資源的調(diào)度都需要在硬件設(shè)備上進(jìn)行配置,資源池管理平臺根據(jù)服務(wù)請求選取正確的網(wǎng)絡(luò)設(shè)備,調(diào)用相應(yīng)的驅(qū)動程序,對該設(shè)備發(fā)送CLI命令進(jìn)行配置,從而使服務(wù)生效[1]。如VLAN(虛擬局域網(wǎng))服務(wù)需要在交換機(jī)上進(jìn)行配置,NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)服務(wù)需要在防火墻上進(jìn)行配置。在浙江移動私有云資源池管理平臺早期版本的設(shè)計中,網(wǎng)絡(luò)配置靠設(shè)備驅(qū)動模塊完成,即CLI命令封裝在驅(qū)動模塊的代碼中,由于不同硬件設(shè)備的CLI命令集和不同服務(wù)的業(yè)務(wù)流程各不相同,因此對每個型號的硬件設(shè)備都需要開發(fā)驅(qū)動模塊。隨著資源池平臺的擴(kuò)大,底層設(shè)備增多,每增加一類設(shè)備就得增加一個設(shè)備驅(qū)動模塊,并且需要暫?,F(xiàn)有服務(wù)來進(jìn)行軟件升級。資源池管理平臺亟需一種靈活、高效的網(wǎng)絡(luò)設(shè)備配置管理方案。
1.1總體設(shè)計
資源池管理系統(tǒng)總體設(shè)計如圖1所示。
IaaS(基礎(chǔ)架構(gòu)即服務(wù))云管理平臺理論上分為3層,由下到上分別是資產(chǎn)層、資源層和服務(wù)層。
(1)資產(chǎn)層:包括了IaaS中的所有硬件設(shè)備,有防火墻、交換機(jī)、負(fù)載均衡器等網(wǎng)絡(luò)設(shè)備,塊存儲、日志詳單存儲等存儲設(shè)備,以及支持虛擬機(jī)化技術(shù)的硬件和軟件資產(chǎn),例如支持x86虛擬化的VMware、KVM等[2]。
圖1 浙江移動私有云資源池管理系統(tǒng)整體設(shè)計
1.2原配置管理方案
如圖2所示,在資源池管理平臺早期版本中,每一類設(shè)備都對應(yīng)一個設(shè)備驅(qū)動模塊,各驅(qū)動模塊直接將CLI命令和代碼耦合在一起,調(diào)用CLI控制模塊的接口完成資源服務(wù)在設(shè)備上的配置。這種設(shè)計非常不利于軟件架構(gòu)的擴(kuò)展,每增加一套設(shè)備,就得增加一套對應(yīng)的驅(qū)動模塊,即使修改一條命令,都得將軟件重新打包升級服務(wù),過程繁瑣。隨著資源池平臺的擴(kuò)大,底層設(shè)備增多,維護(hù)將愈加不便。
(2)資源層:實現(xiàn)了IaaS所有資產(chǎn)設(shè)備的資源化,能夠動態(tài)在資產(chǎn)上申請、使用和釋放資源,實現(xiàn)了對資源的統(tǒng)一管理和調(diào)度。
(3)服務(wù)層:調(diào)用資源池管理接口,將細(xì)粒度的資源操作以任意形式組裝,最終以服務(wù)的形式向用戶提供。服務(wù)層不關(guān)心資源和資產(chǎn)層的具體實現(xiàn)細(xì)節(jié),以標(biāo)準(zhǔn)API與資源層通信,可以同時對接多個資源池管理平臺[3]。
用戶通過資源池管理門戶申請網(wǎng)絡(luò)資源,資源池管理平臺接收到請求消息,調(diào)用相應(yīng)的資源模型模塊選取可用資源,并調(diào)用資源驅(qū)動模塊在各類硬件設(shè)備上完成實際的配置,最后將資源返回給用戶,展現(xiàn)在門戶上。
圖2 原網(wǎng)絡(luò)資源配置管理模塊
2.1模塊設(shè)計
CLI模板化是一種用XML作為數(shù)據(jù)的編碼方式,來封裝CLI命令,并通過DOM引擎解析XML,調(diào)用CLI接口實現(xiàn)操作設(shè)備的方法。CLI模板化將每個功能操作定義為標(biāo)簽,建立一個完備的功能集,支持建立SSH(Secure Shell,安全外殼協(xié)議)連接、執(zhí)行命令、斷開連接、反饋結(jié)果等功能。如圖3所示,CLI模板化模塊解析配置文件,完成設(shè)備操作。CLI命令和業(yè)務(wù)的代碼邏輯分開,有利于底層驅(qū)動的維護(hù),如果需要更換CLI命令,只需在XML配置文件中進(jìn)行修改,不必修改代碼重新升級系統(tǒng)[4]。
圖3 CLI模板化網(wǎng)絡(luò)配置管理模塊
2.2配置文件規(guī)范設(shè)計
CLI模板化引擎的核心是一個基于DOM的XML解析器,DOM解析器是通過將XML文檔解析成樹狀模型并將其放入內(nèi)存來完成解析工作的,而后對文檔的操作都是在這個樹狀模型上完成的。每次遇到一個標(biāo)簽時,就會調(diào)用這個特定標(biāo)簽的事件處理程序,來執(zhí)行特定動作。配置文件組合了各種基本標(biāo)簽,完成整個業(yè)務(wù)操作。
模板化配置文件采用了XML的編碼方式。
(1)其根節(jié)點是root,子節(jié)點主要包含Jar包導(dǎo)入(import)和業(yè)務(wù)方法(method)兩個部分。import指導(dǎo)入模塊外部Jar包的方法,旨在處理解析器處理不了的復(fù)雜邏輯;method包含了設(shè)備執(zhí)行一個業(yè)務(wù)請求所需的設(shè)備命令及業(yè)務(wù)邏輯,是模板化配置文件的邏輯主體,模板化配置文件可以由多個
(2)method標(biāo)簽包括參數(shù)列表(paralist)和業(yè)務(wù)邏輯(body)兩部分。參數(shù)相當(dāng)于變量,可以把body中出現(xiàn)此參數(shù)的地方替換為參數(shù)的真實值。body描述整個業(yè)務(wù)請求的實際操作過程,是完成一個業(yè)務(wù)請求所需的基礎(chǔ)標(biāo)簽的集合。后面的標(biāo)簽都是基礎(chǔ)標(biāo)簽。所有的XML模板化配置文件都應(yīng)是如下結(jié)構(gòu):
…
…
…
將配置文件的結(jié)構(gòu)定義之后,剩余的工作就是定義功能標(biāo)簽,每個標(biāo)簽都是一個功能的實現(xiàn)。功能標(biāo)簽可在業(yè)務(wù)邏輯體(body)中自由組合,實現(xiàn)各類業(yè)務(wù)邏輯[6]。
目前設(shè)計了8種核心功能標(biāo)簽:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
以上標(biāo)簽組合成一套完備的語法。各標(biāo)簽在語法規(guī)范下自由搭配,裝配成業(yè)務(wù)流程。資源池管理平臺實現(xiàn)DOM解析引擎,就能夠解析CLI模板化文件,操作設(shè)備完成業(yè)務(wù)配置。
2.3關(guān)鍵技術(shù)
2.3.1XML解析器
一般XML文件的解析有兩種模式,SAX(Simple API for XML,一種XML解析接口)和DOM。DOM是基于文檔驅(qū)動的,需要讀入整個的XML文檔,在內(nèi)存中創(chuàng)建DOM樹,并生成 DOM樹上的每個節(jié)點對象。優(yōu)點是易于處理復(fù)雜對象,并且可以隨意操作節(jié)點對象;缺點是當(dāng)文檔較大時,對DOM樹的創(chuàng)建和處理會消耗大量內(nèi)存。SAX基于事件驅(qū)動,不需要讀入整個文檔,而是依序讀入并產(chǎn)生相對于的事件,優(yōu)點是處理速度快,適用于大型文件的處理;缺點是不支持對文檔的隨意存取,不能修改文檔[7]。對于本文研究的模板化的網(wǎng)絡(luò)配置管理,其配置文件基本不超過50 kB,兩種模式都不會消耗太多內(nèi)存,由于DOM建立了節(jié)點樹,可以隨意讀取節(jié)點,更適合處理復(fù)雜邏輯。因此本文選擇DOM作為解析XML的工具。
2.3.2動態(tài)加載
業(yè)務(wù)邏輯過于復(fù)雜時,可以將這部分邏輯寫在代碼里,由于這部分代碼是定制化的開發(fā),不應(yīng)集成在作為工具使用的CLI模板化模塊中,因此可以單獨打成一個jar分組。定義
動態(tài)加載Jar包時,需要定義類加載URLClassLoader,通過Jar分組的URL路徑加載Jar分組,再通過類路徑找到指定類,用getMethod()及方法名得到指定方法,最后用invoke()反射調(diào)用目標(biāo)方法。
CLI模板化網(wǎng)絡(luò)配置管理方案已經(jīng)應(yīng)用在部署于濱江數(shù)據(jù)中心的浙江移動私有云資源池管理系統(tǒng)上,VLAN申請、VLAN刪除、NAT申請、NAT刪除服務(wù)的內(nèi)外防火墻驅(qū)動模塊已經(jīng)被CLI模板化配置文件替代了。
參考文獻(xiàn)
[1] 郗卓寧. 云計算在IT支撐系統(tǒng)中的應(yīng)用前景分析[J]. 電信工程技術(shù)與標(biāo)準(zhǔn)化, 2009, 22(11):34-35.
[2] Thiago Cordeiro, Douglas Damalio, Nadilma Pereira, Patricia Endo, Andre Palhares, Glauco Goncalves, Djamel Sadok, Judith Kelner. Open Source Cloud Computing Platforms. 2010 Ninth International Conference on Grid and Cloud Computing.
[3] Wind, Stefan. Open source cloud computing management platforms: Introduction, comparison, and recommendations for implementation. IEEE Conference on Open Systems (ICOS 2011) 2011.
[4] 李小康, 廖建新, 沈奇威, 曹予飛. IaaS云資源池中VLAN劃分及IP池管理[J]. 電信工程技術(shù)與標(biāo)準(zhǔn)化, 2013,(8):83-84.
[5] Byung-Joon Lee, Taesang Choi and Taesoo Jeong. X-CLI: CLI based Policy Enforcement and Monitoring Architecure using XML[J], APNOMS 2002.18-20.
[6] Byung-Joon Lee, Taesang Choi and Taesoo Jeong. X-CLI CLI-BASED MANAGEMENT ARCHITECTURE USING XML[J]. Technical Report 2002.134-138.
[7] M.J.Choi,J.W.Hong,and H.T.Ju.XML-Based Network Management for Ip Networks[J]. VOI.25, number.6, December 2003:445-463.
[8] 張濤. 基于XML的網(wǎng)絡(luò)管理技術(shù)研究與實現(xiàn)[D]. 哈爾濱: 哈爾濱工業(yè)大學(xué), 2008.
中國移動設(shè)計院無線所“音跡”團(tuán)隊成功參加 “中國移動2015年自主開發(fā)大賽”路演
創(chuàng)新才能轉(zhuǎn)型、創(chuàng)新需要實踐!在移動互聯(lián)網(wǎng)時代,中國移動高度重視培育創(chuàng)新文化,踐行創(chuàng)新精神,為此,面向全體員工舉辦“中國移動2015年自主開發(fā)大賽”,鼓勵創(chuàng)新開發(fā)移動互聯(lián)網(wǎng)產(chǎn)品。作為中國移動的創(chuàng)新年度大戲,大賽共分為海選、初賽、復(fù)賽、路演展示、現(xiàn)場決賽等環(huán)節(jié)。中國移動設(shè)計院無線所徐佳祥、宋靜川、汪況倫積極響應(yīng)大賽號召,以旅游過程中“亂寫亂畫”的不文明行為作為切入點,用手機(jī)APP電子留音為主的方式來替代“到此一游”的行為,并融合社交元素,策劃了“音跡”產(chǎn)品方案。產(chǎn)品創(chuàng)意和方案是大賽評選的重點,然而團(tuán)隊三個人在三個不同的省常駐,無法面對面討論,大家只能利用社交工具交流,頭腦風(fēng)暴之余卻有意外收獲,“音跡”嶄新的社交功能一躍成為產(chǎn)品亮點。功夫不負(fù)有心人,產(chǎn)品方案最終經(jīng)過設(shè)計院所內(nèi)評選、院內(nèi)評選,成為設(shè)計院參與中國移動評審10個方案之一。9月,“音跡”在報送中國移動的42個單位386個創(chuàng)意中脫穎而出,更是成為設(shè)計院唯一進(jìn)入復(fù)賽階段的團(tuán)隊?!耙糅E”團(tuán)隊成員終于在北京順利會師,4人迎難而上,從零開始,拿起開發(fā)書籍和資料埋頭苦學(xué)。往往翻遍了書籍,找遍了網(wǎng)絡(luò)就為了實現(xiàn)一個看似簡單的功能。在連續(xù)的20多天里,團(tuán)隊成員犧牲晚上,周末等時間,一筆一畫地制作圖形素材,不斷地討論、調(diào)試、改進(jìn),將地圖模塊、語音模塊、數(shù)據(jù)存儲、UI界面等功能模塊一一攻克,在大賽規(guī)定的時間內(nèi)完成了產(chǎn)品Demo版本的開發(fā)。12月8日,關(guān)鍵的時刻到了,音跡團(tuán)隊來到南京參加產(chǎn)品路演展示。本次路演邀請了各省公司技術(shù)主管和專業(yè)風(fēng)投人士作為嘉賓進(jìn)行觀摩。團(tuán)隊成員準(zhǔn)備充分,分工協(xié)作,在輕松自如的氛圍中向嘉賓闡述了音跡產(chǎn)品的價值,并現(xiàn)場演示Demo版本的功能。演示完畢后,在場嘉賓饒有興趣地紛紛提問,并給予真誠建議。
(摘自:中國移動通信集團(tuán)設(shè)計院有限公司網(wǎng)站)
Design scheme of network configuration management of CLI template in resource pool
LIU Yi1,2, ZHU Xiao-min1,2
(1 State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)
AbstractBased on private cloud resource pool system of Zhejiang CMCC, this article analysis the defect of preivous device driver module, and propose a design scheme of network confi gure management of CLI template. The scheme includes template confi guration fi le and parsing engine. Template confi guration fi le uses XML as data coding method, encapsulate the CLI commands and business process. Parsing engine use DOM(Document Object Model) to parse fi le, and call interfaces to operate the devices. The scheme decouples device driver and the system, and is advantageous to maintain and update device driver. It increases the system's extensibility, and implements fl exible and effi cient network device confi guration management.
Keywordsnetwork device; confi guration management; CLI template
* 基金項目:國家973計劃項目(編號:2013CB329102);國家自然科學(xué)基金資助項目(No. 61471063, 61372120, 61271019, 61101119, 61121001);長江學(xué)者和創(chuàng)新團(tuán)隊發(fā)展計劃資助(編號:IRT1049);教育部科學(xué)技術(shù)研究重點(重大)項目資助(編號:MCM20130310);北京高等學(xué)校青年英才計劃項目(編號:YETP0473)。
收稿日期:2015-10-31
中圖分類號TN929.5
文獻(xiàn)標(biāo)識碼A
文章編號1008-5599(2015)11-0044-05