[TOC]
《CDN技術(shù)詳解》讀書筆記

圖片.png
全局負(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é)同的問(wèn)題,實(shí)現(xiàn)整個(gè)系統(tǒng)的大規(guī)模服務(wù)能力和高可用性。
- GSLB 主要是在多個(gè)節(jié)點(diǎn)之間進(jìn)行均衡,其結(jié)果可能直接終結(jié)負(fù)載均衡的過(guò)程,也可能將用戶訪問(wèn)交付給下一層次的負(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)系,對(duì)于同一個(gè)域名,可以存在多條映射記錄
- NS 記錄 Name Server。域名服務(wù)器記錄,用于指定域名由哪個(gè)DNS服務(wù)器來(lái)進(jìn)行解析的。
- SOA 記錄 Start Of Authority。記錄指定該區(qū)域的權(quán)威域名服務(wù)器。
- CNAME。記錄別名于域名的對(duì)應(yīng)關(guān)系,這種記錄允許將多個(gè)名字映射到同一臺(tái)計(jì)算機(jī)上
- PTR 記錄, Point Record。記錄用于描述 IP 地址到域名的映射關(guān)系。
基于 DNS 解析實(shí)現(xiàn) GSLB的幾種方法:
基于 DNS 解析的 GSLB 方案實(shí)際上是把負(fù)載均衡設(shè)備部署在 DNS 系統(tǒng)中。在用戶發(fā)出請(qǐng)求時(shí),先通過(guò) DNS 系統(tǒng)來(lái)請(qǐng)求獲得服務(wù)器的 IP 地址,基于 DNS 的 GSLB 正是在返回 DNS 結(jié)果的過(guò)程中進(jìn)行智能決策,給用戶返回合適的IP 地址
1. 通過(guò)CNAME方式實(shí)現(xiàn)負(fù)載均衡
- CNAME 描述了一個(gè)域名或主機(jī)名的別名,域名服務(wù)器獲取到 CNAME 記錄后,會(huì)用記錄中的別名來(lái)替換查找的域名或者主機(jī)名。
- 實(shí)現(xiàn)上利用了 DNS 本身的別名機(jī)制和輪訓(xùn)機(jī)制。
- 先將 GSLB 主機(jī)名定義為所查詢域名的權(quán)威 DNS服務(wù)器的別名,然后在 GSLB 主機(jī)名添加多條 A 記錄,分別對(duì)應(yīng)多個(gè)服務(wù)器的 IP 地址。這樣,本地 DNS 服務(wù)器會(huì)向客戶端返回多個(gè)IP地址作為查詢結(jié)果,并且這些IP地址的排列順序是輪換的
2. 負(fù)載均衡器作為權(quán)威 DNS 服務(wù)器
- 負(fù)載均衡器作為權(quán)威 DNS 服務(wù)器,這樣 GSLB 會(huì)接收到所有對(duì)這個(gè)域的 DNS 請(qǐng)求,從而能夠根據(jù)預(yù)設(shè)的一些策略來(lái)進(jìn)行智能 DNS 解析。
- 所有的請(qǐng)求通過(guò) GSLB ,對(duì)于DNS 解析能力會(huì)造成或多或少的影響。
3. 負(fù)載均衡器作為代理 DNS服務(wù)器
- 這種情況下,負(fù)載均衡器也是注冊(cè)為一個(gè)域名空間的權(quán)威 DNS 服務(wù)器而真正的權(quán)威域名服務(wù)器則部署在負(fù)載均衡器后面。所有的請(qǐng)求會(huì)先到達(dá)負(fù)載均衡器,由負(fù)載均衡器轉(zhuǎn)發(fā)給真正的權(quán)威 DNS 服務(wù)器,然后修改權(quán)威DNS服務(wù)器返回的響應(yīng)信息,從而達(dá)到負(fù)載均衡。
負(fù)載均衡的策略判斷條件
- 服務(wù)器的“健康狀況”。健康檢查,未通過(guò)的不能作為域名解析結(jié)果
- 地理區(qū)域距離。由于 DNS 系統(tǒng)本身的工作原理所限,GSLB 只能看到用戶本地 DNS 服務(wù)器的 IP 地址,看不到用戶終端的IP位置
- 會(huì)話保持。需要保證同一用戶訪問(wèn)被調(diào)度到同一臺(tái)服務(wù)器上。
- 響應(yīng)時(shí)間。通過(guò)測(cè)量服務(wù)器對(duì)于響應(yīng)的時(shí)間,優(yōu)化 GSLB 的策略
- IP 地址權(quán)重。權(quán)重值決定了某個(gè) IP 與其他候選 IP 相比分配到的流量比例。
- 會(huì)話能力閥值。 GSLB 控制器可以獲取每個(gè)服務(wù)器當(dāng)前可用的會(huì)話數(shù)和會(huì)話表大小的最大值,達(dá)到閥值的服務(wù)器,將不會(huì)被選擇
- 往返時(shí)間 RTT Rount-Trip Time。
- 其他信息,包括服務(wù)器當(dāng)前可用會(huì)話數(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èn)網(wǎng)站時(shí),直接提供服務(wù)的虛擬設(shè)備,其 IP 地址就是 GSLB 最終解析返回的地址。
- 區(qū)域 Region:用戶的本地 DNS 所代表的地址范圍,用戶可以通過(guò)在瀏覽器中設(shè)置本地 DNS 地址來(lái)定義所在區(qū)域。
- 策略:GSLB 的路由控制策略。


