2011年廣東聯(lián)通OCS系統(tǒng)完成了PROXY刀片化的工程,PROXY對(duì)業(yè)務(wù)增長(zhǎng)具有快速擴(kuò)展性,但CF域不滿足這個(gè)要求,況且PROXY是在號(hào)段基礎(chǔ)上對(duì)CF進(jìn)行業(yè)務(wù)負(fù)載的,暫時(shí)不具備會(huì)話級(jí)負(fù)載均衡功能。隨著OCS系統(tǒng)支撐業(yè)務(wù)的快速發(fā)展,CF側(cè)支撐能力越來越成為制約系統(tǒng)支撐能力的一個(gè)瓶頸,以集中式中小型服務(wù)器部署的方式擴(kuò)展效率低、風(fēng)險(xiǎn)高,不能快速滿足當(dāng)前市場(chǎng)發(fā)展需求,在IT界云化技術(shù)發(fā)展影響下,推動(dòng)CF刀片化技術(shù)改造,自然成為系統(tǒng)未來發(fā)展的合適之路。
這次工程范圍涉及到系統(tǒng)的方方面面,不單有新業(yè)務(wù)均衡核心模塊的研發(fā),還有系統(tǒng)的軟硬件重新部署調(diào)整和內(nèi)部數(shù)據(jù)的割接工程。
(OCS系統(tǒng)子系統(tǒng)集成圖)
工程主要涉及系統(tǒng)建設(shè)升級(jí)的有“ ”部分范圍所述,分為:
■ 擴(kuò)容4個(gè)ABM庫工程,內(nèi)部生產(chǎn)數(shù)據(jù)割接遷移。
■ 設(shè)備采購(gòu),PC機(jī)設(shè)備準(zhǔn)備、安裝、應(yīng)用,相關(guān)網(wǎng)絡(luò)架設(shè)施工。
■ CMP會(huì)話負(fù)載均衡軟件的開發(fā)、測(cè)試、部署、調(diào)試應(yīng)用等研發(fā)及施工。
■ OAM升級(jí)改造,滿足刀片機(jī)集群便捷有效管理的要求,由⑩接口處進(jìn)行的靜態(tài)數(shù)據(jù)分散式配置,改為集中式管理配置,對(duì)CF的系統(tǒng)監(jiān)控接口保留,同時(shí)需要擴(kuò)充對(duì)CMP的監(jiān)控和間接的PC機(jī)狀況監(jiān)控。
■ 考慮PC機(jī)集群的應(yīng)用、子系統(tǒng)遷移挪出的機(jī)器重新部署、其它子系統(tǒng)對(duì)PC機(jī)集群的系統(tǒng)集成改造和重新部署,整個(gè)生產(chǎn)環(huán)境大調(diào)整的施工工程。
■ PC機(jī)集群數(shù)量較多(幾十臺(tái))且隨著業(yè)務(wù)的不斷增長(zhǎng)而不斷擴(kuò)展,建設(shè)滿足集群化部署方式的運(yùn)維手段也是工程的重要部分,包括:主機(jī)資源監(jiān)控、靜態(tài)配置數(shù)據(jù)管理、應(yīng)用的升級(jí)同步、業(yè)務(wù)運(yùn)行狀況監(jiān)控等等。
工程中,新增的核心模塊有三大塊:業(yè)務(wù)均衡模塊CMP、會(huì)話同步模塊session_syn、超時(shí)會(huì)話管理改造。主要涉及的功能:
□ 會(huì)話級(jí)負(fù)載均衡網(wǎng)元CCR消息到CF刀片化PC主機(jī)。
□ 會(huì)話記錄集中同步到CMP。
□ 超時(shí)會(huì)話集中處理。
□ CF刀片集群?jiǎn)喂?jié)點(diǎn)故障時(shí),故障節(jié)點(diǎn)會(huì)話記錄快速均衡到集群其它PC機(jī)。
□ 動(dòng)態(tài)向CF刀片集群添加新PC機(jī)。
□ CMP提供人機(jī)管理交互接口。
□ CMP提供離線容錯(cuò)功能(單節(jié)點(diǎn)故障,當(dāng)會(huì)話同步中而未完成時(shí),可以考慮把會(huì)話發(fā)往離線節(jié)點(diǎn))。
□ CMP架設(shè)OAM統(tǒng)一接口,各個(gè)業(yè)務(wù)CMP統(tǒng)一由OAM監(jiān)控管理。
CMP在滿足上述的功能時(shí),盡量采用開放的設(shè)計(jì),以插件和消息驅(qū)動(dòng)的方式來實(shí)現(xiàn),整體的模塊框架如下:
在滿足上述的功能情況下,對(duì)于性能能否滿足生產(chǎn)需求和業(yè)務(wù)增長(zhǎng)的需求是這次工程能夠勝利完成的至關(guān)重要指標(biāo)。
從OCS現(xiàn)網(wǎng)的業(yè)務(wù)量統(tǒng)計(jì)來看,數(shù)據(jù)業(yè)務(wù)最大,每秒10719個(gè)請(qǐng)求,如果8個(gè)ABM服務(wù)器用戶量相當(dāng),可以認(rèn)為10719個(gè)請(qǐng)求分?jǐn)偟?8 個(gè)節(jié)點(diǎn)上面,每個(gè)節(jié)點(diǎn)處理的請(qǐng)求數(shù)為1339個(gè)。CMP按ABM和業(yè)務(wù)來部署,8個(gè)ABM,6種業(yè)務(wù)(數(shù)據(jù)、語音、會(huì)話增值、事件增值、短信、WLAN),共48個(gè)CMP進(jìn)程。每個(gè)進(jìn)程每秒最多處理 1339 個(gè)請(qǐng)求的要求就可以滿足系統(tǒng)當(dāng)前要求,考慮將來業(yè)務(wù)發(fā)展等情況,CMP按每秒處理8000 個(gè)CCR請(qǐng)求的目標(biāo)建設(shè)。
會(huì)話同步模塊session_syn同步50萬會(huì)話記錄,提出2分多鐘同步完成的時(shí)間要求。達(dá)到每秒接近4500條記錄每秒的速率。
單故障節(jié)點(diǎn)異常時(shí),重新更新均衡50萬會(huì)話記錄的時(shí)間大概是30秒的要求。
在均衡算法方案中,提出了三種均衡算法:
1、 業(yè)務(wù)量均衡
2、 加權(quán)均衡
3、 時(shí)間均衡
√業(yè)務(wù)量均衡
核心思想:根據(jù)處理的業(yè)務(wù)量進(jìn)行負(fù)載均衡,業(yè)務(wù)量以計(jì)費(fèi)請(qǐng)求消息數(shù)與計(jì)費(fèi)應(yīng)答消息數(shù)之差作為衡量。(優(yōu)先實(shí)現(xiàn)這種策略)
啟用計(jì)數(shù)器登記計(jì)費(fèi)請(qǐng)求消息數(shù)與計(jì)費(fèi)應(yīng)答消息數(shù)之差,每發(fā)送一個(gè)計(jì)費(fèi)請(qǐng)求,計(jì)數(shù)器遞增一;反之每收到一個(gè)計(jì)費(fèi)應(yīng)答,計(jì)數(shù)器遞減一。
算法實(shí)現(xiàn):CMP對(duì)每個(gè)計(jì)費(fèi)請(qǐng)求消息進(jìn)行負(fù)載均衡選擇CF計(jì)費(fèi)節(jié)點(diǎn)的時(shí)候,先判斷是否能直接路由,如:相同會(huì)話、相同號(hào)碼發(fā)往同一個(gè)節(jié)點(diǎn),不能,對(duì)CF所有計(jì)費(fèi)節(jié)點(diǎn)的計(jì)數(shù)器排序選擇最小的發(fā)送。
特別地,1)如果有新節(jié)點(diǎn)添加進(jìn)來,這個(gè)算法也不需要重置計(jì)數(shù)器。
2)采用計(jì)費(fèi)請(qǐng)求消息數(shù)與計(jì)費(fèi)應(yīng)答消息數(shù)之差作為計(jì)數(shù)器的值,可能由于業(yè)務(wù)量少或者某個(gè)主機(jī)處理能力比較快而相對(duì)比較集中地把計(jì)費(fèi)請(qǐng)求發(fā)送到一個(gè)主機(jī)節(jié)點(diǎn)上面,為了避免這種情況的出現(xiàn),在CMP實(shí)現(xiàn)的時(shí)候,當(dāng)存在多個(gè)計(jì)數(shù)器都是最小值的時(shí)候,通過隨機(jī)函數(shù)計(jì)算選擇某個(gè)節(jié)點(diǎn)。
√加權(quán)均衡
算法核心思想:先滿足高處理能力節(jié)點(diǎn)的要求,然后才是考慮低處理能力的節(jié)點(diǎn)。這么做的理由有三:
1、不可能完全接收到X個(gè)消息后再統(tǒng)一分派;
2、不知道接收X個(gè)消息需要多長(zhǎng)時(shí)間;
3、高加權(quán)的機(jī)器說明更好、更可靠,在不可預(yù)知后面接收消息的情況下,先保證當(dāng)前處理的CCR被更可靠的節(jié)點(diǎn)計(jì)費(fèi)。這些都是隨機(jī)不可預(yù)知的,但每接收到一個(gè)CCR消息的時(shí)候CMP就要作出判斷,該發(fā)往哪個(gè)CF計(jì)費(fèi)節(jié)點(diǎn)。
算法實(shí)現(xiàn):1)需要考慮加權(quán)值相互之間的比值。2)需要考慮換算以那個(gè)加權(quán)值為基準(zhǔn)。3)換算過程中,是向上折算還是向下折算,由于核心思想中以高比值更可靠,選向上折算。4)均衡過程中,需要考慮加權(quán)值相互之間的最小公倍數(shù)問題。
√時(shí)間均衡
算法核心思想:根據(jù)每個(gè)CF節(jié)點(diǎn)平均處理CCR的時(shí)長(zhǎng)來決定負(fù)載CCR消息數(shù)的多少,需要以輪詢策略來獲取最初的時(shí)長(zhǎng)參數(shù),然后再計(jì)算、轉(zhuǎn)換加權(quán)值,最終都以加權(quán)輪詢的方式均衡分發(fā)消息。
算法實(shí)現(xiàn):1)最初的輪詢策略分發(fā)多少個(gè)CCR來獲取時(shí)長(zhǎng)參數(shù)。2)每隔多長(zhǎng)時(shí)間重新調(diào)整加權(quán)值。3)以什么算法公式轉(zhuǎn)換為加權(quán)值最為合理。
為了保證單PC主機(jī)發(fā)生故障時(shí)不影響業(yè)務(wù)的使用,需要對(duì)CF的會(huì)話記錄進(jìn)行有效的管理和備份。系統(tǒng)引進(jìn)了會(huì)話雙向同步的機(jī)制:
OCS系統(tǒng)在正常運(yùn)行時(shí),需要對(duì)會(huì)話數(shù)據(jù)進(jìn)行備份,進(jìn)行會(huì)話數(shù)據(jù)的同步處理;當(dāng)某個(gè)節(jié)點(diǎn)發(fā)生異常時(shí),需要對(duì)該節(jié)點(diǎn)的會(huì)話數(shù)據(jù)重新均衡到其它節(jié)點(diǎn),啟動(dòng)反向數(shù)據(jù)同步流程。
最后,CMP完成以后的物理架構(gòu)圖如下:
作者:廣州從興電子開發(fā)有限公司 王金銓 來源:廠商供稿