蔡暉 楊靖 胡波
【摘要】高性能智能網(wǎng)關(guān)HPGW (High performance Gate Way)是一種用軟件實(shí)現(xiàn)的負(fù)載均衡設(shè)備, HPGW將多臺物理RealServer虛擬化成了一臺虛擬VServer,提供統(tǒng)一的VIP(即virtual ip),用戶只需和VIP進(jìn)行通訊,就能訪問RealServer上的服務(wù)。HPGW能通過多種靈活的調(diào)度算法、健康檢查機(jī)制實(shí)現(xiàn)跨網(wǎng)段的高性能網(wǎng)絡(luò)訪問;通過服務(wù)?;?、自身冗余等機(jī)制實(shí)現(xiàn)服務(wù)冗余;通過基于網(wǎng)絡(luò)物理層協(xié)議改造實(shí)現(xiàn)大并發(fā)鏈接,保障網(wǎng)絡(luò)攻擊安全防范;確保對外提供統(tǒng)一的高性能訪問門戶。
【關(guān)鍵詞】高性能智能網(wǎng)關(guān);HPGW (High performance Gate Way)
一、引言
我局信息中心是智能水文信息處理中心,承擔(dān)著水文、氣象數(shù)據(jù)存儲、處理、分析、轉(zhuǎn)發(fā)的任務(wù),信息中心共接入各自數(shù)據(jù)采集終端172個,并向省局、水務(wù)局實(shí)時接收轉(zhuǎn)發(fā)水文數(shù)據(jù),數(shù)據(jù)量尤其是網(wǎng)絡(luò)接受和轉(zhuǎn)發(fā)的量較大。目前,我局虛擬化平臺已全面建設(shè)完成,但由于網(wǎng)絡(luò)不穩(wěn)定,數(shù)據(jù)丟包情況時有發(fā)生,所以如何打造一個高性能數(shù)據(jù)接入網(wǎng)關(guān),對局信息工作顯得至關(guān)重要。
二、什么是高性能數(shù)據(jù)智能接入網(wǎng)關(guān)
高性能智能網(wǎng)關(guān)是一種用軟件實(shí)現(xiàn)的負(fù)載均衡設(shè)備,我們稱之為HPGW (High performance Gate Way)。HPGW將多臺物理PServer(即RealServer)虛擬化成了一臺虛擬VServer,提供統(tǒng)一的VIP(即virtual ip),用戶只需和VIP進(jìn)行通訊,就能訪問RealServer上的服務(wù)。
最終,從client的角度看到,自己和一臺server機(jī)器(確切說是一個ip)在通訊,感覺不到RealServer的存在;從RealServer的角度看到,自己和client在通訊,沒有感覺到HPGW的存在。
HPGW會對報(bào)文做SNAT和DNAT,這樣RS(RealServer)看到的源IP將是HPGW的后端IP,而不是客戶端的真實(shí)IP,而現(xiàn)實(shí)中有許多業(yè)務(wù)需要知道客戶端的真實(shí)IP。為了解決這個問題,RS需要在內(nèi)核加載一個TTM模塊,即可將該選項(xiàng)攜帶的真實(shí)IP信息獲取出來,該過程對于用戶態(tài)應(yīng)用程序來說是完全透明的,用戶態(tài)應(yīng)用程序所看到的是從客戶端真實(shí)IP,實(shí)現(xiàn)HPGW的透明。
目前網(wǎng)絡(luò)3.0大量使用具有跨網(wǎng)段功能的bvs,bignat集群,這大大簡化了IDC網(wǎng)絡(luò)的設(shè)計(jì)和使用,擺脫了之前硬件四層的很多限制。
三、硬件條件分析
應(yīng)該說,在通用計(jì)算方面,英特爾公司的x86芯片在業(yè)內(nèi)傲視群雄。但受時鐘速度和功耗所限,它卻很難在網(wǎng)絡(luò)應(yīng)用上卻難以一展拳腳,而Tilera平臺的PCI Express加速卡專注網(wǎng)絡(luò)浮點(diǎn)計(jì)算,有望就此解放x86服務(wù)器上的CPU資源。
目前的bvs和bignat都是使用X86服務(wù)器實(shí)現(xiàn)的,但是目前X86的架構(gòu),天生在網(wǎng)絡(luò)報(bào)文處理方面就有一些缺陷。單臺服務(wù)器的性能不足,導(dǎo)致了集群方案的使用。集群方案有一些問題,首先是網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,維護(hù)起來成本特別高,特別是隨著今后業(yè)務(wù)的增加,單個集群服務(wù)器數(shù)量多,集群數(shù)量也多,維護(hù)比較麻煩。再次是單臺服務(wù)器的性能不夠,導(dǎo)致會有雪崩效應(yīng)的風(fēng)險。
因此我們可以在Tilera平臺上開發(fā)智能網(wǎng)關(guān) HPGW,通過提升單臺處理能力,減少單個集群的節(jié)點(diǎn)個數(shù)。從而減少維護(hù)成本,簡化網(wǎng)絡(luò)結(jié)構(gòu)。
四、HPGW設(shè)計(jì)
4.1 HPGW原理
HPGW原理如下圖所示。當(dāng)客戶端向業(yè)務(wù)的VIP發(fā)來一個報(bào)文,HPGW會根據(jù)該VIP下配置的RS進(jìn)行調(diào)度,選擇一個RS處理該連接。選擇好后將報(bào)文的源IP地址改為HPGW的一個后端內(nèi)網(wǎng)IP(BIP),同時將報(bào)文目的IP修改為RS的內(nèi)網(wǎng)IP(RIP),然后建立session,最后將數(shù)據(jù)包從下聯(lián)口發(fā)往內(nèi)網(wǎng)。
當(dāng)RS向客戶端發(fā)送數(shù)據(jù)包時,該數(shù)據(jù)包的目的IP是HPGW的后端IP(BIP),源IP是RS的內(nèi)網(wǎng)IP(RIP)。當(dāng)數(shù)據(jù)包到達(dá)HPGW時,HPGW會根據(jù)前面建立的session將數(shù)據(jù)包的目的IP改回客戶端的外網(wǎng)IP,同時將源IP改為服務(wù)的VIP。
在客戶端看來,自己一直在與IP為VIP的一臺服務(wù)器通信。而在RS看來,自己一直在與IP為BIP的客戶端通信。該過程對于RS和Client都是透明的。
4.2 TTM模塊
HPGW會對報(bào)文做SNAT和DNAT,這樣RS看到的源IP將是HPGW的后端IP,而不是客戶端的真實(shí)IP,而現(xiàn)實(shí)中有許多業(yè)務(wù)需要知道客戶端的真實(shí)IP。為了解決這個問題,HPGW會將客戶端的真實(shí)IP信息作為一個TCP選項(xiàng)或者IP選項(xiàng)插入在報(bào)文中發(fā)給RS。RS端只要在內(nèi)核加載一個TTM模塊,即可將該選項(xiàng)攜帶的真實(shí)IP信息獲取出來,該過程對于用戶態(tài)應(yīng)用程序來說是完全透明的,用戶態(tài)應(yīng)用程序所看到的是從客戶端真實(shí)IP發(fā)給自己內(nèi)網(wǎng)IP的一個報(bào)文,即源地址是Internet的客戶端地址(如202.114.0.242),目的IP是RS的內(nèi)網(wǎng)IP(如10.23.170.20)。TTM讀取出該信息時會在內(nèi)核建立一個轉(zhuǎn)換表,當(dāng)用戶態(tài)應(yīng)用程序發(fā)送報(bào)文時,目的地址會是外網(wǎng)P(202.114.0.242),TTM模塊會根據(jù)建立的轉(zhuǎn)換表項(xiàng)將該IP轉(zhuǎn)換為HPGW的后端IP(BIP)。
4.3 調(diào)度策略
目前,HPGW支持以下幾種調(diào)度策略: Round Robbin、SRCH源地址哈希、CONHASH一致性哈希、MINCONN最小連接調(diào)度、WRR加權(quán)輪詢。
4.4、RS?;畈呗?/p>
HPGW并不僅僅是一個簡單的負(fù)載均衡器,它還有服務(wù)器?;罟δ堋.?dāng)把RS配置到HPGW上之后,HPGW會定期向RS發(fā)送一定格式的報(bào)文檢測RS的存活狀態(tài)。如果RS沒有響應(yīng),則不再將新的連接調(diào)度到該RS之上,當(dāng)RS存活比例低于一定的數(shù)量時,便會發(fā)出報(bào)警。目前HPGW支持以下幾種RS?;畈呗裕篢CP、HTTP、ICMP、UDP
五、HPGW應(yīng)用和部署
HPGW可以通過開放多物理服務(wù)器虛擬為統(tǒng)一對外出口的核心基礎(chǔ)架構(gòu)技術(shù),為各業(yè)務(wù)系統(tǒng)提供的具有安全,穩(wěn)定,高性能,高可擴(kuò)展性等特點(diǎn)的高性能服務(wù)產(chǎn)品,用戶通過統(tǒng)一IP網(wǎng)關(guān)即可訪問所有的應(yīng)用及數(shù)據(jù)服務(wù)。實(shí)現(xiàn)的應(yīng)用包含中轉(zhuǎn)連接、負(fù)載均衡、防御攻擊、探活機(jī)制。
六、HPGW在水文信息采集上的應(yīng)用
我局目前有各類采集終端170余個,采用多臺工控設(shè)備建立網(wǎng)絡(luò)端口監(jiān)聽,分別接收來自不同廠商設(shè)備(金水、中水環(huán)球、山脈、宜昌彩虹、中電27所、722所、新烽)的數(shù)據(jù)鏈接,每個廠商都總體上遵循水文數(shù)據(jù)規(guī)約,但都有自己個性化的設(shè)置,不僅配置復(fù)雜而且無法統(tǒng)一管理;出現(xiàn)故障的頻率較高,尤其是在汛期加報(bào)頻繁的情況下,掉包率激增。
如果采用HPGW則能將所有前置監(jiān)聽服務(wù)、消息隊(duì)列服務(wù)、數(shù)據(jù)回寫服務(wù)統(tǒng)一管理 ,自動對各物理服務(wù)器的計(jì)算資源統(tǒng)一調(diào)度,實(shí)現(xiàn)負(fù)載均衡,并能通過Tilera Pro64 PCI Express加速卡,開辟大并發(fā)鏈接,保障接入性能,確保數(shù)據(jù)到報(bào)率、準(zhǔn)確率數(shù)量級的提升。