負(fù)載均衡策略:
均衡策略:
- 靜態(tài)策略
- 基于特定的用戶源 IP 地址。特定的 IP 地址端定向到特定的 POP 節(jié)點(diǎn)。
- 基于加權(quán)的 IP 地址。
- 基于加權(quán)的 POP節(jié)點(diǎn)。POP 節(jié)點(diǎn)對(duì)應(yīng)的級(jí)別是虛擬服務(wù)器。
- 基于地理位置。
- 基于POP 節(jié)點(diǎn)管理優(yōu)先級(jí)。
- 基于簡(jiǎn)單輪訓(xùn)。
- 動(dòng)態(tài)策略
- 基于 POP 節(jié)點(diǎn)的健康狀況。
- 基于相對(duì)會(huì)話能力。GSLB會(huì)周期性的計(jì)算當(dāng)前會(huì)話數(shù)和最大會(huì)話數(shù)的比值,然后與最大閥值進(jìn)行比較。超過(guò)閥值,該節(jié)點(diǎn)不是選擇的最佳節(jié)點(diǎn)。
- 基于絕對(duì)會(huì)話能力。不計(jì)算相對(duì)會(huì)話的比值,而是直接使用當(dāng)前會(huì)話數(shù)與最大閥值做比較。
- 基于物理服務(wù)器綁定。
- 基于主動(dòng)測(cè)量的用戶訪問(wèn)往返時(shí)間 RTT。
- 基于被動(dòng)測(cè)量的用戶訪問(wèn)往返時(shí)間。
- 基于新建連接數(shù)
- 基于流量。根據(jù)POP節(jié)點(diǎn)或者虛擬服務(wù)器每秒完成多少比特?cái)?shù)據(jù)的吞吐。
- 基于POP節(jié)點(diǎn)訪問(wèn)次數(shù)
4. 基于應(yīng)用層協(xié)議重定向的 GSLB
工作流程:

- 用戶首先向網(wǎng)站的本地 DNS 請(qǐng)求域名解析。
- 由于網(wǎng)站事先進(jìn)行了域名 CNAME 指向 CDN 的GSLB 域名和 IP 所以本地DNS會(huì)向用戶返回 GSLB 設(shè)備的 IP 地址。
- 用戶向中動(dòng)態(tài) GSLB 設(shè)備發(fā)送 HTTP GET 請(qǐng)求,請(qǐng)求該網(wǎng)站的某個(gè)資源。
- GSLB設(shè)備根據(jù)綜合分析用戶IP、內(nèi)容分布、設(shè)備負(fù)載、鏈路狀況等實(shí)時(shí)信息,為用戶選擇一個(gè)合適的服務(wù)單元。
- 用戶根據(jù)得到的IP 地址向 CDN 節(jié)點(diǎn)發(fā)送媒體訪問(wèn)請(qǐng)求。
- 如果這個(gè)IP地址仍然·是一個(gè)負(fù)載均衡設(shè)備,該設(shè)備會(huì)選擇一個(gè)具體的設(shè)備,返回給用戶。
- 用戶根據(jù)得到的 IP 地址,再次發(fā)送請(qǐng)求。
5. 基于 IP 路由的 GSLB

- 先為兩個(gè)本地負(fù)載均衡器配置一個(gè)相同的 VIP 地址,對(duì) IP 網(wǎng)上的路由器來(lái)說(shuō),這是到達(dá)同一IP地址的兩條不同的路由。
- 終端發(fā)送請(qǐng)求時(shí),當(dāng)經(jīng)過(guò)路由器,會(huì)根據(jù)路由表來(lái)選擇走哪條路徑,轉(zhuǎn)發(fā)數(shù)據(jù)包到本地負(fù)載均衡器上。