1. 程式人生 > >服務器之間如何實現負載均衡的知識

服務器之間如何實現負載均衡的知識

增加 軟件 但是 網絡地址轉換 window 本地 網絡設備 熱備 數據量

企業實現服務器負載均衡常見的四種方法
為了提高服務器的性能和工作負載能力,企業通常會使用DNS服務器、網絡地址轉換等技術來實現多服務器負載均衡,特別是目前企業對外的互聯網Web網站,許多都是通過幾臺服務器來完成服務器訪問的負載均衡。

目前企業使用的所謂“負載均衡服務器”,實際上它是應用系統的一種控制服務器,所有用戶的請求都首先到此服務器,然後由此服務器根據各個實際處理服務器狀態將請求具體分配到某個實際處理服務器中,對外公開的域名與IP地址都是這臺服務器。負載均衡控制與管理軟件安裝在這臺服務器上,這臺服務器一般只做負載均衡任務分配,但不是實際對網絡請求進行處理的服務器。

一、企業實現Web服務器負載均衡

為了將負載均勻的分配給內部的多個服務器上,就需要應用一定的負載均衡策略。通過服務器負載均衡設備實現各服務器群的流量動態負載均衡,並互為冗余備份。並要求新系統應有一定的擴展性,如數據訪問量繼續增大,可再添加新的服務器加入負載均衡系統。

對於WEB服務應用,同時有幾臺機器提供服務,每臺機器的狀態可以設為regular(正常工作)或backup(備份狀態),或者同時設定為 regular狀態。負載均衡設備根據管理員事先設定的負載算法和當前網絡的實際的動態的負載情況決定下一個用戶的請求將被重定向到的服務器。而這一切對於用戶來說是完全透明的,用戶完成了對WEB服務的請求,並不用關心具體是哪臺服務器完成的。

二、使用網絡地址轉換實現多服務器負載均衡

支持負載均衡的地址轉換網關中可以將一個外部IP地址映射為多個內部IP地址,對每次TCP連接請求動態使用其中一個內部地址,達到負載均衡的目的。很多硬件廠商將這種技術集成在他們的交換機中,作為他們第四層交換的一種功能來實現,一般采用隨機選擇、根據服務器的連接數量或者響應時間進行選擇的負載均衡策略來分配負載。然而硬件實現的負載控制器靈活性不強,不能支持更優化的負載均衡策略和更復雜的應用協議。

基於網絡地址轉換的負載均衡器可以有效的解決服務器端的CPU和磁盤I/O負載,然而負載均衡器本身的性能受網絡I/O的限制,在一定硬件條件下具有一定的帶寬限制,但可以通過改善算法和提高運行負載均衡程序的硬件性能,來提高這個帶寬限制。不同的服務類型對不同的服務器資源進行占用,我們使用的負載衡量策略是使用同一個負載進行評估,這對於大多數條件是適合的,然而最好的辦法是針對不同的資源,如CPU、磁盤I/O或網絡I/O等,分別監視服務器負載,由中心控制器選擇最合適的服務器分發客戶請求。

三、使用DNS服務器實現負載均衡

訪問企業網服務器的用戶急劇增加,一臺服務器難以滿足用戶的訪問需要,那麽如何才能保證用戶的正常訪問呢?解決方法有很多,如使用Windows 2000或Windows Server 2003提供網絡負載均衡服務,但該服務的設置非常復雜。而通過DNS服務器實現網絡負載均衡則是一種比較簡單的方法。

企業網通常由很多子網構成,為了降低網絡中的數據流量,客戶機最好能訪問處於同一子網內的Web服務器。雖然實現了網絡負載均衡功能,但並不能保證客戶訪問的是本子網的Web服務器。其實這個問題也很好解決,只要啟用DNS服務器的“啟用網絡掩碼排序”功能即可。在DNS管理器窗口中,右鍵點擊DNS 服務器,在彈出的菜單中選擇“屬性”,然後在屬性對話框中切換到“高級”選項卡,勾選“服務器選項”列表框中的“啟用網絡掩碼排序”選項即可。這樣客戶機每次都能訪問到本子網內的Web服務器了。完成以上設置後,就使DNS服務器實現了網絡負載均衡功能,把客戶的訪問分擔到每個Web服務器上,並且還減少了跨子網的網絡通信流量,大大降低了企業網的通信負擔。

四、企業實現SQL Server數據庫服務器負載均衡

MS SQL Server數據庫服務器可以說是應用範圍最廣的數據庫產品,並且越來越多地在大型和比較關鍵的應用系統中提供服務。當企業應用越來越復雜、數據量越來越大的時候,SQL Server數據庫要不停的進行處理、存儲、查詢的工作,這個時候企業就要考慮SQL Server數據庫服務器的性能和速度及安全性了。然而,長期以來,SQL SERVER數據庫服務器都只有“熱備”的解決方案,而沒有“負載均衡”和“集群”的解決方案。

隨著數據庫路由器軟件ICX的出現,為基於MS SQL Server的數據庫系統提供了一種更優秀的集群解決方案。它可以真正的實現SQL Server數據庫服務器的動態負載均衡,提高性能和速度;它可以真正的保證SQL Server數據庫服務器不間斷的提供服務,在服務器發生故障的時候實時切換到其他服務器上繼續提供服務,切換時間為“零”。數據庫路由器是實時並發數據庫事務處理同步×××和負載平衡器。

