集群和負載均衡的相伴發展論
集群和負載均衡是個扯不清的關系,集群是負載均衡發展的根本,負載均衡是集群發展的依靠。那么從負載均衡的角度看集群現在的表現又是如何呢?隨著科技的不斷出新,我們越來越多的技術已經不能分開來談,現在我們就將兩者結合,一起分析它們的發展現狀和方向。
負載均衡
負載均衡是提高系統性能的一種前沿技術。還是沿用前面的例子,一臺IA服務器的處理能力是每秒幾萬個,顯然無法在一秒鐘內處理幾十萬個請求,但如果我們能夠有10臺這樣的服務器組成一個系統,如果有辦法將所有的請求平均分配到所有的服務器,那么這個系統就擁有了每秒處理幾十萬個請求的能力。這就是負載均衡的基本思想。
實際上,目前市場上有多家廠商的負載均衡產品。由于其應用的主要技術的不同,也就有著不同的特點和不同的性能。
1.輪詢DNS負載均衡
輪詢DNS方案可以說是技術上最簡單也最直觀的一種方案。當然,這種方案只能夠實現負載均衡的功能,卻無法實現對高可用性的保證。它的原理是在DNS服務器中設定對同一個Internet主機名的多個IP地址的映射。這樣,在DNS收到查詢主機名的請求時,會循環的將所有對應的IP地址逐個返回。這樣,就能夠將不同的客戶端連接定位到不同的IP主機上,也就能夠實現比較簡單的負載均衡功能。但是,這種方案有兩個比較致命的缺點:
◆只能夠實現對基于Internet主機名請求的負載均衡,如果是直接基于IP地址的請求則無能為力。
◆在集群內有節點發生故障的情況下,DNS服務器仍會將這個節點的IP地址返回給查詢方,也就仍會不斷的有客戶請求試圖與已故障的節電建立連接。這種情況下,即使你手工修改DNS服務器的對應設置,將故障的IP地址刪除,由于Internet上所有的DNS服務器都有緩存機制,仍會有成千上萬的客戶端連接不到集群,除非等到所有的DNS緩存都超時。
2.硬件負載均衡解決方案
有些廠商提供對負載均衡的硬件解決方案,制造出帶有NAT(網絡地址轉換)功能的高檔路由器或交換機來實現負載均衡功能。NAT本身的原理就是實現多個私有IP地址對單個公共IP地址的轉換。代表產品是Cicso公司和Alteon公司的某些高檔硬件交換機系列。這種方案有如下缺點:
◆由于采用了特殊的硬件,使得整個系統中存在非工業標準部件,極大的影響系統的擴充和維護、升級工作。
◆價格極其昂貴,和軟件的解決方案根本是數量級上的差別。
◆一般只能實現對節點系統一級的狀態檢查,無法細化到服務一級的檢查。
◆由于采用NAT機制,集群管理節點本身要完成的工作量很大,很容易成為整個系統的瓶頸。
◆此特殊硬件本身就是單一故障點。
◆實現異地節點的集群非常困難。#p#
3.協商式處理(并行過濾)和負載均衡
這種方案的原理是客戶請求會同時被所有的節點所接收,然后所有節點按照一定的規則協商決定由哪個節點處理這個請求。此種方案中比較顯著的特點就是整個集群中沒有顯著的管理節點,所有決定由全體工作節點共同協商作出。代表產品是Microsoft公司的Microsoft Load Balancing Service這種方案的特點是:
◆由于各節點間要進行的通訊量太大,加重了網絡的負擔,一般需要增加節點通訊的專用網絡,也就加大了安裝和維護的難度和費用。
◆由于每個節點都要接收所有的客戶請求并進行分析,極大的加大了網絡驅動層的負擔,也就減低了節點本身的工作效率,同時也時網絡驅動層很容易成為節點系統的瓶頸。
◆由于要更改網絡驅動層的程序,所以并不是一個通用的方案,只能夠實現對特殊平臺的支持。
◆在小量節點的情況下協商的效率還可以接受,一旦節點數量增加,通訊和協商將變得異常復雜和低效,整個系統的性能會有非線性的大幅度下降。所以此類方案,一般在理論上也只允許最多十幾個的節點。
◆無法實現異地節點的集群。
◆由于集群內沒有統一的管理者,所以可能出現混亂的異常現象。
4.流量分發和負載均衡
流量分發的原理是所有的用戶請求首先到達集群的管理節點,管理節點可以根據所有服務節點的處理能力和現狀來決定將這個請求分發給某個服務節點。當某個服務節點由于硬件或軟件原因故障時,管理節點能夠自動檢測到并停止向這個服務節點分發流量。這樣,既通過將流量分擔而增加了整個系統的性能和處理能力,又可以很好的提高系統的可用性。
通過將管理節點本身做一個子集群可以消除由于管理節點自身的單一性帶來的單一故障點。有些傳統技術人員認為,因為所有的客戶流量都將通過管理節點,所以管理節點很容易成為整個系統的瓶頸。但TurboCluster Server通過先進的直接路由或IP隧道轉發機制巧妙的解決了問題。使得所有對客戶響應的流量都由服務節點直接返回給客戶端,而并不需要再次通過管理節點。眾所周知,對于服務提供商而言,進入的流量要遠遠小于流出的流量,所以管理節點本身將不再是瓶頸。
流量分發的具體實現方法有直接路由、IP隧道和網絡地址轉換三種方法。TurboCluster Server目前支持效率最高的前兩種。由于這種先進的結構和技術,使得TurboCluster Server集群內的服務節點數并沒有上限,而且對大量節點的協同工作的效率也能夠非常好的保證。
結束語
集群技術已經發展了多年,其中的分支也非常多。目前集群技術正逐漸走向分層結構,以后也肯定會有專門用戶前端、后端的集群產品出現。