負載均衡原理與實踐詳解 第一篇(重新整理)


負載均衡原理與實踐詳解 第一篇(重新整理)

 

系列文章:

負載均衡原理與實踐詳解 第一篇(重新整理)

負載均衡原理與實踐詳解 第二篇(重新整理)

負載均衡原理與實踐詳解 第三篇 服務器負載均衡的基本概念-網絡基礎

負載均衡原理與實踐詳解 第四篇 使用負載均衡器的服務器群

 

 

    負載均衡在服務器和網絡的世界中並不是一個新的概念,許多產品都能夠提供不同類型的負載均衡解決方案。比如,路由器能夠在不同的路徑之間分配流量到達相同的目的地,在不同的網絡資源中平衡它們的負擔。另一方面,一個服務器負載均衡設備,能在多台服務器之間分發流量。

 

    最初,負載均衡設備只是滿足簡單的負載均衡需求,而如今這些產品已得到迅速的發展,能夠提供更多更復雜的功能,如:負載均衡、流量管理、智能流量交換技術、內容交換技術甚至應用交換等。負載均衡設備能夠對服務器、應用系統進行復雜而且准確的健康檢查,從而提高系統的可用性和可管理性。因為負載均衡設備通常部署在服務器群的前端,它能夠保護服務器免遭惡意用戶的入侵從而提高安全性。根據IP包中的信息或應用請求的內容,負載均衡設備會作出智能的決策,並准確地將流量導向到正確的數據中心、服務器、防火牆、高速緩存或者應用系統。

 

1.1  負載均衡的需求

 

    有兩個重要的因素推動了負載均衡的出現:服務器和網絡。隨着國際互聯網絡(Internet)和企業網絡(Intranet)的出現,連接着服務器和企業的雇員、客戶、供應商以及合作伙伴的數字網絡已經變得至關重要。整個信息服務系統如果不能提供服務或者性能差到不可接受的地步時,很可能會導致一些業務被迫停頓。

 

    舉例來講,如果要建立一個電子商務的網站,需要考慮許多部件:邊界路由器、交換機、防火牆、高速緩存、Web服務器、中間件服務器和數據庫服務器,而針對不同應用需要不斷增加服務器設備,最終數據中心填滿了各種各樣的服務器群。在這些服務器群中實現可擴展性、可管理性、可用性以及安全性變得非常復雜並具有挑戰性,這也是智能高層交換技術出現的一個重要的推動力。從邊界路由連接互聯網絡開始,一直到數據中心的后台數據庫主機系統,負載均衡已經成為一個解決上述問題和挑戰的新的強有力的工具。

 

服務器環境

 

    至少有兩個原因使得當今的企業和互聯網絡服務商(ISP)不斷增加服務器的數量。第一,在互聯網絡時代需要配備許多不同功能的服務器或應用,包括:WEB服務器、FTP服務器、DNS、NFS、E-mail、ERP、中間件、數據庫等等;第二,因為一台服務器無法提供足夠的計算能力和容量,許多應用需要多台服務器同時提供服務。如果你與數據中心的任何一個人去交談,他或者她就會告訴你,他們花了多少時間在不同的應用和服務器上解決可管理性問題、擴展性問題和高可用性問題。

 

    舉例來說,如果電子郵件應用無法處理不斷增加的客戶訪問的需求時,就必須配備另外一台電子郵件服務器,網絡管理員還必須考慮如何將客戶的請求分發到這兩台電子郵件服務器上。如果一台服務器出現故障,網絡管理員在維修這台服務器的同時,需要在另外一台服務器上運行這一應用,而一旦原來的服務器修好之后,它還必須回到原來的地方繼續提供服務。對客戶來說,這些工作都會影響到應用系統的性能和可用性。

 

擴展的挑戰

 

    如何擴展運算能力並不是一個新的問題。以前,一台服務器專門執行一個應用服務,如果這台服務器不能勝任這個工作時,就會購買一台更加強大的服務器來替換。因此提高系統的不同部件來增加服務器的運算能力就變得越來越有效。舉例來講,Intel公司提出的著名的摩爾定律提到,處理器的處理速度正以每隔18個月翻一倍的速度增長着,但是對提高運算能力的需求的增長速度卻更快。於是我們發明了集群技術,最初將它應用於主機系統。由於主機系統是專有的技術,所以生產主機的廠商都采用它們自己的技術,來配置一個主機集群以便分擔計算任務,這樣做是比較容易的。現在市場上出現了兩種集群技術:松散耦合的系統和對稱多處理技術。但是這兩種集群技術都有局限性,而且從系統性能的曲線來看,性價比也沒有足夠的吸引力。

 

