從原理講到實例,帶你學習網絡負載均衡
大型企業中,我們可以購置負載均衡的硬件設備與軟件相結合,達到高性能的網絡負載均衡。那么,針對不同的情況,我們要進行不同領域的負載均衡設定,那么對于負載均衡的一些技術我們先來了解一下,之后再對不同的技術類型,把網絡負載均衡系統分開來談。
1>概述
企業知名度增加,網站訪問量逐漸上升,是每一個網管所盼望的。但同時應用服務器的數據流量和訪問量將成倍增加,服務器將不堪重負。
這時,可采用兩種方式解決此問題,一是進行硬件升級,購買配置更高、性能更好的服務器,這種方法的優點是簡單易行,缺點是投資大, 會造成現有資源的浪費,且下一次業務量的提升還會面臨同樣問題。另一種方法是采用集群技術,利用兩臺以上的服務器進行協同工作,在集群系統中運行的服務器并不一定是高檔產品(可以是企業現有的服務器),但服務器的集群卻可以提供相當高性能的不停機服務;另外,隨著業務量的增大,可隨時增加集群系統中運行的服務器數量。集群技術的優點是高可靠性和強大靈活的系統擴充能力。
兩臺以上的服務器進行協同工作必然涉及到負載均衡問題,目前常用的負載均衡技術主要有:NAT負載均衡、反向代理負載均衡及DNS負載。
NAT負載均衡將一個外部IP地址映射為多個內部IP地址,對每次連接請求動態地轉換為一個內部服務器的地址,將外部連接請求引到轉換得到地址的那個服務器上。反向代理負載均衡使用代理服務器將請求轉發給內部的Web服務器,讓代理服務器將請求均勻地轉發給多臺內部Web服務器之一上,從而達到網絡負載均衡的目的。DNS負載均衡在DNS中為多個地址配置同一個名字,從而使得不同的客戶訪問不同的服務器來實現負載均衡。本文將詳細介紹DNS負載均衡原理和技術實現。
2>DNS負載均衡原理
DNS負載均衡是通過循環復用實現的,如果發現主機名的多個地址資源記錄,則可用它循環使用包含在查詢應答中的主機資源記錄。在默認情況下,DNS 服務器的服務使用循環復用對資源記錄進行排序,這些資源記錄是在解析為多個映射的主機名應答中返回的。該功能提供了一種非常簡便的方法,用于對客戶機使用 Web 服務器和其他頻繁查詢的多宿主計算機的負載平衡。
要使循環復用正常工作,必須首先在該區域中注冊所查詢名稱的多個主機資源紀錄,并啟用DNS服務器循環復用。如果DNS服務器禁止循環復用,那么這些查詢的響應順序以應答列表中資源記錄在區域中存儲時的靜態排序為基礎。
3>四臺服務器的負載均衡實例
可提供的服務:Web、Ftp系統實現的目的:做一個較完善的網絡負載均衡系統,以共享和高效地利用資源設備狀況:五臺服務器,其中四臺服務器組成集群系統,IP地址分別為172.28.20.1、172.28.20.2、172.28.20.3、172.28.20.4;
一臺服務器作為控制管理服務器,提供DNS服務,設企業域名為www.example.com.cn。
服務器配置:集群系統服務器安裝Windows 2000 sever ,須安裝Internet信息服務組件;
DNS服務器安裝Windows 2000 sever ,須安裝DNS組件。
⑴ 分別設置各臺服務器IP地址、子網掩碼、網關及DNS服務器地址,調通網絡。
⑵ 設置DNS服務器
①在DNS中創建正向搜索的標準主要區域,實現域名
DNS服務器上單擊開始/程序/管理工具/DNS,打開DNS控制臺。
在控制臺樹中,右鍵單擊 “正向搜索區域",單擊新建區域/新建區域向導/下一步,選擇區域類型為“標準主要區域"。如果不是在活動目錄的域控制器上創建DNS區域,則區域類型中的“與活動目錄集成的區域"選項按鈕不可用;單擊“下一步"。
輸入要創建的區域名稱example.com.cn,選擇創建新的區域文件,文件名為example.com.cn.dns,單擊下一步/完成,區域 example.com.cn出現在控制臺樹中的“正向搜索區域"下。
②在區域example.com.cn中注冊查詢名稱www. example.com.cn的多個主機資源記錄。
在DNS控制臺樹中右鍵單擊區域example.com.cn,單擊新建主機,彈出“新建主機"窗口。在“名稱"欄輸入主機名www,在“IP地址"欄輸入對應的IP地址172.28.20.1,單擊“添加主機"、“確定"按鈕;重復此過程,主機名仍為www, IP地址依次為172.28.20.2、172.28.20.3、172.28.20.4。單擊“完成"。
四條名為www的主機記錄出現在正向搜索區域“example.com.cn"中,指針依次為172.28.20.1、172.28.20.2、 172.28.20.3、172.28.20.4#p#
③啟用多宿主名稱的循環復用
單擊開始/程序/管理工具/DNS/DNS服務器名/屬性/高級,在“服務器選項"中,選擇“啟用循環"復選框,然后單擊“確定"。
至此,正向搜索型查詢用于IP 地址分別為172.20.20.1、172.28.20.2、172.28.20.3和172.28.20.4的多宿主主機 (www. example.com.cn)配置完成.
當客戶請求訪問www.example.com.cn時,DNS 服務器將循環調度IP地址的次序,將按172.28.20.1、172.28.20.2、172.28.20.3和172.28.20.4的順序應答***個客戶的要求,下一個客戶對同樣信息的請求將用旋轉后的172.28.20.2、172.28.20.3、172.28.20.4和 172.20.20.1這樣的順序應答,旋轉過程將持續下去,成功實現DNS網絡負載均衡。
按以上步驟設置好后,有時會有疑問,為什么ping www.example.com.cn,返回的都是同一個IP?原因很簡單,這是因為只用1臺電腦做測試,ping了***次后,電腦就會做一個緩存。用多臺電腦來ping,或在一臺電腦上ping完每一次后,均運行ipconfig/flnshdns, 就可測試出系統實現目的已達到。
4>需注意的兩點問題
⑴ 本地子網優先級
當集群中的服務器不在同一網段時,默認情況下,當客戶機查詢解析映射到多個 IP 地址的主機名時,DNS 服務使用本地子網優先排序作為給出同一網絡上*** IP 地址的方法。此功能要求客戶應用程序嘗試使用連接可用的最近(一般是最快的)IP 地址連接至主機。
DNS 服務按以下方式使用本地子網優先級:
①DNS 服務確定是否需要本地子網的優先級排序查詢響應。
如果有多個地址資源記錄與要查詢的主機名匹配,則 DNS 服務可按其子網位置重新對記錄進行排序。如果查詢的主機名只與一個 地址資源記錄匹配,或者客戶機的 IP 網絡地址與多重資源記錄響應列表上的任何映射地址的 IP 網絡地址匹配,則不需要進行優先排列。
②對于匹配響應列表中的每一個資源紀錄,DNS 服務決定了哪些記錄(如果有)與查詢客戶機的子網位置匹配。
③DNS 服務重新對響應列表進行排序,以便將與發出請求的客戶機的本地子網匹配的 主機地址資源記錄排在響應列表中的***位。
④按子網的順序進行優先級排序后,響應列表將返回給發出請求的客戶機。
⑵ 不足之處
雖然循環復用 DNS 是一個普遍使用的在 Web 服務器上負載平衡的解決方案,但是,該方式有它自身的缺陷。循環復用 DNS 使用 DNS將傳入的 IP 請求映射到定義的一系列循環形式的服務器。一旦發生服務器故障,循環復用 DNS 繼續把請求發送到這個故障服務器,一直到把該服務器從 DNS 中移走為止。這樣許多用戶必須等到 DNS 連接超時以后才能成功地訪問目標網站。
5>結束語
集群負載均衡被認為是目前十大熱門技術之一,它也是一個高端應用,Internet/Intranet中網絡負載均衡方案應用十分廣泛,許多大中型網站都難脫離這種技術。NAT負載均衡、反向代理均衡及DNS負載均衡,將視需要而被采用。利用循環復用DNS實現負載均衡是一種經濟又實用的方法,不需要添加昂貴的負載均衡設備,并且服務器可以位于互聯網的任意位置,該技術當前使用在包括Yahoo在內的一些Web站點上。