負載均衡實施要素

負載均衡實施要素

負載均衡方案應是在網站建設初期就應考慮的問題,不過有時隨着訪問流量 的爆炸性增長,超出決策者的意料,這也就成爲不得不面對的問題。當我們在引入某種負載均衡方案乃至具體實施時,像其他的許多方案一樣,首先是確定當前及將 來的應用需求,然後在代價與收效之間做出權衡。

針對當前及將來的應用需求,分析網絡瓶頸的不同所在,我們就需要確立是採用哪一類的負載均衡技術,採用什麼樣的均衡策略,在可用性、兼容性、安全性等等方面要滿足多大的需求,如此等等。

不管負載均衡方案是採用花費較少的軟件方式,還是購買代價高昂在性能功能上更強的第四層交換機、負載均衡器等硬件方式來實現,亦或其他種類不同的均衡技術,下面這幾項都是我們在引入均衡方案時可能要考慮的問題:

性 能:性能是我們在引入均衡方案時需要重點考慮的問題,但也是一個最難把握的問題。衡量性能時可將每秒鐘通過網絡的數據包數目做爲一個參數,另一個參數是均 衡方案中服務器羣所能處理的最大併發連接數目,但是,假設一個均衡系統能處理百萬計的併發連接數,可是卻只能以每秒2個包的速率轉發,這顯然是沒有任何作 用的。 性能的優劣與負載均衡設備的處理能力、採用的均衡策略息息相關,並且有兩點需要注意:一、均衡方案對服務器羣整體的性能,這是響應客戶端連接請求速度的關 鍵;二、負載均衡設備自身的性能,避免有大量連接請求時自身性能不足而成爲服務瓶頸。 有時我們也可以考慮採用混合型負載均衡策略來提升服務器羣的總體性能,如DNS負載均衡與NAT負載均衡相結合。另外,針對有大量靜態文檔請求的站點,也 可以考慮採用高速緩存技術,相對來說更節省費用,更能提高響應性能;對有大量ssl/xml內容傳輸的站點,更應考慮採用ssl/xml加速技術。


可 擴展性:IT技術日新月異,一年以前最新的產品,現在或許已是網絡中性能最低的產品;業務量的急速上升,一年前的網絡,現在需要新一輪的擴展。合適的均衡 解決方案應能滿足這些需求,能均衡不同操作系統和硬件平臺之間的負載,能均衡HTTP、郵件、新聞、代理、數據庫、防火牆和 Cache等不同服務器的負載,並且能以對客戶端完全透明的方式動態增加或刪除某些資源。


靈活性:均衡解決方案應能靈活地提供不同的應用需求,滿足應用需求的不斷變化。在不同的服務器羣有不同的應用需求時,應有多樣的均衡策略提供更廣泛的選擇。


可 靠性:在對服務質量要求較高的站點,負載均衡解決方案應能爲服務器羣提供完全的容錯性和高可用性。但在負載均衡設備自身出現故障時,應該有良好的冗餘解決 方案,提高可靠性。使用冗餘時,處於同一個冗餘單元的多個負載均衡設備必須具有有效的方式以便互相進行監控,保護系統儘可能地避免遭受到重大故障的損失。


易管理性:不管是通過軟件還是硬件方式的均衡解決方案,我們都希望它有靈活、直觀和安全的管理方式,這樣便於安裝、配置、維護和 監控,提高工作效率,避免差錯。在硬件負載均衡設備上,目前主要有三種管理方式可供選擇:一、命令行接口(CLI:Command Line Interface),可通過超級終端連接負載均衡設備串行接口來管理,也能telnet遠程登錄管理,在初始化配置時,往往要用到前者;二、圖形用戶接 口(GUI:Graphical User Interfaces),有基於普通web頁的管理,也有通過Java Applet 進行安全管理,一般都需要管理端安裝有某個版本的瀏覽器;三、SNMP(Simple Network Management Protocol,簡單網絡管理協議)支持,通過第三方網絡管理軟件對符合SNMP標準的設備進行管理。
負載均衡配置實例

DNS負載均衡
DNS負載均衡技術是在DNS服務器中爲同一個主機名配置多個IP地址,在應答DNS查詢時,DNS服務器對每個查詢將以DNS文件中主機記錄的IP地 址按順序返回不同的解析結果,將客戶端的訪問引導到不同的機器上去,使得不同的客戶端訪問不同的服務器,從而達到負載均衡的目的。

DNS負載均衡的優點是經濟簡單易行,並且服務器可以位於internet上任意的位置。但它也存在不少缺點:

爲了使本DNS服務器和其他DNS服務器及時交互,保證DNS數據及時更新,使地址能隨機分配,一般都要將DNS的刷新時間設置的較小,但太小將會使DNS流量大增造成額外的網絡問題。


一旦某個服務器出現故障,即使及時修改了DNS設置,還是要等待足夠的時間(刷新時間)才能發揮作用,在此期間,保存了故障服務器地址的客戶計算機將不能正常訪問服務器。


