[TOC]
《CDN技術(shù)詳解》讀書筆記
全局負(fù)載均衡工作原理及實(shí)現(xiàn)
1. 全局負(fù)載均衡在 CDN 系統(tǒng)中的作用
- CDN 系統(tǒng)總是希望使用距離用戶最近的設(shè)備為用戶提供服務(wù)抄腔,這樣就需要在全網(wǎng)不同位置部署多個(gè)節(jié)點(diǎn)。CDN 全局負(fù)載均衡系統(tǒng)GSLB就是為了解決節(jié)點(diǎn)之間相互協(xié)同的問題徽鼎,實(shí)現(xiàn)整個(gè)系統(tǒng)的大規(guī)模服務(wù)能力和高可用性剩彬。
- GSLB 主要是在多個(gè)節(jié)點(diǎn)之間進(jìn)行均衡酷麦,其結(jié)果可能直接終結(jié)負(fù)載均衡的過程,也可能將用戶訪問交付給下一層次的負(fù)載均衡系統(tǒng)
- 在區(qū)域或者本地的負(fù)載均衡系統(tǒng)中喉恋,每個(gè)服務(wù)節(jié)點(diǎn)只掌握本節(jié)點(diǎn)內(nèi)服務(wù)設(shè)備的信息沃饶,而在 GSLB 系統(tǒng)中母廷,需要掌握所有節(jié)點(diǎn)中的信息
2. 基于DNS解析的GSLB實(shí)現(xiàn)機(jī)制
首先明白什么是DNS解析:
DNS 記錄類型及報(bào)文格式:
- A 記錄, Address糊肤。描述了域名到IP地址的映射關(guān)系琴昆,對于同一個(gè)域名,可以存在多條映射記錄
- NS 記錄 Name Server馆揉。域名服務(wù)器記錄业舍,用于指定域名由哪個(gè)DNS服務(wù)器來進(jìn)行解析的。
- SOA 記錄 Start Of Authority升酣。記錄指定該區(qū)域的權(quán)威域名服務(wù)器舷暮。
- CNAME。記錄別名于域名的對應(yīng)關(guān)系拗踢,這種記錄允許將多個(gè)名字映射到同一臺計(jì)算機(jī)上
- PTR 記錄脚牍, Point Record。記錄用于描述 IP 地址到域名的映射關(guān)系巢墅。
基于 DNS 解析實(shí)現(xiàn) GSLB的幾種方法:
基于 DNS 解析的 GSLB 方案實(shí)際上是把負(fù)載均衡設(shè)備部署在 DNS 系統(tǒng)中诸狭。在用戶發(fā)出請求時(shí),先通過 DNS 系統(tǒng)來請求獲得服務(wù)器的 IP 地址君纫,基于 DNS 的 GSLB 正是在返回 DNS 結(jié)果的過程中進(jìn)行智能決策驯遇,給用戶返回合適的IP 地址
1. 通過CNAME方式實(shí)現(xiàn)負(fù)載均衡
- CNAME 描述了一個(gè)域名或主機(jī)名的別名,域名服務(wù)器獲取到 CNAME 記錄后蓄髓,會用記錄中的別名來替換查找的域名或者主機(jī)名叉庐。
- 實(shí)現(xiàn)上利用了 DNS 本身的別名機(jī)制和輪訓(xùn)機(jī)制。
- 先將 GSLB 主機(jī)名定義為所查詢域名的權(quán)威 DNS服務(wù)器的別名会喝,然后在 GSLB 主機(jī)名添加多條 A 記錄陡叠,分別對應(yīng)多個(gè)服務(wù)器的 IP 地址。這樣肢执,本地 DNS 服務(wù)器會向客戶端返回多個(gè)IP地址作為查詢結(jié)果枉阵,并且這些IP地址的排列順序是輪換的
2. 負(fù)載均衡器作為權(quán)威 DNS 服務(wù)器
- 負(fù)載均衡器作為權(quán)威 DNS 服務(wù)器,這樣 GSLB 會接收到所有對這個(gè)域的 DNS 請求预茄,從而能夠根據(jù)預(yù)設(shè)的一些策略來進(jìn)行智能 DNS 解析兴溜。
- 所有的請求通過 GSLB ,對于DNS 解析能力會造成或多或少的影響耻陕。
3. 負(fù)載均衡器作為代理 DNS服務(wù)器
- 這種情況下拙徽,負(fù)載均衡器也是注冊為一個(gè)域名空間的權(quán)威 DNS 服務(wù)器而真正的權(quán)威域名服務(wù)器則部署在負(fù)載均衡器后面。所有的請求會先到達(dá)負(fù)載均衡器诗宣,由負(fù)載均衡器轉(zhuǎn)發(fā)給真正的權(quán)威 DNS 服務(wù)器膘怕,然后修改權(quán)威DNS服務(wù)器返回的響應(yīng)信息,從而達(dá)到負(fù)載均衡梧田。
負(fù)載均衡的策略判斷條件
- 服務(wù)器的“健康狀況”淳蔼。健康檢查侧蘸,未通過的不能作為域名解析結(jié)果
- 地理區(qū)域距離裁眯。由于 DNS 系統(tǒng)本身的工作原理所限鹉梨,GSLB 只能看到用戶本地 DNS 服務(wù)器的 IP 地址,看不到用戶終端的IP位置
- 會話保持穿稳。需要保證同一用戶訪問被調(diào)度到同一臺服務(wù)器上存皂。
- 響應(yīng)時(shí)間。通過測量服務(wù)器對于響應(yīng)的時(shí)間逢艘,優(yōu)化 GSLB 的策略
- IP 地址權(quán)重旦袋。權(quán)重值決定了某個(gè) IP 與其他候選 IP 相比分配到的流量比例。
- 會話能力閥值它改。 GSLB 控制器可以獲取每個(gè)服務(wù)器當(dāng)前可用的會話數(shù)和會話表大小的最大值疤孕,達(dá)到閥值的服務(wù)器,將不會被選擇
- 往返時(shí)間 RTT Rount-Trip Time央拖。
- 其他信息祭阀,包括服務(wù)器當(dāng)前可用會話數(shù)、最小選擇次數(shù)鲜戒、輪訓(xùn)等
3. 基于DNS的GSLB 應(yīng)用部署方式
- 域組 Domain Group:根據(jù)別名設(shè)置专控,用戶根據(jù)別名選擇提供服務(wù)的服務(wù)池與具體的虛擬服務(wù)器。
- 服務(wù)池 Pool:提供同種業(yè)務(wù)的多個(gè)虛擬服務(wù)器的邏輯組概念遏餐。
- 虛擬服務(wù)器 Virtual Server:用戶訪問網(wǎng)站時(shí)伦腐,直接提供服務(wù)的虛擬設(shè)備,其 IP 地址就是 GSLB 最終解析返回的地址失都。
- 區(qū)域 Region:用戶的本地 DNS 所代表的地址范圍柏蘑,用戶可以通過在瀏覽器中設(shè)置本地 DNS 地址來定義所在區(qū)域。
- 策略:GSLB 的路由控制策略粹庞。
負(fù)載均衡策略:
均衡策略:
- 靜態(tài)策略
- 基于特定的用戶源 IP 地址咳焚。特定的 IP 地址端定向到特定的 POP 節(jié)點(diǎn)。
- 基于加權(quán)的 IP 地址信粮。
- 基于加權(quán)的 POP節(jié)點(diǎn)黔攒。POP 節(jié)點(diǎn)對應(yīng)的級別是虛擬服務(wù)器。
- 基于地理位置强缘。
- 基于POP 節(jié)點(diǎn)管理優(yōu)先級督惰。
- 基于簡單輪訓(xùn)。
- 動態(tài)策略
- 基于 POP 節(jié)點(diǎn)的健康狀況旅掂。
- 基于相對會話能力赏胚。GSLB會周期性的計(jì)算當(dāng)前會話數(shù)和最大會話數(shù)的比值,然后與最大閥值進(jìn)行比較商虐。超過閥值觉阅,該節(jié)點(diǎn)不是選擇的最佳節(jié)點(diǎn)崖疤。
- 基于絕對會話能力。不計(jì)算相對會話的比值典勇,而是直接使用當(dāng)前會話數(shù)與最大閥值做比較劫哼。
- 基于物理服務(wù)器綁定。
- 基于主動測量的用戶訪問往返時(shí)間 RTT割笙。
- 基于被動測量的用戶訪問往返時(shí)間权烧。
- 基于新建連接數(shù)
- 基于流量。根據(jù)POP節(jié)點(diǎn)或者虛擬服務(wù)器每秒完成多少比特?cái)?shù)據(jù)的吞吐伤溉。
- 基于POP節(jié)點(diǎn)訪問次數(shù)
4. 基于應(yīng)用層協(xié)議重定向的 GSLB
工作流程:
- 用戶首先向網(wǎng)站的本地 DNS 請求域名解析般码。
- 由于網(wǎng)站事先進(jìn)行了域名 CNAME 指向 CDN 的GSLB 域名和 IP 所以本地DNS會向用戶返回 GSLB 設(shè)備的 IP 地址。
- 用戶向中動態(tài) GSLB 設(shè)備發(fā)送 HTTP GET 請求乱顾,請求該網(wǎng)站的某個(gè)資源板祝。
- GSLB設(shè)備根據(jù)綜合分析用戶IP、內(nèi)容分布走净、設(shè)備負(fù)載券时、鏈路狀況等實(shí)時(shí)信息,為用戶選擇一個(gè)合適的服務(wù)單元温技。
- 用戶根據(jù)得到的IP 地址向 CDN 節(jié)點(diǎn)發(fā)送媒體訪問請求革为。
- 如果這個(gè)IP地址仍然·是一個(gè)負(fù)載均衡設(shè)備,該設(shè)備會選擇一個(gè)具體的設(shè)備舵鳞,返回給用戶震檩。
- 用戶根據(jù)得到的 IP 地址,再次發(fā)送請求蜓堕。
5. 基于 IP 路由的 GSLB
- 先為兩個(gè)本地負(fù)載均衡器配置一個(gè)相同的 VIP 地址抛虏,對 IP 網(wǎng)上的路由器來說,這是到達(dá)同一IP地址的兩條不同的路由套才。
- 終端發(fā)送請求時(shí)迂猴,當(dāng)經(jīng)過路由器,會根據(jù)路由表來選擇走哪條路徑背伴,轉(zhuǎn)發(fā)數(shù)據(jù)包到本地負(fù)載均衡器上沸毁。