上官斌
摘要:為保障重要業(yè)務(wù)系統(tǒng)7*24持續(xù)運(yùn)行,同時(shí)保障不同地點(diǎn)的用戶都無差別的快速訪問體驗(yàn)。包括金融、電信等大型政企單位,大都逐步推進(jìn)系統(tǒng)異地雙活建設(shè)。如何通過有效手段實(shí)現(xiàn)雙活業(yè)務(wù)中心間有效的安全冗余和負(fù)載均衡是系統(tǒng)設(shè)計(jì)最關(guān)注的問題之一。
筆者在實(shí)際生產(chǎn)中通過主持千萬用戶級(jí)業(yè)務(wù)網(wǎng)關(guān)、radius等電信級(jí)系統(tǒng)雙活建設(shè)實(shí)踐,成功實(shí)現(xiàn)了連續(xù)3年業(yè)務(wù)零中斷,異地用戶接入訪問速度提升30%。現(xiàn)總結(jié)了其中一些實(shí)踐性經(jīng)驗(yàn),供從業(yè)者參考。
關(guān)鍵詞:電信級(jí);雙活;負(fù)載均衡;RTO
中圖分類號(hào):TP393.08? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)30-0138-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Research on Load Balancing Design of Double Live System
SHANGGUAN Bin
(China Mobile IOT Company Limited, Chongqing 401121, China)
Abstract: To ensure important business system 7 * 24 continuous operation, while ensuring fast access experience of users in different locations. Including financial, telecommunications and other large government and enterprise units, most of them gradually promote the construction of remote dual live system. How to achieve effective security redundancy and load balancing between dual active business centers by effective means is one of the most concerned problems in system design.
In the actual production, the author presided over the construction practice of ten million user level service gateway, radius and other telecom level systems, and successfully achieved zero business interruption for three consecutive years, and the access speed of remote users increased by 30% %。This paper summarizes some of the practical experience for reference.
Key words: Carrier grade; Double live; Load balancing; RTO
1 雙活系統(tǒng)的流量均衡困境
為保障7*24不斷網(wǎng)、不斷電持續(xù)運(yùn)行,包括金融、電信、政府等越來越多的大型政企單位的核心業(yè)務(wù),大都逐步開始推進(jìn)系統(tǒng)雙活建設(shè)。同時(shí),為了不同地域的接入訪問用戶具備同樣快速訪問感知,物理位置單一的業(yè)務(wù)服務(wù)中心無法實(shí)現(xiàn)。因此,大型政企單位通過在不同構(gòu)建異地系統(tǒng)雙活,兩地三中心,甚至多地多中心的系統(tǒng)建設(shè)方式成為必然。
在構(gòu)建雙活業(yè)務(wù)中心時(shí),如何實(shí)現(xiàn)不同接入地的用戶統(tǒng)一接入方式,引導(dǎo)用戶流量就近訪問最優(yōu)服務(wù)節(jié)點(diǎn),獲得無差別用戶體驗(yàn);同時(shí)如何進(jìn)行系統(tǒng)容災(zāi),成為系統(tǒng)設(shè)計(jì)時(shí)最重要的問題之一。
2 雙活負(fù)載均衡總體設(shè)計(jì)
2.1 總體設(shè)計(jì)目標(biāo)及關(guān)鍵環(huán)節(jié)
電信級(jí)業(yè)務(wù)系統(tǒng)是保障基礎(chǔ)通信業(yè)務(wù)正常運(yùn)行的基本載體。系統(tǒng)的總體設(shè)計(jì)目標(biāo):必須全時(shí)段的穩(wěn)定運(yùn)行,同時(shí)優(yōu)化用戶側(cè)訪問體驗(yàn),提升訪問流暢度。
為達(dá)到這一設(shè)計(jì)目標(biāo),以及對(duì)實(shí)際需求的分析,考慮采用智能DNS+全局負(fù)載均衡器+本地負(fù)載均衡器的總體網(wǎng)絡(luò)及應(yīng)用負(fù)載方案。本文重點(diǎn)分析負(fù)載均衡方案設(shè)計(jì)中,應(yīng)考慮如下關(guān)鍵環(huán)節(jié):
統(tǒng)一用戶入口:提供唯一的IP地址或域名作為所有用戶訪問的統(tǒng)一的業(yè)務(wù)服務(wù)接入點(diǎn)。
流量分配算法:選擇與業(yè)務(wù)特性匹配的流量分配算法,使用戶獲得最快速的服務(wù)響應(yīng)。
系統(tǒng)容災(zāi)設(shè)計(jì):在單一IDC發(fā)生業(yè)務(wù)故障時(shí),快速把用戶流量切換到其他IDC業(yè)務(wù)系統(tǒng)去。
會(huì)話保持機(jī)制:對(duì)于TCP會(huì)話保持業(yè)務(wù),提供避免相同會(huì)話分配到不同IDC造成訪問失敗的會(huì)話保持機(jī)制。
性能指標(biāo)考核:應(yīng)結(jié)合業(yè)務(wù)最大容忍中斷時(shí)長(zhǎng),用戶體驗(yàn)要求等方面,設(shè)計(jì)RTO和異地用戶訪問時(shí)延等指標(biāo)進(jìn)行項(xiàng)目驗(yàn)收考評(píng)。
2.2 負(fù)載均衡的選擇
負(fù)載均衡通常有硬負(fù)載和軟負(fù)載兩種實(shí)現(xiàn)方式。硬件負(fù)載均衡解決方案通過專用的負(fù)載均衡設(shè)備來實(shí)現(xiàn)多樣化的負(fù)載均衡能力,這種設(shè)備通常稱之為負(fù)載均衡器或硬負(fù)載。軟件負(fù)載是通過在通用服務(wù)器上安裝軟件來實(shí)現(xiàn)負(fù)載均衡能力。對(duì)比而言,硬負(fù)載比軟負(fù)載的性能更加強(qiáng)大,負(fù)載均衡策略更加多樣,可支持多種不同的設(shè)計(jì)方案。在大型電信級(jí)系統(tǒng)業(yè)務(wù)負(fù)載均衡設(shè)計(jì)中,通常采用硬負(fù)載的方案。
3 南向接口的負(fù)載均衡部署及工作方式
這里我們把向用戶側(cè)服務(wù)的系統(tǒng)接口稱為南向接口,在雙中心進(jìn)行GSLB全局負(fù)載均衡設(shè)備部署及工作方式:
lIDC1和IDC2機(jī)房的全局負(fù)載設(shè)備之間會(huì)通過公網(wǎng)互聯(lián)互通,自動(dòng)進(jìn)行相關(guān)域名信息的同步和更新。
l正常情況下,IDC2業(yè)務(wù)中心的全局負(fù)載設(shè)備處理全部客戶端的LDNS域名請(qǐng)求,并負(fù)責(zé)返回IDC2業(yè)務(wù)中心的A記錄(IP3地址)給客戶。
l當(dāng)IDC2業(yè)務(wù)中心的2臺(tái)全局負(fù)載均衡設(shè)備故障或者到后臺(tái)服務(wù)器連接全部異常后,此時(shí)IDC1業(yè)務(wù)中心的備設(shè)備會(huì)自動(dòng)處理客戶的域名請(qǐng)求,不需要人工干預(yù)。
l當(dāng)IDC2業(yè)務(wù)中心的全局負(fù)載均衡設(shè)備正常后,此時(shí)可以從IDC1切換回IDC2業(yè)務(wù)中心。
l當(dāng)其中一個(gè)域名故障后,可以全局負(fù)載均衡設(shè)備上進(jìn)行手工方式修改即可,勿需域名服務(wù)商進(jìn)行配置修改。
以申請(qǐng)的域名為www.xxx.com為例,域名提供商配置,將A記錄分別IDC1和IDC2的全局負(fù)載均衡設(shè)備:
全局負(fù)載均衡設(shè)備配置,將A記錄指向?qū)?yīng)的IDC2和IDC1出口IP:
4 北向接口的負(fù)載均衡部署及工作方式
兩個(gè)站點(diǎn)的業(yè)務(wù)系統(tǒng)向更上級(jí)服務(wù)系統(tǒng)進(jìn)行服務(wù)請(qǐng)求的系統(tǒng)接口稱為北向接口,如短信網(wǎng)關(guān)需要向更上一級(jí)BOSS、HLR、運(yùn)管系統(tǒng)等對(duì)接的時(shí)候,負(fù)載均衡工作在負(fù)荷分擔(dān)模式。
lIDC1和IDC2機(jī)房的專網(wǎng)負(fù)載設(shè)備之間會(huì)通過拉專線進(jìn)行心跳監(jiān)測(cè)
l正常情況下,IDC1業(yè)務(wù)中心的負(fù)載設(shè)備處理業(yè)務(wù)系統(tǒng)與上級(jí)服務(wù)系統(tǒng)之間的請(qǐng)求,并負(fù)責(zé)返回響應(yīng)給業(yè)務(wù)系統(tǒng)。
l當(dāng)IDC1業(yè)務(wù)中心的負(fù)載均衡設(shè)備故障或者到業(yè)務(wù)及應(yīng)用服務(wù)器連接異常后,此時(shí)自動(dòng)切換到IDC2業(yè)務(wù)中心的負(fù)載均衡設(shè)備處理業(yè)務(wù)請(qǐng)求。
l當(dāng)IDC1業(yè)務(wù)中心的負(fù)載均衡設(shè)備正常后,此時(shí)可以從IDC2切換回IDC1業(yè)務(wù)中心。
5 狀態(tài)監(jiān)控及切換
業(yè)務(wù)系統(tǒng)容災(zāi)兩個(gè)中心會(huì)融合成一套異地雙活部署的業(yè)務(wù)系統(tǒng),業(yè)務(wù)通過GSLB全局負(fù)載均衡,因此需在兩個(gè)中心部署業(yè)務(wù)檢測(cè)和切換系統(tǒng)。每個(gè)站點(diǎn)部署一套監(jiān)控服務(wù)器監(jiān)控所有接口機(jī),處理機(jī)與數(shù)據(jù)庫等的工作狀態(tài)。
當(dāng)數(shù)據(jù)庫發(fā)生異常的時(shí)候,由監(jiān)控服務(wù)器通知所有的接口機(jī)和處理機(jī)進(jìn)行數(shù)據(jù)庫切換和業(yè)務(wù)恢復(fù)。
當(dāng)監(jiān)控服務(wù)器監(jiān)控到某個(gè)模塊的業(yè)務(wù)成功率低,可以根據(jù)預(yù)定策略對(duì)該模塊進(jìn)行重啟或者下線處理。
監(jiān)控服務(wù)器部署業(yè)務(wù)檢測(cè)和切換系統(tǒng)。
檢測(cè)系統(tǒng)和切換系統(tǒng)間,通過消息接口進(jìn)行數(shù)據(jù)交換。檢測(cè)服務(wù)器定期將檢測(cè)結(jié)果發(fā)送給切換服務(wù)器,由切換服務(wù)器進(jìn)行切換邏輯判定和出來。發(fā)送周期可配,通常可配置為10秒。
檢測(cè)服務(wù)器反饋的各項(xiàng)檢測(cè)結(jié)果,是切換服務(wù)器進(jìn)行切換判定的數(shù)據(jù)依據(jù)。
切換系統(tǒng)主要工作:
1)接受檢測(cè)結(jié)果;
2)根據(jù)檢測(cè)結(jié)果,做出是否要切換的邏輯判定;
3)將檢測(cè)結(jié)果展示到結(jié)果查詢界面;
4)根據(jù)配置確定是自動(dòng)或人工切換;
5)如自動(dòng)切換,進(jìn)行切換操作;
6)切換結(jié)果上報(bào)。
業(yè)務(wù)檢測(cè)主要通過部署在業(yè)務(wù)系統(tǒng)接口機(jī)和處理機(jī)上的駐留程序檢測(cè):
1)CPU:空閑率(平均值和瞬時(shí)值);
2)內(nèi)存:最大值,占用率;
3)數(shù)據(jù)庫訪問成功率;
4)業(yè)務(wù)進(jìn)程狀態(tài);
5)磁盤:最大值,占用率。
作為切換處理的相關(guān)判定,為后續(xù)實(shí)際切換提供切換判定邏輯和處理數(shù)據(jù)支持。
切換的兩種模式定義:
自動(dòng)切換:切換服務(wù)器根據(jù)檢測(cè)服務(wù)器檢測(cè)結(jié)果,綜合判斷需要進(jìn)行哪種場(chǎng)景的切換,然后自動(dòng)進(jìn)行容災(zāi)切換控制。
半自動(dòng)切換:部署方式及切換業(yè)務(wù)流同自動(dòng)切換方案,人工根據(jù)告警判斷是哪種故障場(chǎng)景,然后點(diǎn)擊“一鍵切換服務(wù)器”上相應(yīng)的切換場(chǎng)景,由切換服務(wù)器進(jìn)行切換控制。
6 質(zhì)量指標(biāo)評(píng)估
可從RTO和異地用戶訪問時(shí)延兩個(gè)方面評(píng)估建設(shè)目標(biāo):
(1)RTO (Recovery Time Objective,復(fù)原時(shí)間目標(biāo)):是指災(zāi)難發(fā)生后,從IT系統(tǒng)當(dāng)機(jī)導(dǎo)致業(yè)務(wù)停頓之時(shí)開始,到IT系統(tǒng)恢復(fù)至可以支持各部門運(yùn)作、恢復(fù)運(yùn)營(yíng)之時(shí),此兩點(diǎn)之間的時(shí)間段稱為RTO。比如說災(zāi)難發(fā)生后需要半天時(shí)間恢復(fù),RTO值就是12小時(shí)。
在實(shí)際案例中,筆者通過雙活系統(tǒng)建設(shè),成功實(shí)現(xiàn)系統(tǒng)穩(wěn)定運(yùn)行三年0中斷,應(yīng)急演練RTO<10分鐘。
(2)異地用戶訪問時(shí)延是指用戶請(qǐng)求報(bào)文從用戶側(cè)系統(tǒng)發(fā)起,傳送到服務(wù)側(cè)系統(tǒng)處理,并反饋響應(yīng)報(bào)文,最后到達(dá)用戶側(cè)系統(tǒng)實(shí)現(xiàn)業(yè)務(wù)請(qǐng)求的全流程所需要的時(shí)間。它包括了發(fā)送時(shí)延,傳播時(shí)延,處理時(shí)延,排隊(duì)時(shí)延,回傳時(shí)延,接收時(shí)延。
在實(shí)際案例中,筆者通過異地用戶就近接入,極大壓縮了報(bào)文傳播時(shí)延和回傳時(shí)延;通過負(fù)載均衡器的合理配置,極大壓縮了報(bào)文處理時(shí)延,排隊(duì)時(shí)延。最終異地用戶訪問時(shí)延從平均520ms壓縮到350ms,訪問速度提升約30%。
7 結(jié)束語
雙活系統(tǒng)架構(gòu)設(shè)計(jì)應(yīng)遵循必要的基本原則。應(yīng)充分考慮網(wǎng)絡(luò)雙活、應(yīng)用雙活、數(shù)據(jù)雙活三個(gè)層次。其中構(gòu)建了雙活業(yè)務(wù)中心系統(tǒng)設(shè)計(jì)最關(guān)注的問題之一,是如何通過有效手段實(shí)現(xiàn)雙活業(yè)務(wù)中心間的協(xié)調(diào)工作,引導(dǎo)用戶訪問最優(yōu)的站點(diǎn),以及當(dāng)某個(gè)站點(diǎn)出現(xiàn)災(zāi)難性故障后使用戶仍然可以無感知快速訪問其他站點(diǎn)上的關(guān)鍵業(yè)務(wù)。通過全局負(fù)載+本地負(fù)載的合理設(shè)計(jì),最終實(shí)現(xiàn)系統(tǒng)長(zhǎng)時(shí)間可靠的0中斷運(yùn)行, 異地用戶就近接入獲得訪問速度極大提升。以上是筆者在實(shí)踐基礎(chǔ)上的一些總結(jié),對(duì)電信級(jí)兩地三中心系統(tǒng)建設(shè)中特別是大型業(yè)務(wù)系統(tǒng)全局及業(yè)務(wù)負(fù)載均衡架構(gòu)設(shè)計(jì)及實(shí)施工作的有效開展,具有積極的借鑒意義。
參考文獻(xiàn):
[1] 《物聯(lián)網(wǎng)業(yè)務(wù)網(wǎng)關(guān)設(shè)備規(guī)范》[S](QB-D-176-2011)
[2] 《中國(guó)移動(dòng)蜂窩物聯(lián)網(wǎng)技術(shù)體制》[S](QB-A-048-2019)
[3] 《電信設(shè)備安裝抗震設(shè)計(jì)規(guī)范》[S](YD 5059-2005)
[4] Radware全局負(fù)載均衡解決方案[N] 比特網(wǎng)
【通聯(lián)編輯:梁書】