引言在過去的幾年中,隨著網際網路的快速發展和企業應用web化,伺服器負載均衡(slb)技術已經不再陌生。
伺服器負載均衡根據使用者資料請求中的4-7層資訊將其智慧型**到後端少則數台多則成百上千臺應用伺服器,
並且確保根據事先定義的策略選擇最佳的伺服器進行**,從而一定程度上解決了應用的可用性、擴充套件性等問題。
但是,隨著使用者對應用可用性和擴充套件性需求的進一步增加,越來越多的使用者不滿足於在單一資料中心提供服務,開始考慮容災、使用者就近訪問等問題。
這正是負載均衡裝置中的全域性伺服器負載均衡技術(gslb)所要解決的問題。儘管gslb技術早在數年前就是大部分負載均衡裝置提供的必備功能,
但由於使用者需求較小、功能不夠完善、效能不足、**高昂等因素,目前部署gslb的使用者在負載均衡整個使用者群中所佔比例還是很小。相信在未來幾年中,gslb的應用比例將快速增加。
本文針對gslb相關技術及解決方案進行介紹。
gslb技術
市場上存在的gslb技術可以歸納為以下幾類:
基於dns的gslb
絕大部分使用負載均衡技術的應用都通過網域名稱來訪問目的主機,在使用者發出任何應用連線請求時,首先必須通過dns請求獲得伺服器的ip位址,基於dns的gslb正是在返回dns解析結果的過程中進行智慧型決策,
給使用者返回乙個最佳的服務ip。使用者應用流程與沒有gslb時未發生任何變化。這也是市場上主流的gslb技術。
基於應用重定向的gslb
基於應用重定向的gslb是在負載均衡裝置收到使用者應用請求並選擇最佳服務ip後,通過應用層協議將使用者請求重定向到所選擇的最佳服務ip。這種方式只適用於支援應用重定向的協議(如http、mms),且效能較差。
基於ip位址偽裝(三角傳輸)的gslb
有個別負載均衡裝置廠商採用這種技術來實現gslb。當使用者應用請求到達一台負載均衡裝置時,這台負載均衡裝置計算出對於該使用者最佳的服務ip(定義在另一台同一廠商負載均衡裝置上)並將使用者請求**給該ip。
第二台負載均衡裝置直接將響應返回使用者,但必須將源位址修改為第一台負載均衡裝置的服務ip。這種方式要求所有站點必須為同一廠家的負載均衡裝置,另外位址偽裝的資料報會可能被網際網路中的路由裝置過濾掉。
因為所有使用者請求都要經過廣域網三角方式傳輸而不是發到最佳的負載均衡裝置,使用者訪問效果和效能都比較差。
基於主機路由注入的gslb(anycast)
在多個站點定義相同的服務ip,並由負載均衡裝置或路由器將該ip的主機路由傳送出去,這樣網路中會存在多條到達該主機位址的路由。由於路由裝置總是選擇最近(metric最小)的路由**資料,
使用者的訪問請求總是被**到最近的負載均衡裝置。這種方式要在不同站點廣播相同的主機路由,由於運營商的限制問題很難實現。另外這種方式策略非常簡單,只能根據最短路由選擇,客戶無法定義靈活的選擇策略。
根據上面的分析,後面的三種方式都有很多侷限性或效能較差,這也是為什麼基於dns的gslb成為主流技術的原因。在基於dns的gslb具體實現中,不同廠家的功能會有所不同,也有部分使用者自己開發智慧型dns實現類似功能。
總體來說,乙個完善的基於dns的gslb裝置可以滿足以下需求:
支援任何ip應用。
各服務站點可以使用不同廠家的本地伺服器負載均衡裝置或直接使用真實伺服器。
gslb控制裝置可直接作為授權dns,也可以配置為dns**方式。dns**方式在做gslb決策控制同時可以對後端dns伺服器進行負載均衡。當業務量增加時可以通過增加後端的真實dns伺服器數量進行擴充套件。
內建國際iana機構提供的全球各區域位址分配表,且使用者自定義區域可以包含足夠多的ip字首。同時區域定義支援樹狀分層結構,如china.beijing.haidian。這些功能在gslb控制裝置進行靜態基於區域選擇服務站點時是必須的。
支援返回a記錄和cname等記錄。尤其在多級gslb控制時,返回cname是必須具備的。
支援豐富的gslb策略,常見的如往返時間(rtt)、權重、活動伺服器等。
具有靈活的自定義指令碼用於過濾各種非法dns請求或攻擊。
強大的ddos攻擊防護功能。一旦gslb控制裝置被攻擊癱瘓,所有業務都無法提供。
基於dns的gslb工作原理
下面我們對基於dns的gslb的工作原理進行簡單介紹。
上圖中,中心控制節點配置一台gslb controller及數台指定網域名稱(abc.com)的授權dns伺服器,gslb controller除了進行gslb控制外還可以對dns伺服器及其他應用伺服器進行負載均衡。
設定2個站點(以中國電信和中國網通為例)提**用服務。其工作流程如下:
1) 使用者發起請求訪問關於www.abc.com 的dns請求被送往 local dns伺服器;
2) local dns通過根dns伺服器查詢到abc.com 的授權dns伺服器,local dns向授權dns伺服器發dns請求。
3) gslb controller 截獲dns伺服器返回的應答,並基於一組策略選擇最佳的站點vip 位址,返回給local dns伺服器。
gslb controller也可以根據事先定義的策略返回cname記錄,在大規模的多級gslb設計中會用到這種方式。local dns會遞迴傳送dns請求到負責指定cname域的下一級gslb controller。
4) local dns伺服器返回該dns應答到使用者。
5) 使用者根據解析到的ip位址建立連線進行正常訪問。
從gslb處理流程可以看出,其核心在gslb策略。接下來簡單介紹一下常用的一些gslb策略。
1) 各內容站點的「健康狀況」
gslb controller對各內容站點負載均衡裝置上定義的vip或伺服器(沒有本地負載均衡的情況)進行第四層tcp/udp健康檢查和第七層應用健康檢查。未能通過健康檢查的站點不會被選為最佳的內容節點。
2) 地理區域或使用者自定義區域
乙個區域為若干條ip位址字首。根據使用者本地dns的ip位址,將特定ip範圍的使用者優先分配到某個通過健康檢查的站點。值得一提的是,由於dns本身的工作原理所限,gslb controller只能看到使用者本地dns的ip位址,
而不是使用者終端的ip位址。當使用者使用錯誤的本地dns(如教育網使用者配置網通的dns伺服器)時,gslb controller返回的dns應答將不是最佳的站點。這是基於dns的gslb的乙個弱點,
但由於絕大部分運營商現在限制其他運營商的客戶使用自己的dns,出現這種錯誤配置的比例非常小。
3) ip位址權重
可以為dns應答中的每個ip位址分配權重,權重決定與其他候選ip相比分配到該ip的流量比例。
4) 站點(site)權重
可以為每個site分配權重,權重決定與其他候選site相比分配到該site的流量比例。
5) 會話能力閾值
通過廠商自由的gslb協議,gslb controller可以獲得每個站點負載均衡裝置當前可用會話數和會話表大小的最大值,當前會話數/最大會話數比值超過定義的閾值時,該站點不再被選擇。
6) 活動伺服器
指乙個gslb節點繫結到乙個vip上的活動真實伺服器數量。可以配置策略優先選擇活動伺服器最多的ip位址。
7) 往返時間(rtt)
rtt策略是基於區域之外最常用的策略。有兩種模式的rtt測量:active rtt測量與passive rtt測量。在實際部署中,由於網路限制和效能原因,active rtt往往無法使用,passive rtt更實用一些。
a) active rtt 測量
- 當gslb controller收到來自ldns的dns請求時,gslb controller會通知所有站點負載均衡裝置對該ldns進行rtt測量。根據採集到的rtt值,gslb controller會選擇rtt值最小的站點的vip返回給ldns。
- 由於active rtt採用dns query或icmp進行rtt測量,在有些網路中可能會被安全策略所過濾而無法工作。
- active rtt測量會產生額外的dns query或icmp流量,在有些網路中使用者不希望有太多類似的非使用者流量。
b) passive rtt測量
- passive rtt測量不會主動去進行測量,也不會產生額外的資料流量,而是在使用者向返回的vip建立連線時進行採集。
- passive rtt測量指從內容站點收到乙個使用者發出連線請求(傳送tcn syn)到接收到使用者的確認(收到tcp ack)所經歷的時間。而不是簡單的ping的響應時間,可以更精確的衡量訪問最快的站點。
- passive rtt的測量值真正反映了使用者的上網感受 ,在運營商網路中也不會產生額外流量。也不會受到其他運營商或網路的安全策略的影響。
與基於區域的策略相同,使用者配置錯誤的dns時,基於rtt的選擇也將不是最佳的。
8) 當前可用會話數
9) 站點管理優先順序(admin preference)
為每個站點預設優先順序,選擇優先順序較高的站點。
10) 最少選擇
選擇從前被選擇的次數最少的節點。
11) 輪詢(round robin)
採用輪詢方式選擇站點。
總結儘管基於dns的gslb在特殊情況下(使用者配置錯誤dns)準確性會降低,但其豐富的策略、可擴充套件的效能、適用任何ip應用協議、不受網際網路訪問策略影響以及無改變的業務流程等優勢使其成為最主流的gslb技術,
諸多廠家也都在這一技術上不斷進行完善。
全域性負載均衡GSLB之「部署篇」
前言 隨著web應用的不斷發展,客戶對於業務的穩定性 可靠性等也提出更高的要求,已不再侷限於idc內部的伺服器虛擬化。很多人都清楚,國內各大運營商之間資料互訪的效果不盡如意,而作為使用者,特別是要求業務及時響應的企業使用者,一方面要考慮異地idc的資料容災,另一方面要實現就近性訪問,提高客戶訪問體驗...
CDN技術之 全域性負載均衡(GSLB)
負載均衡就是智慧型排程 全域性負載均衡 gslb 的負載均衡主要是在多個節點之間進行均衡,其結果可能直接終結負載均衡過程,也可能將使用者訪問交付下一層次的 區域或本地 負載均衡系統進行處理。gslb最通用的是基於dns解析方式,還有http重定向 ip路由等方法 dns就是ip位址和 互換 當需要訪...
GSLB負載均衡策略
負載均衡策略 1.靜態策略 3 基於加權的pop節點 基於物理上的節點 4 基於地理位置 選擇乙個在地理位置上與使用者距離最近的pop節點或者虛擬伺服器來提供服務 5 基於pop節點管理優先順序 比如0 255的優先順序,誰的優先順序高使用誰來服務 6 基於簡單的輪詢 針對每個解析請求對所有可提供服...