1. 程式人生 > >CDN快取伺服器負載均衡叢集《CDN技術詳解》

CDN快取伺服器負載均衡叢集《CDN技術詳解》

1. 集群系統

1.1 集群系統分類

伺服器叢集的分類,可以分為三種分別是計算叢集、負載均衡叢集、高可用叢集,下面分析對計算叢集、負載均衡叢集和高可用叢集做以詳細講解。

根據用途的不同,我們把伺服器叢集分為如下幾類。
(1)計算叢集
伺服器計算叢集通常被用於承載計算密集型任務,而並不用於I/O密集型的應用場景(例如Web服務或者資料庫)。這類計算叢集是以平行計算為基礎的,它對外而言就好像是一臺效能強大的超級計算機。

(2)負載均衡叢集
負載均衡叢集的關鍵在於能夠使多臺彼此互聯的伺服器共同分擔計算任務,即任務負載可以在叢集中被儘可能地平均分配到多臺伺服器上處理,從而避免出現叢集中某幾臺伺服器超載而其他服務囂閒置的情況,有效地改善叢集效能。

叢集中的負載通常包括計算任務處理負載網路I/O流量負載兩類。對於計算任務處理負載,負載均衡叢集能夠使用同一組計算應用程式為大量使用者提供服務,其中每個節點都可以承擔一定的處理負載,並且可以在節點之間動態分配負載,實現負載均衡;對於網路I/O流量負載,當網路服務程式接收了高入網流量而無法及時處理時,相關流量會被分發給在其他伺服器節點上執行的網路服務程式,同時可以根據每個節點上不同的可用資源或網路環境進行優化。

(3)高可用叢集
高可用叢集中的部分伺服器發生故障時,叢集管理系統將及時發現故障並將由該部分零載的任務重新分派到其他正常工作的伺服器上。其關鍵在於能夠在系統高速執行的過程中儘可能快速地對系統故障做出響應。

高可用機制能夠有效地提高叢集執行的可持續性,能夠在叢集發生故障時確保使用者體驗的一致性。同時,高可用叢集中單臺伺服器的高可用性要求被降低,有助於降低系統成本。

在上述叢集的分類中,高可用機制是確保叢集執行質量的重要方法,因此通常是交融在其他兩類叢集中一起被實現的。而計算叢集和負載均衡叢集也有一定的類似性,例如都是在多個伺服器節點間分發計算負載,但是它們的最大區別在於計算叢集更多的是用於承載跨多個節點的平行計算程式,而負載均衡叢集中每個伺服器節點上通常是執行獨立的軟體系統,而與其他節點少有通訊。因此,從這個意義來看,CDN的節點系統可歸類為一種典型的負載均衡集群系統。

1.2 集群系統的結構

典型的伺服器叢集的系統結構如圖:
在這裡插入圖片描述


如圖所示,伺服器叢集的系統結構主要分為4個層次。
(1)網路層:網路是構成叢集的基礎,因為構成叢集的多臺伺服器是通過網路互聯的。網路層的關鍵技術包括網路互聯結構、網路通訊協議、訊號傳輸技術等。
(2)節點伺服器作業系統層:叢集中的各臺伺服器是叢集計算能力的基本單元,它們具有一定的自治能力,能夠獨立完成叢集分配到本地的任務,其關鍵技術主要包括高效能伺服器架構、高效能作業系統核心技術等。
(3)應用層:應用層由執行負載任務的軟體構成,可在叢集管理層的干預下實現相應應用功能。其關鍵技術包括並行程式開發環境、各類解決任務負載的串/並行應用等。
(4)叢集管理系統層:叢集管理系統層是伺服器叢集的核心元件,是協調叢集資源使之能夠高效協同完成任務的關鍵。它的主要任務是對叢集內的伺服器資源及其上執行的任務進行管理和排程,以實現叢集內負載的均衡,從而避免個別節點成為瓶頸,最大程度地發揮叢集的整體效能。對於不同的叢集型別,其叢集管理系統的功用也有所不同,在計算叢集中,其主要用途是為應用提供平行計算環境,而在負載均衡叢集中,其主要用途是排程各個應用到合適的伺服器上執行。

相比較其他層次,叢集管理層是叢集所特有的功能與技術的體現。正是由於叢集管理系統對多臺伺服器的統籌、協調、管控和有機組織,才使之能夠對外以一臺伺服器的形象展現,才產生了“叢集”的概念。叢集管理層的完善程度,直接決定著集群系統的效能、易用性、穩定性、可擴充套件性等諸多關鍵指標。

2. CDN快取伺服器負載均衡叢集

CDN快取伺服器是典型的負載均衡集群系統,我們知道內容快取技術,核心思想是在內容伺服器和使用者之間架設快取伺服器,將使用者最近訪問過的煤體資料快取在離客戶較近的地方,以供後續重複訪問使用。

當用戶訪問量較大時,單臺快取裝置在處理繁重的內容分發任務時會在處理能力、吞吐能力等方面形成嚴重的效能瓶頸。在這種情況下,快取伺服器叢集就是解決相關問題的有效手段。在使用者和內容伺服器之間部署快取伺服器叢集,能夠充分利用叢集中各個節點形成的強大計算能力,同時各節點可以被並行訪問,能夠有效改善系統吞吐率。除了效能的改善,多臺快取伺服器構成的叢集在儲存容量等方面的優勢,使其在提高使用者請求命中率方面有很大的提升。相關的系統示意圖如圖所示。
快取伺服器叢集部署

  • 對於CDN系統中的快取伺服器叢集而言,各臺伺服器之間需要知道彼此的內容快取情況以提高訪問效率,因此叢集內部的協同互動是非常重要的。
  • 在對外提供服務時,針對各臺伺服器上的處理能力進行必要的負載均衡從而合理分擔使用者請求。