當前位置:
首頁 > 科技 > 多活分散式數據中心如何實現DNS域名解析和負載均衡?

多活分散式數據中心如何實現DNS域名解析和負載均衡?

最近沒時間寫文章,只能暫時給讀者分享一些技術文章。關於雙活技術和業界主流方案,之前應大家要求做了分析和分享,為了幫助大家進一步理解,筆者把重要知識點做了梳理和細化,並整理成「業界主流數據中心存儲雙活完全解析」電子書,文章目錄如下。

第1章 雙活技術和方案概述4

第2章 數據中心雙活該如何構建7

2.1 構建數據中心互聯網路8

2.2 數據中心內部互聯技術介紹8

2.3 雙活應用部署方式9

2.4 雙活仲裁部署方式9

2.5 雙活應用的外部訪問9

2.6 基於網關的雙活技術10

2.7 雙活方案的基本技術條件11

2.8 基於應用層的雙活技術11

2.9 基於NAS的雙活技術12

2.10 雙活的限制和要求13

第3章 剖析NetApp Clustered Metro Cluster雙活方案14

第4章 剖析IBM SVC Stretch Cluster雙活方案22

第5章 剖析IBM PowerHA/SVC HyperSwap雙活方案32

第6章 剖析HDS HAM/GAD雙活方案42

第7章 剖析華為VIS/HyperMetro雙活存儲方案52

第8章 剖析EMC Vplex雙活數據中心存儲方案63

第9章 剖析EMC SRDF/Mtreo和MetroSync雙活方案71

第10章 剖析HPE、Dell和Fujitsu雙活存儲方案77

第11章 如何在應用層部署應用雙活?88

11.1物理應用部署90

11.2虛擬應用部署90

第12章 多路徑ALUA技術如何優化雙活方案I/O處理91

12.1 什麼是ALUA多路徑機制92

12.2 ALUA在雙活中如何應用93

12.3 ALUA的路徑狀態和相關概念93

12.4 ALUA技術支持現狀95

12.5 ALUA主要功能和能力97

第13章 業界主流廠商雙活架構和技術比較98

13.1 存儲網關雙活98

13.2 Active-Passive雙活98

13.3 Active-Active雙活98

今天的話題將帶你從雙活數據訪問層面,談談域名解析和負載均衡。

DNS域名解析是B/S應用架構的一項重要服務,C/S架構應用一般是通過IP地址直接訪問服務的。在雲計算時代,業務主要通過B/S、分散式、多活的架構提供。然而對於網站運營和服務提供商來說,DNS域名解析的穩定可靠,意味著更好的業務體驗,更好更大的訪問流量。

隨著雲計算和分散式系統的發展,DNS在多數據中心、分散式應用架構中負載均衡和故障轉移應用中越來越重要,今天我們對DNS概念、應用和原理進行梳理和解析

DNS是互聯網上作為域名和IP地址相互映射的一個分散式資料庫。DNS能夠使用戶更方便的訪問網路和應用,而不用去記憶雜亂、繁瑣的IP數串。通過域名,最終得到該域名對應的IP地址的過程叫做域名解析。下面這張圖,詳細說明了一個DNS域名解析的全過程。

1、通常,在電腦打開瀏覽器,輸入一個域名。比如輸入www.163.com,這時電腦會發出一個DNS請求到本地DNS伺服器。本地DNS伺服器一般是網路接入伺服器商提供,比如中國電信,中國移動。

2、查詢www.163.com的DNS請求到達本地DNS伺服器之後,本地DNS伺服器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結果。如果沒有,本地DNS伺服器還要向DNS根伺服器進行查詢。

3、根DNS伺服器沒有記錄具體的域名和IP地址的對應關係,而是告訴本地DNS伺服器,你可以到域伺服器上去繼續查詢,並給出域伺服器的地址。

4、本地DNS伺服器繼續向域伺服器發出請求,在這個例子中,請求的對象是.com域伺服器。.com域伺服器收到請求之後,也不會直接返回域名和IP地址的對應關係,而是告訴本地DNS伺服器,你的域名的解析伺服器的地址。

5、最後,本地DNS伺服器向域名的解析伺服器發出請求,這時就能收到一個域名和IP地址對應關係,本地DNS伺服器不僅要把IP地址返回給用戶電腦,還要把這個對應關係保存在緩存中,以備下次別的用戶查詢時,可以直接返回結果,加快網路訪問。