松耦合系統

 

    松耦合系統是由許多相同功能的計算單元,通過系統總線互聯在一起。每個計算單元包含處理器、內存、磁盤控制器、磁盤驅動器和網卡等部件,每個計算單元本身就是一台計算機。把這些計算單元組合在一起,即可組成一個松耦合的系統。象天騰(Tandem)公司的一個系統中就包含了16個計算單元。松耦合的系統,采用內部處理器間通訊將任務分擔到多個計算單元來處理。松耦合處理系統只在計算任務可以很容易地被分割時才能夠擴充。

 

    假設這樣一個任務:在一個數據表中找出所有“Category”列的值等於100的記錄,那么在操作時數據表就會被分割成四個相等的部分,而且每個部分都存放在被一個處理器控制的硬盤分區中。查詢的任務也被分割成四個任務,而且每個處理器並行地執行查詢的任務,最后再合並成一個完整的查詢結果。但不是所有的計算任務都是可以分割的,比如需要更新剩余燈泡的庫存數據,那么只有負責燈泡數據庫的處理器才能夠更新數據。如果燈泡的銷售快速增長,使得更新庫存的請求也快速增加,就可能使專門負責處理燈泡庫存的處理器變成性能的瓶頸,而其他的處理器卻很空閑。即便是在任務可以被分割的情況的,為了實現可擴展性,松耦合系統需要系統和應用軟件的支持。松耦合系統在任務不可分割時,或者更新燈泡庫存之類的突發情況下,就無法實現系統性能的擴展。

 

對稱多處理系統

 

    對稱多處理(SMP,Symmetric multiprocessing)系統采用多個處理器共享相同內存的技術,應用軟件必須被改寫成可適應多線程環境的系統,每個線程能夠運行一個計算元語。這些線程共享同樣的內存而且依賴於特別的通訊手段,如旗語或消息機制等。操作系統在多個處理器中分配任務,使多個處理器能夠同時運行從而提供可擴展性。同樣的,一個計算任務能否被清晰地分割並同時運行也是一個挑戰。而且增加一個處理器,操作系統就需要在線程和處理器中通訊和協調,這樣一來系統的可擴展性又會受到限制。

 

 網絡環境

 

    傳統的交換機和路由器根據數據包的IP地址或MAC地址轉發數據包,但是它們不能滿足當前復雜的服務器集群的需要。舉例來說,傳統的路由器或者交換機,無法智能地把請求數據包發送到特定的服務器或者高速緩存。如果目的服務器發生故障,不能提供服務時,傳統的交換機仍會繼續將客戶請求發送到這個無效的目的地。為了了解傳統的交換機和路由器的功能,以及智能內容交換機的先進性,我們必須先來研究一下OSI模型。

 

OSI模型

 

    OSI模型是一個開放式的標准,它定義了不同的設備或計算機是如何互相通訊的。如圖1.1所示,它由7層構成,從物理層到應用層。網絡協議如傳輸控制協議(TCP)、用戶數據報協議(UDP)、互聯網絡協議(IP)和超文本傳輸協議(HTTP),都對應OSI模型中不同的層。IP是三層的協議,而TCP和UDP在第四層工作。每層的協議能夠與另外一台設備上的相同層次的協議互相通訊,並與其緊挨着的上層或着下層的協議交換信息。

 

20120401083009.png

 

圖1.1 OSI模型中的網絡協議

二、三層交換

 

    傳統的交換機和路由器工作在第二、三層中,也就是說它們根據網絡第二、三層的包頭信息來轉發數據包,這也符合二、三層交換機的設計初衷,能夠進行大量的數據傳輸工作。因為很多有用的信息,存放在更高層協議的數據段中,所以問題是,我們從一個可以觀察更高層次協議的包頭信息的交換機中能獲得哪些益處呢?

 

四到七層交換

 

    網絡四到七層交換技術,是指交換機根據數據包的第四到七層協議的包頭信息來做數據包交換。TCP和UDP是本書中最重要的第四層協議,TCP和UDP包頭中含有許多重要的信息可以作為智能交換的依據。舉例來說,HTTP協議通常在TCP 80端口提供Web服務。如果一個交換機能夠識別TCP端口號碼,對一個請求它就可以優先處理,或者拒絕訪問,或者將其重定向到一個特定的服務器。只需要檢查TCP和UDP的端口號碼,交換機就能夠識別許多常規的應用,包括HTTP、FTP、DNS、SSL和流媒體協議等。利用TCP和UDP的相關信息,四層交換機能夠通過分發TCP或者UDP請求,進而達到多台服務器的負載均衡。四七層交換機這一術語,既是真實存在的,也是市場推廣的噱頭。大部分四七層交換機至少工作在網絡第四層,而且許多交換機確實能夠識別四層協議以上的信息。至於能識別網絡四層以上多少信息或者哪一層的信息,不同的產品就大相徑庭了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM