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