複製鏈接
請複製以下鏈接發送給好友

網絡負載平衡

鎖定
網絡負載平衡允許你將傳入的請求傳播到最多達32台的服務器上,即可以使用最多32台服務器共同分擔對外的網絡請求服務。
中文名
網絡負載平衡
外文名
networkloadbalancing
網絡負載平衡技術保證即使是在負載很重的情況下它們也能作出快速響應。網絡負載平衡對外只須提供一個IP地址(或域名)。如果網絡負載平衡中的一台或幾台服務器不可用時,服務不會中斷。
網絡負載平衡自動檢測到服務器不可用時,能夠迅速在剩餘的服務器中重新指派客户機通訊。此保護措施能夠幫助你為關鍵的業務程序提供不中斷的服務。可以根據網絡訪問量的增多來增加網絡負載平衡服務器的數量。網絡負載平衡可在普通的計算機上實現。在Windows Server 2003中,網絡負載平衡的應用程序包括Internet信息服務(IIS)、ISA Server 2000防火牆與代理服務器、VPN虛擬專用網終端服務器、Windows Media Services(Windows視頻點播、視頻廣播)等服務。同時,網絡負載平衡有助於改善你的服務器性能和可伸縮性,以滿足不斷增長的基於Internet客户端的需求。
網絡負載平衡可以讓客户端用一個邏輯Internet名稱和虛擬IP地址(又稱羣集IP地址)訪問羣集,同時保留每台計算機各自的名稱。
正因為如此,網絡負載均衡技術在最近得到了非常迅猛的發展。在接下來的文章內,編者就將向大家簡要介紹一下網絡負載均衡的工作原理以及三種常見的工作方式。
網絡負載均衡技術的誕生與互聯網的高速發展有很大的關係。
隨着互聯網用户的急劇增長,獲取信息的速度快慢已經成為制約互聯網發展的重要因素。尤其隨着電子商務的迅速發展,企業的信息中心已經從側重計算與數據處理計算中心和側重網絡與數據通訊的網絡中心發展成為一個將計算中心與網絡中心功能平衡優化的集成一體的數據中心。作為企業電子商務網絡的基礎核心,數據中心將彙集高性能計算、數據通訊、語音通訊等處理功能於一體,成為支持企業未來電子商務系統應用的必然平台。
但是,作為企業網的心臟,數據中心面臨着眾多的挑戰。擴展性、靈活性、高性能、可靠性、高密度和安全性無一不是數據中心不可或缺的要求,尤其是在數據流急劇增長的時候還要進行持續穩定的運行。很難想象用户會在屢次遇到“Server Too Busy”後還能再次訪問這個網站;更難以想象正在進行信用卡支付時遇到掉線會有多麼嚴重的後果。那麼,如何解決這個瓶頸問題呢?如何才能切實提高網絡的服務質量呢?
互聯網的快速增長已經使網絡服務器面對的訪問數量大大增加並且更加不可預知。如今,服務器必須具備提供大量併發訪問服務的能力,其處理能力和I/O能力已經成為提供服務的瓶頸。如果客户的增多導致通信量超出了服務器能承受的範圍,那麼其結果必然是――宕機。
顯然,單台服務器有限的性能不可能解決這個問題,一台普通服務器的處理能力只能達到每秒幾萬個到幾十萬個請求,無法在一秒鐘內處理上百萬個甚至更多的請求。但若能將10台這樣的服務器組成一個系統,並通過軟件技術將所有請求平均分配給所有服務器,那麼這個系統就完全擁有每秒鐘處理幾百萬個甚至更多請求的能力。這就是負載均衡最初的基本設計思想。
最早的負載均衡技術是通過DNS來實現的,在DNS中為多個地址配置同一個名字,因而查詢這個名字的客户機將得到其中一個地址,從而使得不同的客户訪問不同的服務器,達到負載均衡的目的。DNS負載均衡是一種簡單而有效的方法,但是它不能區分服務器的差異,也不能反映服務器的當前運行狀態。
這種負載均衡的基本設計思想只能算是負載均衡技術的最初應用。現代負載均衡技術除了可以做到合理、平均、實時地均衡系統負載外,還能夠確保系統正常運行的高可用性和高可靠性。負載均衡服務能夠平衡服務器羣中所有的服務器和應用之間的通信負載,根據實時響應時間進行判斷,將任務交由負載最輕的服務器來處理,以實現真正的智能通信管理和最佳的服務器羣性能。
如圖一所示,假設每個服務器能響應的請求為每秒10萬個。如果不採用負載均衡,那麼該系統就只能達到每秒10萬個的響應,即使採用三台服務器,也有可能在不到每秒30萬個響應的時候就會出現某台服務器由於訪問量過大而宕機;如果某台服務器出現故障,則可能導致數萬個請求不能得到正確的響應。但如果採用負載均衡,不僅當服務器出現故障時可以自動將指向該服務器上的響應分擔到其他服務器,還可以在數據量不太大時也將任務分配到各個服務器中,避免出現有些服務器數據量很小而有的已因數據量接近極限導致性能急劇下降的現象。如果數據量超出了服務器的響應能力,只需增加服務器數目就可以平滑升級。也就是説,負載均衡技術不僅可以維持網絡系統中負載的均衡分配,還能夠維護網絡系統的高可用性運行,因而是保證網絡系統高性能的重要技術。
現代負載均衡技術通常操作於網絡的第四層或第七層。負載均衡器可以根據實際的響應時間制定優先級交付決策,從而實現高性能、智能化流量管理,達到最佳的服務器羣性能。採用第七層應用控制還可以減少通信高峯期的錯誤訊息,因為差錯控制流量管理技術可以偵測到一些錯誤信息並透明地將會話重定向到另一個服務器,使用户順利地進行使用。例如,圖一中服務器A不可用或者數據庫出現錯誤,錯誤信息將會返回到負載均衡器上,然後會將客户的訪問指向服務器B或者將消息重放到其他數據庫中去,整個過程對用户是透明的。
由於採用了負載均衡技術,自動故障恢復得以實現,服務的時間可以延長,24×7可靠性和持續運行成為可能。另外,負載均衡器一般也支持路徑外返回模式,即繞過流量分配器,為那些焦急等待大量數據文件請求響應的客户提供更快的響應時間。
在最新的負載均衡產品中,智能化越來越明顯。一些智能化的負載均衡器能夠偵測到像數據庫錯誤、服務器不可用等信息,從而採取措施使會話恢復和重定向服務器使電子商務能夠得以順利進行。多址負載均衡器可以對客户發來的訪問請求進行解析,計算出最佳地址,然後將該地址返回客户,使客户自動連接到對其請求來説最佳的數據中心。
負載均衡,從結構上分為本地負載均衡和地域負載均衡(全局負載均衡),前一種是指對本地的服務器集羣做負載均衡,後一種是指對分別放置在不同的地理位置、在不同的網絡及服務器羣集之間作負載均衡。
每個主機運行一個所需服務器程序的獨立拷貝,諸如Web、FTP、Telnet或e-mail服務器程序。對於某些服務(如運行在Web服務器上的那些服務)而言,程序的一個拷貝運行在羣集內所有的主機上,而網絡負載均衡則將工作負載在這些主機間進行分配。對於其他服務(例如e-mail),只有一台主機處理工作負載,針對這些服務,網絡負載均衡允許網絡通訊量流到一個主機上,並在該主機發生故障時將通訊量移至其他主機。
■DNS
最早的負載均衡技術是通過DNS來實現的,在DNS中為多個地址配置同一個名字,因而查詢這個名字的客户機將得到其中一個地址,從而使得不同的客户訪問不同的服務器,達到負載均衡的目的。
DNS負載均衡是一種簡單而有效的方法,但是它不能區分服務器的差異,也不能反映服務器的當前運行狀態。當使用DNS負載均衡的時候,必須儘量保證不同的客户計算機能均勻獲得不同的地址。由於DNS數據具備刷新時間標誌,一旦超過這個時間限制,其他DNS服務器就需要和這個服務器交互,以重新獲得地址數據,就有可能獲得不同IP地址。因此為了使地址能隨機分配,就應使刷新時間儘量短,不同地方的DNS服務器能更新對應的地址,達到隨機獲得地址,然而將過期時間設置得過短,將使DNS流量大增,而造成額外的網絡問題。DNS負載均衡的另一個問題是,一旦某個服務器出現故障,即使及時修改了DNS設置,還是要等待足夠的時間(刷新時間)才能發揮作用,在此期間,保存了故障服務器地址的客户計算機將不能正常訪問服務器。
儘管存在多種問題,但它還是一種非常有效的做法,包括Yahoo在內的很多大型網站都使用DNS。
使用代理服務器,可以將請求轉發給內部的服務器,使用這種加速模式顯然可以提升靜態網頁的訪問速度。然而,也可以考慮這樣一種技術,使用代理服務器將請求均勻轉發給多台服務器,從而達到負載均衡的目的。
這種代理方式與普通的代理方式有所不同,標準代理方式是客户使用代理訪問多個外部服務器,而這種代理方式是代理多個客户訪問內部服務器,因此也被稱為反向代理模式。雖然實現這個任務並不算是特別複雜,然而由於要求特別高的效率,實現起來並不簡單。
使用反向代理的好處是,可以將負載均衡和代理服務器的高速緩存技術結合在一起,提供有益的性能。然而它本身也存在一些問題,首先就是必須為每一種服務都專門開發一個反向代理服務器,這就不是一個輕鬆的任務。
代理服務器本身雖然可以達到很高效率,但是針對每一次代理,代理服務器就必須維護兩個連接,一個對外的連接,一個對內的連接,因此對於特別高的連接請求,代理服務器的負載也就非常之大。反向代理方式下能應用優化的負載均衡策略,每次訪問最空閒的內部服務器來提供服務。但是隨着併發連接數量的增加,代理服務器本身的負載也變得非常大,最後反向代理服務器本身會成為服務的瓶頸。
支持負載均衡的地址轉換網關,可以將一個外部IP地址映射為多個內部IP地址,對每次TCP連接請求動態使用其中一個內部地址,達到負載均衡的目的。很多硬件廠商將這種技術集成在他們的交換機中,作為他們第四層交換的一種功能來實現,一般採用隨機選擇、根據服務器的連接數量或者響應時間進行選擇的負載均衡策略來分配負載。由於地址轉換相對來講比較接近網絡的低層,因此就有可能將它集成在硬件設備中,通常這樣的硬件設備是局域網交換機
當前局域網交換機所謂的第四層交換技術,就是按照IP地址和TCP端口進行虛擬連接的交換,直接將數據包發送到目的計算機的相應端口。通過交換機就能將來自外部的初始連接請求,分別與內部的多個地址相聯繫,此後就能對這些已經建立的虛擬連接進行交換。因此,一些具備第四層交換能力的局域網交換機,就能作為一個硬件負載均衡器,完成服務器的負載均衡。
由於第四層交換基於硬件芯片,因此其性能非常優秀,尤其是對於網絡傳輸速度和交換速度遠遠超過普通的數據包轉發。然而,正因為它是使用硬件實現的,因此也不夠靈活,僅僅能夠處理幾種最標準的應用協議的負載均衡,如HTTP 。當前負載均衡主要用於解決服務器的處理能力不足的問題,因此並不能充分發揮交換機帶來的高網絡帶寬的優點。
■協議內部支持
除了這三種負載均衡方式之外,有的協議內部支持與負載均衡相關的功能,例如HTTP協議中的重定向能力等,HTTP運行於TCP連接的最高層。客户端通過端口號80的TCP服務直接連接到服務器,然後通過TCP連接向服務器端發送一個HTTP請求。在服務器分清客户端所需的網頁和資源之前,至少要進行四次TCP的數據包交換請求。由於負載平衡設備要把進入的請求分配給多個服務器,因此,它只能在TCP連接時建立,且HTTP請求通過後才能確定如何進行負載的平衡。當一個網站的點擊率達到每秒上百甚至上千次時,TCP連接、HTTP報頭信息以及進程的時延已經變得很重要了。在HTTP請求和報頭中有很多對負載平衡有用的信息。首先,也是最重要的一點是,我們可以從這些信息中獲知客户端所請求的URL和網頁,利用這個信息,負載平衡設備就可以將所有的圖像請求引導到一個圖像服務器,或者根據URL的數據庫查詢內容調用CGI程序,將請求引導到一個專用的高性能數據庫服務器。惟一能侷限這些信息獲取的因素是負載平衡設備本身的靈活程度。事實上,如果網絡管理員熟悉Web內容交換技術,他可以僅僅根據HTTP報頭的cookie字段來使用Web內容交換技術改善對特定客户的服務,如果能從HTTP請求中找到一些規律,還可以充分利用它作出各種決策。除了TCP連接表的問題外,如何查找合適的HTTP報頭信息以及作出負載平衡決策的過程,是影響Web內容交換技術性能的重要問題。
但它依賴於特定協議,因此使用範圍有限。根據現有的這些負載均衡技術,並應用優化的均衡策略,來實現後端服務器負載分擔的最優狀態。
由於網絡負載均衡技術的諸多優點,網絡負載均衡的被廣泛應用一定是大勢所趨。隨後,編者還會介紹更多與網絡負載均衡相關的文章,希望能對大家有所幫助。