在天津移動(dòng)通信網(wǎng)絡(luò)中,有6套西門(mén)子交換機(jī),它們分別作為一級(jí)匯接局和移動(dòng)關(guān)口局,承擔(dān)著非常重要的任務(wù),而技術(shù)人員對(duì)于設(shè)備的維護(hù)和對(duì)網(wǎng)絡(luò)質(zhì)量的分析很大程度上是依賴于性能統(tǒng)計(jì)報(bào)表,所以對(duì)于西門(mén)子交換機(jī)提供良好的性能解決方案就顯得異常重要。筆者通過(guò)長(zhǎng)時(shí)間性能報(bào)表的制作以及對(duì)各類交換機(jī)性能解決方案的研究,針對(duì)西門(mén)子交換機(jī)的管理提出了一套解決方案。
在硬件接入方面,由于西門(mén)子交換機(jī)對(duì)外提供X.25端口,所以采用直聯(lián)交換機(jī)的方式將西門(mén)子交換機(jī)接入到網(wǎng)管系統(tǒng)中。在硬件連接上采用摩托羅拉的PAD設(shè)備,PAD的端口是1進(jìn)5出,可以與西門(mén)子交換機(jī)的X.25口相接,將X.25協(xié)議轉(zhuǎn)換為5個(gè)串口協(xié)議,再通過(guò)使用IOLAN將串口數(shù)據(jù)流轉(zhuǎn)換成TCP/IP數(shù)據(jù)流接入網(wǎng)管系統(tǒng)。具體連接如圖1所示。采用圖1的連接方式可以保證與交換機(jī)建立穩(wěn)定的物理和邏輯連接。IOLAN設(shè)備支持端口綁定,即該設(shè)備本身具有一個(gè)IP地址,并且它的每個(gè)物理端口可以對(duì)應(yīng)一個(gè)邏輯端口號(hào),這樣就可以采用網(wǎng)絡(luò)編程中最為常用的socket方式對(duì)端口進(jìn)行綁定,從而與交換機(jī)之間建立一條邏輯連接,實(shí)現(xiàn)對(duì)交換機(jī)的操作。相對(duì)來(lái)講,西門(mén)子交換機(jī)在網(wǎng)管接入方面的硬件連接是比較簡(jiǎn)單的,該方案也是在國(guó)內(nèi)網(wǎng)管接入方面被廣泛采用的方案。
以下將重點(diǎn)介紹軟件部分。對(duì)于軟件部分可以分為調(diào)度、采集、分析入庫(kù)、報(bào)表制作和告警監(jiān)視五個(gè)部分。其中調(diào)度程序起到一個(gè)核心作用,由主調(diào)度程序負(fù)責(zé)將各個(gè)模塊聯(lián)系起來(lái)并統(tǒng)一指揮。
為了更好地理解各個(gè)模塊的原理以及實(shí)現(xiàn)過(guò)程,下面對(duì)模塊進(jìn)行逐個(gè)闡述。
一、主調(diào)度程序
調(diào)度程序是各個(gè)程序協(xié)調(diào)工作的核心,它控制著從采集、分析入庫(kù)到觸發(fā)報(bào)表自動(dòng)生成工具和報(bào)警程序的流程,具體功能包括:
1.建立監(jiān)聽(tīng)socket;
2.等待采集程序、分析入庫(kù)程序、報(bào)表自動(dòng)生成程序、告警監(jiān)視程序的連接請(qǐng)求;
3.接受采集程序、分析入庫(kù)程序、報(bào)表自動(dòng)生成程序、告警監(jiān)視程序的SOCKET連接;
4.對(duì)各個(gè)連接進(jìn)行輪詢;
5.接收并分析采集程序發(fā)送來(lái)的消息,該消息是網(wǎng)元的單個(gè)報(bào)告采集成功或者失敗,如果是采集成功,則根據(jù)消息中分析入庫(kù)程序全路徑參數(shù)去調(diào)用相應(yīng)的分析入庫(kù)程序,如果是采集失敗,則發(fā)送采集失敗通知消息給告警監(jiān)視程序,該通知消息中包括網(wǎng)元名、時(shí)間點(diǎn)、報(bào)告名和失敗信息;
6.接收分析入庫(kù)程序發(fā)送的報(bào)告分析入庫(kù)成功與否的消息,對(duì)于分析失敗的消息,則發(fā)送分析失敗通知消息給告警監(jiān)視程序,該通知消息中包括網(wǎng)元名、時(shí)間點(diǎn)、報(bào)告名和失敗信息,對(duì)于分析成功的消息,則判斷是否觸發(fā)報(bào)表自動(dòng)生成程序。
主調(diào)度程序作為系統(tǒng)的核心,采用常駐內(nèi)存的方式,將其作為一個(gè)系統(tǒng)進(jìn)程運(yùn)行,而其它模塊則可以在需要的時(shí)候予以啟動(dòng),工作完畢之后予以退出。
二、數(shù)據(jù)庫(kù)設(shè)計(jì)
在數(shù)據(jù)庫(kù)的設(shè)計(jì)上,基本原則是忠實(shí)于原始數(shù)據(jù)。對(duì)于數(shù)據(jù)庫(kù)的設(shè)計(jì),采用分級(jí)的概念,即根據(jù)對(duì)數(shù)據(jù)的分級(jí)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)表的分級(jí)。具體來(lái)講,就是對(duì)原始數(shù)據(jù)設(shè)定為第一級(jí)表,在該表中只保存原始報(bào)告中的數(shù)據(jù)和基本的網(wǎng)元標(biāo)識(shí)以及時(shí)間信息,在此基礎(chǔ)上,可以根據(jù)性能公式中的數(shù)據(jù)進(jìn)行計(jì)算,將這些運(yùn)算結(jié)果作為第二級(jí)數(shù)據(jù)存放在第二級(jí)數(shù)據(jù)庫(kù)表格中。根據(jù)需要,天津移動(dòng)在該系統(tǒng)中只是設(shè)定了第一級(jí)的表,以原始報(bào)告中的子報(bào)告類型來(lái)確定實(shí)際上需要哪些表,即一種類型的子報(bào)告對(duì)應(yīng)于數(shù)據(jù)庫(kù)中的一張表,表中的字段與原始數(shù)據(jù)中的counter一一對(duì)應(yīng),這樣可以方便地將原始數(shù)據(jù)和數(shù)據(jù)庫(kù)中的表建立對(duì)應(yīng)關(guān)系,當(dāng)完成分析入庫(kù)之后,用戶只需要關(guān)心數(shù)據(jù)庫(kù)就可以了。這樣操作,對(duì)于后續(xù)的計(jì)算和進(jìn)一步處理打下了良好的基礎(chǔ),因?yàn)樵谟脩舳x公式時(shí),實(shí)際上就是對(duì)原始的counter進(jìn)行定義運(yùn)算規(guī)則,這樣只要針對(duì)數(shù)據(jù)庫(kù)就可以方便地進(jìn)行操作。
三、數(shù)據(jù)采集程序
采集程序負(fù)責(zé)對(duì)原始數(shù)據(jù)報(bào)告的自動(dòng)采集。采集程序根據(jù)各個(gè)網(wǎng)元的初始配置文件,自動(dòng)連接交換機(jī)的指定端口,然后根據(jù)配置文件中的配置信息拼接出完整的交換機(jī)指令發(fā)送給交換機(jī),通過(guò)socket端口接收交換機(jī)送出的文件數(shù)據(jù),并依照配置文件中的文件存儲(chǔ)路徑將該文件存儲(chǔ)為指定的名稱,然后根據(jù)采集的成功與否向主調(diào)度程序發(fā)送消息,以便主調(diào)度程序決定下一步動(dòng)作。
在性能系統(tǒng)中,數(shù)據(jù)采集是最基礎(chǔ)的也是最關(guān)鍵的一個(gè)環(huán)節(jié),只有保證對(duì)原始數(shù)據(jù)的準(zhǔn)確穩(wěn)定的接收,才能保證后續(xù)分析和計(jì)算的正常進(jìn)行,這對(duì)采集工作提出了較高的要求。同時(shí),還要考慮到采集工作的靈活性,因?yàn)槲鏖T(mén)子交換機(jī)的性能原始報(bào)告的提取命令不是一成不變的,并且可能經(jīng)常添加或減少需要采集的報(bào)告,即使需要采集的報(bào)告,它們的采集命令格式也是不同的。針對(duì)西門(mén)子交換機(jī)提取性能統(tǒng)計(jì)報(bào)告的命令格式的特點(diǎn),采用根據(jù)配置文件的方式進(jìn)行命令行的拼接,這樣當(dāng)需要添加或減少報(bào)告的時(shí)候就可以非常方便地進(jìn)行修改,并且不用修改源程序,從而減少工作量和維護(hù)難度。
例如,對(duì)于西門(mén)子交換機(jī)的tgrp報(bào)告的提取指令為:“GETTRAFILE:FILE=TS.TGRP.MO1,IV=10-00-11-00;”,其中“TS.TGRP”是統(tǒng)計(jì)任務(wù)的名字,“MO”為星期一(Monday)的縮寫(xiě),“1”為文件號(hào),“IV=10-00-11-00”為指定提取的時(shí)段,而提取c7ll報(bào)告的指令為“GETTRAFILE:FILE=TS.C7LL.MO1,IV=10-00-11-00;”。由此可見(jiàn),兩條指令中只有統(tǒng)計(jì)任務(wù)的名稱不一樣,考慮到文件號(hào)有可能改變,所以在配置文件中需要反映出統(tǒng)計(jì)任務(wù)的名稱和文件號(hào),這樣軟件就可以按照一定的規(guī)則來(lái)拼接出完整的指令。當(dāng)然,也有不符合該種格式的指令,例如對(duì)iarstat報(bào)告的提取指令就是“DISPIARSTAT:MTYPE=IARSTAT1;”,那么對(duì)于此類指令就需要程序作特殊處理,在具體實(shí)現(xiàn)上就是在配置文件中將該統(tǒng)計(jì)的任務(wù)名稱iarstat作為標(biāo)識(shí),一旦程序發(fā)現(xiàn)需要提取的報(bào)告為此類報(bào)告,就采用針對(duì)此類報(bào)告的命令拼接規(guī)則,否則采用另一套規(guī)則。這樣,可以有效地解決對(duì)原始統(tǒng)計(jì)報(bào)告提取指令的靈活配置,一旦需要臨時(shí)做調(diào)整,就可以通過(guò)修改配置來(lái)解決,而不必修改源程序。