□ 文 程東亮
隨著互聯(lián)網(wǎng)與信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)金融行業(yè)呈現(xiàn)出快速發(fā)展的勢態(tài)。為保障金融服務(wù)7*24小時不間斷連續(xù)運(yùn)營,減少正常與非正常的停機(jī)對業(yè)務(wù)可用性造成的影響,金融行業(yè)尤其是銀行業(yè)高度重視災(zāi)備系統(tǒng)建設(shè)。
為實(shí)現(xiàn)數(shù)據(jù)中心的高可用性和連續(xù)性,銀行業(yè)一般采用同城兩中心或“兩地三中心”(生產(chǎn)中心、同城災(zāi)備中心和異地災(zāi)備中心)的布局,且一般只有其中一個數(shù)據(jù)中心運(yùn)行在主用(active)狀態(tài),其余中心為備用狀態(tài)或僅實(shí)現(xiàn)數(shù)據(jù)備份的狀態(tài)。這種數(shù)據(jù)中心主備運(yùn)行模式,災(zāi)備接管能力較弱,很難達(dá)到預(yù)期的災(zāi)備系統(tǒng)RTO(Recovery Time Object)和RPO(Recovery Point Object),備份中心只有在故障或?yàn)?zāi)難時才能起到作用,無法得到充分有效利用,也存在IT資源和資金的浪費(fèi)。
表1 基于DNS的雙活模型與基于RHI的IP雙活模型的技術(shù)對比表
雙活甚至多活數(shù)據(jù)中心技術(shù)由此應(yīng)運(yùn)而生,成為災(zāi)備實(shí)踐中熱點(diǎn)。對于雙活(或多活)數(shù)據(jù)中心而言,如果一個數(shù)據(jù)中心出現(xiàn)故障,另外一個或多個數(shù)據(jù)中心還能夠?qū)ν馓峁┓?wù),此時業(yè)務(wù)的實(shí)時切換對用戶而言不可感知,業(yè)務(wù)幾乎不受影響。除此之外,兩個或多個數(shù)據(jù)中心同時對外提供業(yè)務(wù)生產(chǎn)和災(zāi)備服務(wù),運(yùn)行在“activeactive”狀態(tài),其服務(wù)能力是雙倍或多倍的,所有的資源都得到了有效利用,也在一定程度上節(jié)省了資金。
多活數(shù)據(jù)中心以其更高的可靠性、服務(wù)能力和資源利用率,成為多數(shù)據(jù)中心結(jié)構(gòu)下的最理想運(yùn)行方式。以雙活為例,為實(shí)現(xiàn)應(yīng)用在兩個數(shù)據(jù)中心的“雙活”,在網(wǎng)絡(luò)層面,前端網(wǎng)絡(luò)對業(yè)務(wù)的感知能力和對應(yīng)用流量的牽引是技術(shù)重點(diǎn)。
要實(shí)現(xiàn)應(yīng)用在兩個數(shù)據(jù)中心的“雙活”,應(yīng)用系統(tǒng)對外的IP地址或DNS域名必須唯一。基于健康路由注入(RHI)的IP雙活模型和基于智能DNS的全局負(fù)載均衡(GSLB)模型是最主要的兩種雙活模型。其技術(shù)詳細(xì)對比情況如表1所列。
由于IP多活方式只能實(shí)現(xiàn)業(yè)務(wù)的主備模式且存在功能性、靈活性不夠等缺點(diǎn),故“多活”應(yīng)用應(yīng)采用基于智能DNS技術(shù)的全局負(fù)載均衡技術(shù)。
GSLB是英文Global Server Load Balance的縮寫,意思是全局負(fù)載均衡。其作用是實(shí)現(xiàn)在廣域網(wǎng)(包括互聯(lián)網(wǎng))上不同地域的服務(wù)器間的流量調(diào)配,保證使用最佳的服務(wù)器服務(wù)離自己最近的客戶,從而確保訪問質(zhì)量。
智能DNS配合GSLB是實(shí)現(xiàn)多活數(shù)據(jù)中心的技術(shù)基礎(chǔ)。基于智能DNS服務(wù)的多活數(shù)據(jù)中心網(wǎng)絡(luò)實(shí)現(xiàn)原理是:利用智能DNS解析技術(shù),業(yè)務(wù)應(yīng)用以唯一域名方式為所有發(fā)布相同服務(wù)的數(shù)據(jù)中心提供統(tǒng)一的入口,依據(jù)預(yù)先設(shè)定的負(fù)載策略,將客戶端訪問請求分配到不同數(shù)據(jù)中心,從而實(shí)現(xiàn)數(shù)據(jù)中心站點(diǎn)間的負(fù)載均衡調(diào)度。具體來說,在用戶發(fā)出任何應(yīng)用連接請求時,首先必須通過DNS請求獲得服務(wù)器的IP地址,基于DNS的GSLB在返回DNS解析結(jié)果的過程中進(jìn)行智能決策,給用戶返回一個最佳的服務(wù)IP。
采用智能DNS的GSLB方案,網(wǎng)絡(luò)拓?fù)?、網(wǎng)絡(luò)路由、IP地址基本不需要改造。要求應(yīng)用環(huán)境基于域名發(fā)布業(yè)務(wù),同一應(yīng)用可使用不同IP地址。其全局實(shí)現(xiàn)模型如圖1所示。
模型中,全局GSLB設(shè)備一般部署在用戶訪問的入口位置(廣域網(wǎng)入口),有服務(wù)器負(fù)載均衡(SLB)需求的,在相應(yīng)的匯聚層部署SLB設(shè)備即可。每個DC的VIP A和VIP B對外提供服務(wù)。SLB檢查服務(wù)器健康狀況后和GSLB配合實(shí)現(xiàn)DNS切換。GSLB1和GSLB2完成各數(shù)據(jù)中心的狀態(tài)監(jiān)控、路徑優(yōu)化和負(fù)載均衡。各中心GSLB設(shè)備須互聯(lián)互通,相互同步配置信息,發(fā)布本中心的健康狀態(tài)。
具體業(yè)務(wù)流程為:(1)用戶向Local DNS發(fā)起域名請求。Local DNS采用輪詢方式將域名請求發(fā)給網(wǎng)絡(luò)中的GSLB設(shè)備進(jìn)行處理。(2)GSLB根據(jù)預(yù)先設(shè)定的策略(如基于IP就近性算法或者動態(tài)探測或一定比例的負(fù)載分配等等),對DNS請求信息進(jìn)行智能處理,然后將域名解析結(jié)果返回給Local DNS,Local DNS將域名解析結(jié)果返回給客戶端。(3)GSLB根據(jù)算法返回數(shù)據(jù)中心A中心的VIP A地址,通過本地應(yīng)用負(fù)載均衡的處理機(jī)制(SLB),保障應(yīng)用的高可用性和針對后臺服務(wù)器的負(fù)載分擔(dān)。(4)客戶訪問數(shù)據(jù)中心A。
通過GSLB的全局應(yīng)用智能調(diào)度,不僅能監(jiān)控各數(shù)據(jù)中心健康狀況、提高應(yīng)用可靠性,客戶端訪問請求也可以按兩中心站點(diǎn)業(yè)務(wù)能力不同進(jìn)行一定比例的負(fù)載分配,提高應(yīng)用性能。
圖1 基于智能DNS的GSLB數(shù)據(jù)中心多活網(wǎng)絡(luò)實(shí)現(xiàn)模型
為保障銀行業(yè)網(wǎng)絡(luò)的安全穩(wěn)定及業(yè)務(wù)的持續(xù)不間斷運(yùn)行,在現(xiàn)有數(shù)據(jù)中心模式中應(yīng)用實(shí)踐基于智能DNS的GSLB技術(shù)時,需要重點(diǎn)考慮以下六個方面問題。
無論是通過在專網(wǎng)中運(yùn)行內(nèi)部的DNS服務(wù)器,還是在Internet上公網(wǎng)應(yīng)用,應(yīng)用系統(tǒng)必須以域名形式發(fā)布,這個技術(shù)改動對新、舊業(yè)務(wù)難度不大,但在銀行業(yè)應(yīng)用系統(tǒng)中必須充分測試。只有實(shí)現(xiàn)應(yīng)用IP與數(shù)據(jù)中心網(wǎng)絡(luò)位置的解耦合,才能達(dá)到同時靈活訪問各個數(shù)據(jù)中心的目的。
DNS緩存更新不及時可能影響故障時切換訪問,導(dǎo)致雙活訪問不成功。當(dāng)某個數(shù)據(jù)中心出現(xiàn)故障時,GSLB感知后會立即更新DNS解析記錄,然而DNS緩存的存在導(dǎo)致PC客戶端仍舊解析為錯誤的IP地址,直至緩存過期后更新為正確解析記錄,此期間業(yè)務(wù)訪問可能中斷。
DNS緩存時間涉及本機(jī)DNS緩存、本地域名服務(wù)器緩存、注冊商DNS服務(wù)器緩存。本機(jī)DNS緩存主要包括瀏覽器或操作系統(tǒng)(如windows系列)DNS緩存,更新時間從1分鐘至30分鐘不等,此時一旦發(fā)現(xiàn)訪問故障,可以關(guān)閉瀏覽器或輸入強(qiáng)制刷新DNS命令或重啟PC實(shí)現(xiàn)快速切換,部分自行開發(fā)APP應(yīng)用甚至可以自動清空本地DNS緩存實(shí)現(xiàn)快速刷新。本地域名服務(wù)器緩存、注冊商DNS服務(wù)器緩存可以通過TTL(Time-to-live)值實(shí)現(xiàn)快速刷新,即GSLB在第一時間發(fā)現(xiàn)故障后,立即更新DNS記錄為正確的IP,并通過設(shè)置TTL值通告給注冊商DNS和本地域名服務(wù)器。一般互聯(lián)網(wǎng)門戶網(wǎng)站設(shè)置更新值為30秒,對于在內(nèi)網(wǎng)中自行架設(shè)的DNS服務(wù)器,可以自主設(shè)置緩存時間為合理數(shù)值(如2分鐘),實(shí)現(xiàn)故障時快速感知。疏漏DNS緩存更新容易導(dǎo)致故障第一時間切換不成功,影響整體網(wǎng)絡(luò)的平穩(wěn)不間斷運(yùn)行,金融行業(yè)務(wù)必高度重視。
每個域名最多可以有六條記錄,一般用2條就足夠?qū)崿F(xiàn)“雙活”。對于GSLB,在返回DNS解析結(jié)果時可以包含多個A記錄,應(yīng)用一般會使用第一條A記錄。當(dāng)發(fā)生故障時,PC機(jī)可以自動切換至其他IP解析記錄,實(shí)現(xiàn)更快速的故障切換。
一般而言,對于同一個客戶端,尤其是與用戶狀態(tài)有關(guān)的操作,比如金融交易,應(yīng)全部通過GSLB定向到同一臺服務(wù)器進(jìn)行處理,以保持會話(session)一致性,否則“多活”應(yīng)用會出問題。此時,一般采用客戶端源IP會話保持(客戶端源IP可以區(qū)分,同一個源IP被認(rèn)為是同一個用戶)或Cookie會話保持(利用應(yīng)用層HTTP投中的Cookie進(jìn)行會話保持)。
金融行業(yè)對網(wǎng)絡(luò)設(shè)備性能的選擇有更高的要求,基本原則是滿足現(xiàn)狀和未來需求,適當(dāng)留有余地。如果GSLB處理的是4層或7層報文,建議按照7層性能來考慮設(shè)備選型參數(shù),并為未來預(yù)留2-3倍性能空間。
2017年,《網(wǎng)絡(luò)安全法》的頒布對關(guān)鍵金融基礎(chǔ)設(shè)施提出了明確的國產(chǎn)化及自主可控的要求,其中第22條明確規(guī)定:“網(wǎng)絡(luò)產(chǎn)品、服務(wù)應(yīng)當(dāng)符合相關(guān)國家標(biāo)準(zhǔn)的強(qiáng)制性要求”。GSLB是目前銀行業(yè)使用較多的核心關(guān)鍵設(shè)備,硬件設(shè)備實(shí)現(xiàn)方式的基本以國外F5、Radware、A10等為主,除價格高昂外,還存在核心技術(shù)受制于人等安全隱患問題。比如,2012年,F(xiàn)5曾出現(xiàn)過“root用戶權(quán)限驗(yàn)證繞過”高危漏洞。目前,國產(chǎn)廠商通過自身技術(shù)積累和產(chǎn)品實(shí)踐,已出現(xiàn)較多品牌產(chǎn)品,在實(shí)踐中取得較好效果,可以逐步考慮。
新技術(shù)的廣泛應(yīng)用和成熟,不斷沖擊著傳統(tǒng)金融技術(shù)架構(gòu),“雙活”和“多活”數(shù)據(jù)中心逐漸成為IT架構(gòu)的主流。雖然“雙活”和“多活”數(shù)據(jù)中心的可靠性、性能優(yōu)勢明顯,但在銀行業(yè)數(shù)據(jù)中心從現(xiàn)有模式向新型模式轉(zhuǎn)換,其具體落地實(shí)現(xiàn)還需要經(jīng)過長期摸索和復(fù)雜建設(shè)。本文提出的基于智能DNS的全局負(fù)載均衡技術(shù),能通過流量調(diào)度很好的實(shí)現(xiàn)應(yīng)用分布式多活架構(gòu),是一個值得嘗試和探索的重要方向。■
參考文獻(xiàn):
[1] 林秀.業(yè)務(wù)雙活數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計要點(diǎn)探討[J].電信技術(shù),2016(3):60-63.
[2] 藍(lán)發(fā)寬.基層央行數(shù)據(jù)中心“雙活”探討[J].金融科技時代,2016(10):39-42.
[3] 范媛媛.銀行多活數(shù)據(jù)中心網(wǎng)絡(luò)關(guān)鍵技術(shù)研究[J].中國金融電腦,2017(03):61-64.
[4] 肖平.談基于DNS發(fā)布業(yè)務(wù)的雙活數(shù)據(jù)中心業(yè)務(wù)[J].數(shù)字通信世界,2016(08):43.
[5] 楊肖敏, 龔新平. 私有云數(shù)據(jù)中心多站點(diǎn)選擇技術(shù)研究[C].中國計量協(xié)會冶金分會2015年會論文集,2015.