實際上,網際網路上的DNS伺服器也是按照層次安排的。每一個域名伺服器只對域名體系中的一部分進行管轄。根據域名伺服器所起的作用,可以把域名伺服器劃分為根域名伺服器、頂級域名伺服器、許可權域名伺服器和本地域名伺服器四種不同的類型。

根域名伺服器是最高層次的域名伺服器,也是最重要的域名伺服器。所有的根域名伺服器都知道所有的頂級域名伺服器的域名和IP地址。不管是哪一個本地域名伺服器,若要對網際網路上任何一個域名進行解析,只要自己無法解析,就首先求助根域名伺服器。所以根域名伺服器是最重要的域名伺服器。假定所有的根域名伺服器都癱瘓了,那麼整個DNS系統就無法工作。

我們在配置DNS解析的時候,需要指定DNS解析的TTL(Time To Live)參數,這個參數告訴本地DNS伺服器,域名緩存的最長時間。用阿里雲解析來舉例,阿里雲解析默認的TTL是10分鐘,10分鐘的含義是本地DNS伺服器對於域名的緩存時間是10分鐘,10分鐘之後,本地DNS伺服器就會刪除這條記錄,刪除之後,如果有用戶訪問這個域名,就要重複一遍上述複雜的流程。

如果網站已經進入穩定發展的狀態,不會輕易更換IP地址,我們完全可以將TTL設置到協議最大值,即24小時。帶來的好處是,讓域名解析記錄能夠更長時間的存放在本地DNS伺服器中,以加快所有用戶的訪問。

分散式、多活數據中心對外提供數據服務時,還會涉及到另外一個參數RTT(Round Trip Time)。分布在物理上A、B隔離兩個區域的數據中心同時對外提供服務時,客戶的服務請求是由A數據中心,還是由B數據中心響應,這就要看在DNS解析過程中,決定於解析過程中那個訪問帶來的RTT更小。下面一起通過一個實例來分析下技術原理。

1、首先客戶端向其所在運營商的Local DNS發起www.abc.com域名的DNS請求。

2、運營商的Local DNS伺服器從RootDNS得知www.abc.com由DNS-CTC、DNS-CNC、DNS-USA1和DNS-USA2來解析,即RootDNS同時返回此4個DNS伺服器地址給LocalDNS(DNS的工作原理要求返回所有關於請求的記錄,在此即返回4個DNS伺服器,如果只返回一個DNS而此DNS剛好中斷服務了,那麼Local DNS只能是解析失敗了);

3、Local DNS輪詢向這4個DNS伺服器發出域名解析的請求,直到返回數據。

4、在此,假如DNS-CTC響應LocalDNS的域名解析請求,同時返回2台GTM的地址(本地監聽的Web服務)。

5、收到Local DNS請求的GTM首先查詢在本地是否有該Local DNS的就近性表項,如果存在則直接給Local DNS返回速度最快的伺服器地址。如果不存在,則通知另外一台GTM發起對該Local DNS的查詢。

6、兩台DNS分別對Local DNS進行Probe。例如GTM-A查詢該Local DNS的RTT時間為50ms,而GTM-B查詢同一Local DNS的RTT時間為100ms,則此時在兩台GTM內都形成了該Local DNS的對應就近性表記錄。

7、根據就近原則,Local DNS請求的GTM-A根據系統的就近性表返回相應的Data Center內的Web伺服器地址(即1.1.1.1)。

8、Local DNS獲得地址後,將該地址返回給用戶,到此DNS請求過程結束。

9、用戶向www.albc.com(1.1.1.1)網站發起訪問。

分散式、多活數據中心中,一個域名對應兩個業務IP地址,分別部署在兩個數據中心。通過GSLB或DNS實現站點間的訪問負載均衡。

GSLB可以採用專用的F5 GTM設備,如果業務量小,也可以採用windows自帶的DNS伺服器,實現簡單負載均衡(輪詢),GSLB跨站點負載均衡策略通常有兩種。

1. 基於Local DNS請求所在的地理位置。

2. 基於GSLB與Local DNS的RTT最小。

GSLB在整個網路範圍內將用戶的請求定向到最近的節點(或者區域),主要採用就近性判斷,主要的方法包括DNS、應用層重定向、傳輸層重定向等。然而,SLB大多在一個服務節點範圍內,根據設備節點的健康性、當前負載、服務能力、分布等情況將用戶的請求分配到一個具體服務節點設備。

溫馨提示:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 架構師技術聯盟 的精彩文章:

關於InfiniBand知識和架構漫談
嵌入式物聯網系統軟硬體基礎知識大全

TAG:架構師技術聯盟 |