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