所有的數據庫客戶都通過ICX訪問數據庫。當訪問、查詢SQL Server數據庫的時候ICX可以根據實際情況分配服務器來提供服務,大大提高服務速度和優化性能,完成負載均衡。ICX可以同時連接多臺數據庫,這若幹臺數據庫的內容在任何時刻由ICX保證是完全一致的。也就是說,ICX采用了全新的並發事務處理的方式,向連接的N臺數據庫同步復制事務處理,使得系統在任何時刻具有多個一致的最新邏輯數據庫數據集。當其中一臺數據庫服務器發生故障的時候,ICX可以實時的、第一時間切換到其他服務器上來繼續提供服務。真正的實現零時間的服務器切換,大大提高安全性,真正意義的實現服務器不間斷服務。

原理:

負載平衡把每個IP數據包按某種規則分發到服務器節點,不同的負載平衡實現方式有不同的分發規則。對客戶端來說負載平衡系統是透明的。采用網絡負載平衡技術的服務對單個客戶端請求的響應並比單個主機快,但對大量客戶端的密集請求在速度與質量有很大優勢。並且當某個主機發生故障或脫機時,不會影響服務的提供,從而帶來了高可用性。

負載平衡的不同實現方法

4.1 利用網絡設備的動態網絡地址轉換(NAT)功能實現負載平衡

實現負載平衡的要求:

具備動態NAT功能的路由器,多臺運行同一服務的服務器,所有服務器要求在同一局域網內。

負載平衡的設計與配置過程:

內部的多臺服務器,有自己的私有IP,提供相同的服務, 但對外映射通過網絡地址轉換(NAT)成為一個統一的公網IP地址,對外部來講多臺服務器是捆綁在一起的一個虛擬服務器,外部訪問這個虛擬服務器時,輪流指向各臺服務器,從而達到負載均衡。

例如:以下網絡中

路由器動態NAT配置過程如下:(以思科路由器為例)

Router(config)#int f0/1

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#int s0/0

Router(config-if)#ip address 133.0.0.1 255.255.255.252

Router(config-if)ip nat outside

Router(config-if)#exit

Router(config)#ip nat pool p2 192.168.1.2 192.168.1.4 netmask 255.255.

255.0 type rotary

Router(config)#access-list 2 permit 133.0.0.33

Router(config)#ip nat inside destination list 2 pool p2

Router(config)#ip route 0.0.0.0 0.0.0.0 s0/0

優、缺點:配置簡單,成本低,服務器在本地便於維護,負載平衡算法由路由器提供,不需占用服務器系統資源。但是一般只能支持輪流服務的算法,不能根據服務器性能進行合理的負載分配。

4.2 DNS的負載平衡實現

負載平衡的要求:

要求DNS服務器的支持,一般支持bind8.2以上的類unix系統,安裝一個循環復用DNS軟件。

負載平衡的設計與配置過程:在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的服務器,達到負載均衡的目的。配置過程在不同的DNS系統中有不同的配置方法,本文不再多述。

優、缺點:服務器可以分布在不同的地域,有利於故障轉移。負載平衡算法運行在DNS服務器上,不占用服務器資源。

但是域名服務器無法知道服務結點是否有效,如果服務結點失效,域名系統依然會將域名解析到該節點上,造成用戶訪問失效。另外,它不能區分服務器性能的差異,也不能反映服務器的當前運行狀態。因此,在動態平衡特性上,動態DNS輪詢的效果並不理想。

4.3 利用操作系統的群集功能實現負載平衡

負載平衡的要求:

要求使用支持群集功能的操作系統如:windows 2000server以上的服務器版本,Unix或Linux。本文以windows2003 server為例介紹群集功能的配置。

負載平衡的設計與配置過程:群集的實現需要群集內部的通訊以及管理和內容復制的數據傳輸。這部分通訊占用了網絡的可用帶寬。為了克服單網卡的局限性,一般使用雙網卡,一個用於負載客戶端的通訊,另一個用於傳輸內部通訊,管理和內容的數據。

群集操作模式的選擇是設計的重要一步。單播模式是指各節點的網絡適配器被重新指定了一個虛擬MAC(由02-bf和群集IP地址組成確保此MAC的唯一性)。多播模式下,網絡適配器在保留原有的MAC地址不變的同時,還分配了一個各節點共享的多播MAC地址。一般選用多播模式。

端口規則是windows2003的新特性。NLB提供3種篩選模式,可以針對端口規則采取禁止、多主機負載平衡和單主機的特殊處理。其中,多主機篩選模式提供了真正意義上的負載平衡,並且可以根據節點的實際處理能力進行負載量的分配。

Windows2003引入了網絡負載平衡管理器(控制面板->管理工具),使負載平衡的安裝和配置更加簡單。管理器可以容易的實現群集的建立、刪除,節點的添加、刪除、修改以及故障的檢測。

運行網絡負載平衡管理器,選擇 群集 -> 新建 ,彈出“群集參數”對話框,然後根據向導按需要配置。

首先配置好參數後點擊下一步,系統會提示添加附加群集IP,如果不需要可直接按“下一步”進行端口配置。以web群集配置為例:如果會話狀態不保存在該群集上,則相似性選擇無,否則選擇單一或者類C。

之後,指定一臺主機連接,並選擇一個可用的網絡接口,進行主機參數的設置:點擊“完成”,管理器會自動連接到主機上進行相關配置來創建一個新的群集。

優、缺點:選擇多主機篩選模式時提供了真正意義上的負載平衡,並且可以根據節點的實際處理能力進行負載量的分配。比較適用於大型網站負載平衡的實現。但使用Unix, Windows 2003 server系統實現時,網絡架構成本較高。

服務器之間如何實現負載均衡的知識