DNS負載均衡採用的是簡單的輪循負載算法,不能區分服務器的差異,不能反映服務器的當前運行狀態,不能做到爲性能較好的服務器多分配請求,甚至會出現客戶請求集中在某一臺服務器上的情況。


要給每臺服務器分配一個internet上的IP地址,這勢必會佔用過多的IP地址。
判斷一個站點是否採用了DNS負載均衡的最簡單方式就是連續的ping這個域名,如果多次解析返回的IP地址不相同的話,那麼這個站點就很可能採用的就 是較爲普遍的DNS負載均衡。但也不一定,因爲如果採用的是DNS響應均衡,多次解析返回的IP地址也可能會不相同。不妨試試Ping一下www.yesky.comwww.sohu.comwww.yahoo.com

現假設有三臺服務器來應對www.test.com的請求。在採用BIND 8.x DNS服務器的unix系統上實現起來比較簡單,只需在該域的數據記錄中添加類似下面的結果:

www1 IN A 192.1.1.1
www2 IN A 192.1.1.2
www3 IN A 192.1.1.3
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3

在NT下的實現也很簡單,下面詳細介紹在win2000 server下實現DNS負載均衡的過程,NT4.0類似:

打開“管理工具”下的“DNS”,進入DNS服務配置控制檯。


打 開相應DNS 服務器的“屬性”,在“高級”選項卡的“服務器選項”中,選中“啓用循環”複選框。此步相當於在註冊表記錄HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\DNS\Parameters中添加一個雙字節制值(dword值) RoundRobin,值爲1。


打開正向搜索區域的相應區域(如test.com),新建主機添加主機 (A) 資源記錄,記錄如下:

www IN A 192.1.1.1
www IN A 192.1.1.2
www IN A 192.1.1.3

在這裏可以看到的區別是在NT下一個主機名對應多個IP地址記錄,但在unix下,是先添加多個不同的主機名分別對應個自的IP地址,然後再把這些主機賦同一個別名(CNAME)來實現的。

在此需要注意的是,NT下本地子網優先級會取代多宿主名稱的循環複用,所以在測試時,如果做測試用的客戶機IP地址與主機資源記錄的IP在同一有類掩碼範圍內,就需要清除在“高級”選項卡“服務器選項”中的“啓用netmask排序”。
NAT負載均衡
NAT(Network Address Translation 網絡地址轉換)簡單地說就是將一個IP地址轉換爲另一個IP地址,一般用於未經註冊的內部地址與合法的、已獲註冊的Internet IP地址間進行轉換。適用於解決Internet IP地址緊張、不想讓網絡外部知道內部網絡結構等的場合下。每次NAT轉換勢必會增加NAT設備的開銷,但這種額外的開銷對於大多數網絡來說都是微不足道 的,除非在高帶寬有大量NAT請求的網絡上。

NAT負載均衡將一個外部IP地址映射爲多個內部IP地址,對每次連接請求動態地轉換爲一個內部服務器的地址,將外部連接請求引到轉換得到地址的那個服務器上,從而達到負載均衡的目的。

NAT負載均衡是一種比較完善的負載均衡技術,起着NAT負載均衡功能的設備一般處於內部服務器到外部網間的網關位置,如路由器、防火牆、四層交換機、專用負載均衡器等,均衡算法也較靈活,如隨機選擇、最少連接數及響應時間等來分配負載。

NAT負載均衡可以通過軟硬件方式來實現。通過軟件方式來實現NAT負載均衡的設備往往受到帶寬及系統本身處理能力的限制,由於NAT比較接近網絡的低 層,因此就可以將它集成在硬件設備中,通常這樣的硬件設備是第四層交換機和專用負載均衡器,第四層交換機的一項重要功能就是NAT負載均衡。

下面以實例介紹一下Cisco路由器NAT負載均衡的配置:

現有一臺有一個串行接口和一個Ethernet接口的路由器,Ethernet口連接到內部網絡,內部網絡上有三臺web服務器,但都只是低端配置,爲 了處理好來自Internet上大量的web連接請求,因此需要在此路由器上做NAT負載均衡配置,把發送到web服務器合法Internet IP地址的報文轉換成這三臺服務器的內部本地地址。 其具體配置過程如下:

做好路由器的基本配置,並定義各個接口在做NAT時是內部還是外部接口。

然後定義一個標準訪問列表(standard access list),用來標識要轉換的合法IP地址。

再定義NAT地址池來標識內部web服務器的本地地址,注意要用到關鍵字rotary,表明我們要使用輪循(Round Robin)的方式從NAT地址池中取出相應IP地址來轉換合法IP報文。


最後,把目標地址爲訪問表中IP的報文轉換成地址池中定義的IP地址。
相應配置文件如下:

interface Ethernet0/0
ip address 192.168.1.4 255.255.255.248
ip nat inside
!
interface Serial0/0
ip address 200.200.1.1 255.255.255.248
ip nat outside
!
ip access-list 1 permit 200.200.1.2
!
ip nat pool websrv 192.168.1.1 192.168.1.3 netmask 255.255.255.248 type rotary
ip nat inside destination list 1 pool websrv
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章