談:負載平衡服務器的使用
負載均衡應用之初,就是為了緩解集群中單一服務器的壓力。那么我們現在就來談談負載平衡服務器的問題。伴隨著科技技術的不斷進步,我們的產品也是不斷更新和強大的。那么負載平衡服務器的使用也是發揮了更多的作用,通過用戶的要求,制定不同的方案計劃,現在讓我們看一看這個產品的使用。
隨著互聯網的迅速發展,應用服務器工作量的日益增加,對負載均衡技術的需求也就越來越多。而在眾多的負載平衡技術中,網絡負載平衡技術由于其優勢,成為了目前使用最為廣泛的技術,具體的產品也最為廣泛:如F5的BIG-IP、RadWare的Web Server Director、IBM的WebSphere Edge Server、TriLoad負載平衡服務器等。
目前主要有三種網絡負載平衡轉發技術,分別是網絡地址轉換、直接路由和IP隧道技術,采用不同的方法將客戶端發送的包轉發到目的服務器上,并確保目的服務器的返回包可以順利到達客戶端。
◆網絡地址轉換
網絡地址轉換模式
在目標網絡地址轉換(DNAT)模式下,提供服務的IP被定義在平衡服務器上,應用服務器只需要定義各自的內部IP地址,但是必須將負載平衡服務器定義為缺省路由,以保證返回客戶端的包經過負載平衡服務器,完成第二次地址轉換后再送回客戶端。
原理:
1. 客戶發出服務請求
2. 負載平衡服務器接收到請求,將數據包中目的IP地址改為選中的應用服務器IP地址,然后重新發出數據包
3. 應用服務器收到后,將應答包發回給負載平衡服務器
4. 負載平衡服務器收到應答包后將其中的源地址改回成服務IP,發回客戶端
網絡地址轉換的優點是實際服務器可以運行支持TCP/IP協議的任意操作系統,實際服務器可以使用私有地址,只需在平衡服務器上配置服務IP地址。而且現在的防火墻都支持地址轉換功能,因此,容易為用戶接受。
缺點是網絡地址轉換的性能擴展能力有限,因為請求包和應答包都必須通過平衡服務器,當服務器的節點數量達到20或更多時,平衡服務器可能成為整個系統的瓶頸。因此,這種方式主要適用于網絡負載不是很高的場合。
◆直接路由
和那種請求包和應答包都必須通過平衡服務器的網絡地址轉換不同,平衡服務器在直接路由模式下,將請求調度到不同的實際服務器,實際服務器直接將結果發回客戶端。在大多數應用中,請求的字節數遠小于應答的字節數,所以與網絡地址轉換相比平衡服務器能處理更多的請求。采用直接路由能更大程度提高平衡服務器的最大節點數和網絡吞吐量。甚至于平衡服務器使用100M全雙工的網卡,系統的最大數據吞吐量仍可以超過1Gbps。
直接路由的特點是運用網絡分層原理,通過將目標IP包封裝在指定MAC地址的以太網數據包中欺騙TCP堆棧,因此實際服務器和負載平衡服務器必須在同一個物理網段中,并且在應用服務器上必須將服務IP定義在loopback虛擬網卡上。
原理:
1. 客戶發出服務請求
2. 負載平衡服務器接收到請求,將數據包中網卡物理地址(MAC)改為選中的應用服務器的MAC地址,然后重新發出數據包
3. 目標應用服務器收到后,將應答包通過路由器直接發回客戶端(不經過負載平衡服務器)
直接路由是最高效,網絡延時最小的負載平衡技術,但是,為達到MAC地址的欺騙,負載平衡服務器和所有應用服務器必須在同一個物理網段。而且,現在出現操作系統缺省是關閉這種特性的,如FreeBSD,必須顯示打開相應的內核開關才可以。不過,目前的主流操作系統,都可以滿足直接路由的需求,如Windows、Linux、AIX、Solaris、FreeBSD等。
直接路由轉換模式
◆IP隧道
與直接路由的方法類似,區別僅僅在于不是通過MAC欺騙來轉發數據包,而是通過建立負載平衡服務器和應用服務器之間的IP隧道來完成。
因為這些服務器的連接是通過IP隧道,平衡服務器和實際服務器可以在不同的局域網甚至是廣域網。缺點是所有服務器必須使用IP隧道(IP封裝)協議,比直接路由的效率要低,而且,不是所有的操作系統都支持。
在實際環境中,需要根據實際的情況來選擇采用合適的轉發技術的產品,甚至在某些場合,需要混合不同的轉發方式。