Web服務器負載均衡定義和作用及類型
一、負載均衡的定義
負載均衡是由多臺服務器以對稱的方式組成一個服務器集合,每臺服務器都具有等價的地位,都可以單獨對外提供服務而無須其他服務器的輔助。通過某種負載分擔技術,將外部發送來的請求均勻分配到對稱結構中的某一臺服務器上,而接收到請求的服務器獨立地回應客戶的請求。
二、負載均衡的作用
如果你發現你的Web站點負載量非常大時,應當考慮使用負載均衡技術來將負載平均分攤到多個內部服務器上。如果有多個服務器同時執行某一個任務時,這些服務器就構成一個集群(clustering)。使用集群技術可以用最少的投資獲得接近于大型主機的性能。
三、類型
目前比較常用的負載均衡技術主要有:
1. 基于DNS的負載均衡
通過DNS服務中的隨機名字解析來實現負載均衡,在DNS服務器中,可以為多個不同的地址配置同一個名字,而最終查詢這個名字的客戶機將在解析這個名字時得到其中一個地址。因此,對于同一個名字,不同的客戶機會得到不同的地址,他們也就訪問不同地址上的Web服務器,從而達到負載均衡的目的。
2. 反向代理負載均衡
使用代理服務器可以將請求轉發給內部的Web服務器,讓代理服務器將請求均勻地轉發給多臺內部Web服務器之一上,從而達到負載均衡的目的。這種代理方式與普通的代理方式有所不同,標準代理方式是客戶使用代理訪問多個外部Web服務器,而這種代理方式是多個客戶使用它訪問內部Web服務器,因此也被稱為反向代理模式。Apusic負載均衡器就屬于這種類型的。
3. 基于NAT的負載均衡技術
網絡地址轉換為在內部地址和外部地址之間進行轉換,以便具備內部地址的計算機能訪問外部網絡,而當外部網絡中的計算機訪問地址轉換網關擁有的某一外部地址時,地址轉換網關能將其轉發到一個映射的內部地址上。因此如果地址轉換網關能將每個連接均勻轉換為不同的內部服務器地址,此后外部網絡中的計算機就各自與自己轉換得到的地址上服務器進行通信,從而達到負載分擔的目的。
負載均衡服務器的好處
由于網民數量激增,網絡訪問路徑過長,用戶的訪問質量容易受到嚴重影響,尤其是當用戶與網站之間的鏈路被突如其來的流量擁塞時。而這種情況經常發生在異地互聯網用戶急速增加的應用上。這時候,如果在服務端應用負載均衡(GSLB)技術,就可以合理分擔系統負載、提高系統可靠性、支持網站內容的虛擬化。在實際應用中,許多IDC,如互聯通更是采用GSLB與Cache、Mirror相結合的方法來提供網絡加速服務。負載均衡服務具有如下特點:
高智能化
運用虛擬IP(VIP)地址代表目標服務器和應用,將會話分配到最高可用性的服務器,全程監控每個會話,服務恢復后自動重新登記,并轉發客戶機和服務器信息包時提供全地址轉換。簡單有效的負載均衡算法可以配置包括循環法、最少連接法、散列法或最少失誤法等多種不同的負載均衡方法,也可以對個別服務器配置最大連接數量閾值和加權值,以避免服務器超載。
高可靠性
架構在專用的高速骨干網之上,該主干網絡提供延遲極小的網絡連通性,從而保障GSLB的功能正常發揮和高性能,遠遠優于基于公網的GSLB。并且,當主站點機房的?Internet 出口出現故障時,還能將用戶自動、透明地從其他分站點Internet入口導向主站點服務器。
高可用性
采用熱備份方法,在極短時間內對服務器鏈路、交換端口和交換機進行檢測和故障轉移,使應用免受故障影響;任何一個服務器或服務器群發生故障或阻塞,用戶將被自動引導到下一個最佳備份服務器或站點,從而更進一步提高了服務和內容的可用性。
#p#
服務器負載均衡
網絡的負載均衡是一種動態均衡技術,通過一些工具實時地分析數據包,掌握網絡中的數據流量狀況,把任務合理均衡地分配出去。
計算集中型的應用,比如電子商務網站,服務器計算負荷會很大;讀寫頻繁的應用,比如網絡數據庫,存儲系統則面臨著考驗;傳輸量大的應用,比如視頻服務,數據總是無法快速傳送,無法實現最好的效果;訪問量大的應用,路由器與防火墻容易成為瓶頸。想要合理解決這些問題,升級設備、改變拓撲是"笨辦法",相對巧妙的方法是采用負載均衡技術,用多個設備共同完成任務。
負載均衡技術基于現有網絡結構,提供了一種擴展服務器帶寬和增加服務器吞吐量的廉價有效的方法,加強了網絡數據處理能力,提高了網絡的靈活性和可用性。負載均衡的應用,能夠有效地解決網絡擁塞問題,能夠就近提供服務,實現地理位置無關性(異地負載均衡)。同時,這項技術還能提高服務器的響應速度,提高服務器及其他資源的利用效率,避免網絡關鍵部位出現單點失效,從而為用戶提供更好的訪問質量。
隨著網絡應用的不斷升溫,不少網絡服務商也推出了負載均衡服務。如專業的網絡服務提供商Unihub公司的服務,就是針對目前網絡應用的狀況而推出的提高網絡處理速度、減少因個別服務器出現故障而影響用戶訪問的解決方案。
Unihub 的服務器負載均衡根據一定策略,能實時監控服務器的健康狀況和負載情況,把用戶請求轉發給狀態健康且負載最輕的服務器。服務器負載均衡應用于本地服務器系統時能夠有效地利用多臺服務器共同工作來提高服務系統的能力,也可以按照客戶系統的業務特性及實際運行的情況提供靈活多變的設計。比如,電子商務網站可以指定一臺服務器用于滿足要進行交易的訪問需求,只有在交易量很小時才和另一臺服務器共同為普通的訪問查詢請求服務,從而避免了過多的非重要數據流量影響重要的電子商務進程。
服務器必須具備處理大量并發訪問服務的能力,其處理能力和I/O(輸入/輸出)能力已經成為提供服務質量好壞的重要因素。負載均衡作為一種策略,能夠讓多臺服務器或多條鏈路共同承擔繁重的計算或I/O任務,從而以較低成本消除網絡瓶頸,提高網絡的靈活性和可靠性。
在業務量不斷增長,需要提高服務能力時,使用服務器負載均衡技術,只需在智能化交換機上接上新的服務器,就可以與原有的服務器共同構成更大容量的服務系統。這樣,既可以保證在擴容時服務不中斷,又有效地保障了原有的投資。
如何解決負載平衡問題
一、問題的提出
隨著Internet和Intranet的高速發展,基于IP的應用越來越成為網絡最普遍,最有用和甚至是必不可少的部分。許多知名的站點和ISP常常要在短時間內接受大量的訪問而力不從心。這給網絡的升級維護帶來了一些問題:
1. 如果采用單一的服務器提供服務,很明顯,存在著單點脆弱性(Single Point of Failure)。這臺服務器任何部件稍有閃失,都會給服務帶來問題;同時這也是昂貴的、難以擴展的方案:服務器的能力需要不斷的提高,擴充內存,升級 CPU,增加硬盤…在系統維護和升級的期間,服務被迫中斷;而且這種升級也有極限,總有一天,無論如何調整服務器的性能都無法滿足用戶的要求。
2. 如果采用服務器群,主要的缺點在于訪問地址的復雜化和負載不平衡。對于每臺服務器都必須有相應的唯一的IP地址,給用戶的訪問和網絡管理帶來不便;這些服務器之間的流量分配是隨機的,不會考慮服務器當前的負載情況,在某些情形之下反而造成連接失敗。
二、目前典型的方法
1. 使用Round-Robin DNS,將服務請求分布到不同的服務器上。此種方法運行在應用層,由于簡單地將域名請求分布,并不了解正在運行的服務負載及網絡鏈路,因此,并不能提供真正的負載平衡。Internet上最著名的負載分配方法叫 Round-Robin DNS。 Round-Robin DNS運行在域名服務器上,是用來向每一臺服務器乃至每一個進程分配用戶申請的軟件,它可以讓你配置一份 IP地址名單,然后,就可以通過域名服務器 (DNS)把申請有序地分配到機器、或以不同數字代表的進程之上。然而, Round-RobinDNS被普遍公認為一種并非完美的解決方案。因為,它無法反映出不同的機器可能擁有不同的能力 (盡管在非常有限的程度上,可通過對能力更強的機器使用多個別名來進行粗略的能力估價);它不可能作為因數記入負載水平;而且它也無法檢測并避開那些已經癱瘓了的服務器。
2 使用對應用或網絡敏感的DNS服務,此種方案相對第一種方案提供了更好的特征,但由于DNS的Cache機制,客戶仍然不能得到真正的負載平衡。
3 使用雙機備份的大型服務器系統是當前許多ICP/ISP的升級選擇。但是此種方案并不能避免網絡上的單點故障,而且其中的一臺服務器在一般情況下處于休眠狀態,增加了系統成本和管理成本。
4 使用網絡層(IP)的網絡流量分配設備(Director)。此種方法支持真正的負載平衡,并且提供服務的系統可通過網絡連接,分布在不同的地區。但是,不同的解決方案提供的特性區別較大,如是否支持分布的網絡冗余、管理是否方便等。
三、IP負載平衡方案
通過IP負載平衡產品,分配網絡訪問流量,協同一組服務器共同工作,對用戶提供完全透明的訪問通道,使高性能、高承受力且只有一個簡單的訪問地址的站點成為可能。
IP負載平衡機制給多服務器環境帶來了兩個主要的好處:
1 系統可擴縮性(Scalable)
由于Web站點和服務器群擁有越來越多的用戶,硬件的升級越來越頻繁,這無疑是一件令人乏味和很不經濟的事情。系統在安裝了負載平衡產品之后,負載平衡器可以讓一簇相同或不同的服務器共同來完成一臺超級服務器的工作,給系統提供了無限的升級能力,減少了系統升級的開銷。負載平衡器介于服務器和用戶端之間,扮演了一個智能的指揮者角色。根據當前各個服務器的工作狀態和能力來分配服務器負載,使整個系統能更高效的響應用戶的請求。
2 系統的容錯性(Fault Tolerance)
"不間斷服務"、"24x7服務"(no down time)的概念越來越受業界人士重視。IP負載平衡器實時監視各個服務器的工作狀態,不分配任務給那些力不從心的服務器,這種有彈性的負載分配方式充分利用了每臺服務器,使用戶能得到流暢、連續的透明的服務。這也正是在線服務的最終目標。