第十四卷 使用負載均衡技術建設高負載的網絡站點(3 / 3)

網絡地址轉換為在內部地址和外部地址之間進行轉換,以便具備內部地址的計算器能訪問外部網絡,而當外部網絡中的計算器訪問地址轉換網關擁有的某一外部地址時,地址轉換網關能將其轉發到一個映像的內部地址上。因此如果地址轉換網關能將每個連接均勻轉換為不同的內部服務器地址,此外部網絡中的計算器就各自與自己轉換得到的地址上服務器進行通信,從而達到負載分擔的目的。

地址轉換可以通過軟件方式來實現,也可以通過硬件方式來實現。使用硬件方式進行操作一般稱為交換,而當交換必須保存TCP連接信息的時候,這種針對OSI網絡層的操作就被稱為第四層交換。支持負載均衡的網絡地址轉換為第四層交換機的一種重要功能,由它基定製的硬件芯片,因此其性能非常優秀,很多交換機聲稱具備400MB-800MB的第四層交換能力,然而也有一些資料表明,在如此快的速度下,大部分交換機就不再具備第四層交換能力了,而僅僅支持第三層甚至第二層交換。

然而對大部分站點來講,當前負載均衡主要是解決Web服務器處理能力瓶頸的,而非網絡傳輸能力,很多站點的互聯網連接帶寬總共也不過10MB,隻有極少的站點能夠擁有較高速的網絡連接,因此一般沒有必要使用這些負載均衡器這樣的昂貴設備。

使用軟件方式來實現基網絡地址轉換的負載均衡則要實際的多,除了一些廠商提供的解決方法之外,更有效的方法是使用免費的自由軟件來完成這項任務。其中包括Linux Virtual Server Project中的NAT實現方式,或者本文作者在FreeBSD下對natd的修訂版本。一般來講,使用這種軟件方式來實現地址轉換,中心負載均衡器存在帶寬限製,在100MB的快速以太網條件下,能得到最快達80MB的帶寬,然而在實際應用中,可能隻有40MB-60MB的可用帶寬。

5、擴展的負載均衡技術

上麵使用網絡地址轉換來實現負載分擔,毫無疑問所有的網絡連接都必須通過中心負載均衡器,那如果負載特別大,以至台的服務器數量不再在是幾台、十幾台,而是上百台甚至更多,即便是使用性能優秀的硬件交換機也回遇到瓶頸。此時問題將轉變為,如何將那多台服務器分布到各個互聯網的多個位置,分散網絡負擔。當然這可以通過綜合使用DNS和NAT兩種方法來實現,然而更好的方式是使用一種半中心的負載均衡方式。

在這種半中心的負載均衡方式下,即當客戶請求發送給負載均衡器的時候,中心負載均衡器將請求打包並發送給某個服務器,而服務器的響應請求不再返回給中心負載均衡器,而是直接返回給客戶,因此中心負載均衡器隻負責接受並轉發請求,其網絡負擔就較小了。

同樣,這種方式的硬件實現方式也非常昂貴,但是會根據廠商的不同,具備不同的特殊功能,例如對SSL的支持等。

由這種方式比較複雜,因此實現起來比較困難,它的起點也很高,當前情況下網站並不需要這大的處理能力。

比較上麵的負載均衡方式,DNS最容易,也最常用,能夠滿足一般的需求。但如果需要進一步的管理和控製,可以選用反向代理方式或NAT方式,這兩種之間進行選擇主要依賴緩衝是不是很重要,最大的並發訪問數量是多少等條件。而如果網站上對負載影響很厲害的CGI程序是由網站自己開發的,也可以考慮在程序中自己使用Locaction來支持負載均衡。半中心化的負載分擔方式至少在國內當前的情況下還不需要。