1. 程式人生 > >淺析Linux服務器集群系統技術

淺析Linux服務器集群系統技術

inf 備份 執行 建設 chan abi cif 系統 open

淺析Linux服務器集群系統技術

目錄

前言

常用的服務器集群

集群系統的優勢

LVS集群的通用體系結構

為什麽使用層次的體系結構

為什麽是共享存儲

可伸縮Web服務

前言

總結兩篇技術文章,努力學習!

http://www.linuxvirtualserver.org/zh/lvs2.html
https://www.cnblogs.com/happyPawpaw/p/5250651.html

常用的服務器集群

一種是將備份服務器連接在主服務器上,當主服務器發生故障時,備份服務器才投入運行,把主服務器上所有任務接管過來。
另一種方法是將多臺服務器連接,這些服務器一起分擔同樣的應用和數據庫計算任務,改善關鍵大型應用的響應時間。同時,每臺服務器還承擔一些容錯任務,一旦某臺服務器出現故障時,系統可以在系統軟件的支持下,將這臺服務器
與系統隔離,並通過各服務器的負載轉嫁機制完成新的負載分配。PC服務器中較為常見的是兩臺服務器的集群,UNIX系統可支持8臺服務器的集群系統,康柏的專用系統OpenVMS可支持多達96臺服務器的集群系統。 在集群系統中,所有的計算機擁有一個共同的名稱,集群內任一系統上運行的服務可被所有的網絡客戶所使用。集群必須可以協調管理各分離組件的錯誤和失敗,並可透明的向集群中加入組件。用戶的公共數據被放置到了共享的磁
盤櫃中,應用程序被安裝到了所有的服務器上,也就是說,在集群上運行的應用需要在所有的服務器上安裝一遍。當集群系統在正常運轉時,應用只在一臺服務器上運行,並且只有這臺服務器才能操縱該應用在共享磁盤櫃上的數據
區,其它的服務器監控這臺服務器,只要這臺服務器上的應用停止運行(無論是硬件損壞、操作系統死機、應用軟件故障,還是人為誤操作造成的應用停止運行),其它的服務器就會接管這臺服務器所運行的應用,並將共享磁盤櫃
上的相應數據區接管過來。其接管過程如下所示(以應用A為例): 1.應用A正常工作時; 2.應用A停止工作後,其它的備用服務器將該應用接管過來。 具體接管過程分三部執行: a.系統接管。 b.加載應用。 c.客戶端連接。

  

集群系統的優勢

1.解決所有的服務器硬件故障
當某一臺服務器出現任何故障,如:硬盤、內存、CPU、主板、I/O板以及電源故障,運行在這臺服務器上的應用以及其他計算資源通過網絡將任務分配到集群的其他正常的節點上,而不影響正常應用或者計算.
.解決軟件系統問題
我們知道,在計算機系統中,用戶所使用的是應用程序和數據,而應用系統運行在操作系統之上,操作系統又運行在服務器上。這樣,只要應用系統、操作系統、服務器三者中的任何一個出現故障,系統實際上就停止了向客戶端提
供服務,比如我們常見的軟件死機,就是這種情況之一,盡管服務器硬件完好,但服務器仍舊不能向客戶端提供服務。而集群的最大優勢在於對故障服務器的監控是基於應用的,也就是說,只要服務器的應用停止運行,其它的相關
服務器就會接管這個應用,而不必理會應用停止運行的原因是什麽。 2.解決人為失誤造成的應用系統停止工作 例如,當管理員對某臺服務器操作不當導致該服務器停機,因此運行在這臺服務器上的應用系統也就停止了運行。由於集群是對應用進行監控,因此其它的相關服務器就會接管這個應用。 不足之處 集群系統的不足之處在於: 集群中的應用只在一臺服務器上運行,如果這個應用出現故障,其它的某臺服務器會重新啟動這個應用,接管位於共享磁盤櫃上的數據區,進而使應用重新正常運轉。我們知道整個應用的接管過程大體需要三個步驟:偵測並確認故
障、後備服務器重新啟動該應用、接管共享的數據區。因此在切換的過程中需要花費一定的時間,原則上根據應用的大小不同切換的時間也會不同,越大的應用切換的時間越長。

  

LVS集群的通用體系結構

LVS集群采用IP負載均衡技術和基於內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服 務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整
個服務器集群的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序。 為此,在設計時需要考慮系統的透明性、可伸縮性、高可用性和易管理性。一般來說,LVS集群采用三層結構,其體系結構如圖1所示,三層主要組成部分為: 負載調度器(load balancer),它是整個集群對外面的前端機,負責將客戶的請求發送到一組服務器上執行,而客戶認為服務是來自一個IP地址(我們可稱之為虛擬IP地址)上的。 服務器池(server pool),是一組真正執行客戶請求的服務器,執行的服務有WEB、MAIL、FTP和DNS等。 共享存儲(shared storage),它為服務器池提供一個共享的存儲區,這樣很容易使得服務器池擁有相同的內容,提供相同的服務。

  

技術分享圖片

技術分享圖片

調度器是服務器集群系統的唯一入口點(Single Entry Point),它可以采用IP負載均衡技術、基於內容請求分發技術或者兩者相結合。在IP負載均衡技術中,需要服務器池擁有相同的內容提供相同的服務。當 客戶請求到達
時,調度器只根據服務器負載情況和設定的調度算法從服務器池中選出一個服務器,將該請求轉發到選出的服務器,並記錄這個調度;當這個請求的其 他報文到達,也會被轉發到前面選出的服務器。在基於內容請求分發技術中
,服務器可以提供不同的服務,當客戶請求到達時,調度器可根據請求的內容選擇服務器 執行請求。因為所有的操作都是在Linux操作系統核心空間中將完成的,它的調度開銷很小,所以它具有很高的吞吐率。 服務器池的結點數目是可變的。當整個系統收到的負載超過目前所有結點的處理能力時,可以在服務器池中增加服務器來滿足不斷增長的請求負載。對大多數 網絡服務來說,請求間不存在很強的相關性,請求可以在不同的結點上
並行執行,所以整個系統的性能基本上可以隨著服務器池的結點數目增加而線性增長。 共享存儲通常是數據庫、網絡文件系統或者分布式文件系統。服務器結點需要動態更新的數據一般存儲在數據庫系統中,同時數據庫會保證並發 訪問時數據的一致性。靜態的數據可以存儲在網絡文件系統(如NFS/CIFS)中,但
網絡文件系統的伸縮能力有限,一般來說,NFS/CIFS服務器只能 支持3~6個繁忙的服務器結點。對於規模較大的集群系統,可以考慮用分布式文件系統,如AFS[1]、GFS[2.3]、Coda[4]和 Intermezzo[5]等。分布式文件系
統可為各服務器提供共享的存儲區,它們訪問分布式文件系統就像訪問本地文件系統一樣,同時分布式文件系統可提 供良好的伸縮性和可用性。此外,當不同服務器上的應用程序同時讀寫訪問分布式文件系統上同一資源時,應用
程序的訪問沖突需要消解才能使得資源處於一致狀 態。這需要一個分布式鎖管理器(Distributed Lock Manager),它可能是分布式文件系統內部提供的,也可能是外部的。開發者在寫應用程序時,可以使用分布式鎖管理器
來保證應用程序在不同結點上並發訪 問的一致性。 負載調度器、服務器池和共享存儲系統通過高速網絡相連接,如100Mbps交換網絡、Myrinet和Gigabit網絡等。使用高速的網絡,主要為避免當系統規模擴大時互聯網絡成為整個系統的瓶頸。 Graphic Monitor是為系統管理員提供整個集群系統的監視器,它可以監視系統的狀態。Graphic Monitor是基於瀏覽器的,所以無論管理員在本地還是異地都可以監測系統的狀況。為了安全的原因,瀏覽器要通過HTTPS
(Secure HTTP)協議和身份認證後,才能進行系統監測,並進行系統的配置和管理。

  

為什麽使用層次的體系結構

層次的體系結構可以使得層與層之間相互獨立,每一個層次提供不同的功能,在一個層次可以重用不同的已有軟件。例如,調度器層提供了負載平衡、可伸縮 性和高可用性等,在服務器層可以運行不同的網絡服務,如Web、
Cache、Mail和Media等,來提供不同的可伸縮網絡服務。明確的功能劃分和清晰 的層次結構使得系統容易建設,以後整個系統容易維護,而且系統的性能容易被擴展。

  

為什麽是共享存儲

共享存儲如分布式文件系統在這個LVS集群系統是可選項。當網絡服務需要有相同的內容,共享存儲是很好的選擇,否則每臺服務器需要將相同的 內容復制到本地硬盤上。當系統存儲的內容越多,這種無共享結構
(Shared-nothing Structure)的代價越大,因為每臺服務器需要一樣大的存儲空間,任何的更新需要涉及到每臺服務器,系統的維護代價會非常高。 共享存儲為服務器組提供統一的存儲空間,這使得系統的內容維護工作比較輕松,如Webmaster只需要更新共享存儲中的頁面,對所有 的服務器都有效。分布式文件系統提供良好的伸縮性和可用性,當分布式文件系統的存儲空間
增加時,所有服務器的存儲空間也隨之增大。對於大多數 Internet服務來說,它們都是讀密集型(Read-intensive)的應用,分布式文件系統在每臺服務器使用本地硬盤作Cache(如 2Gbytes的空間),可以使得訪問分布式
文件系統本地的速度接近於訪問本地硬盤。 此外,存儲硬件技術的發展也促使從無共享的集群向共享存儲的集群遷移。存儲區域網(Storage Area Networks)技術解決了集群的每個結點可以直接連接/共享一個龐大的硬盤陣列,硬件廠商也提供多種硬盤共享技術,
如光纖通道(Fiber Channel)、共享SCSI(Shared SCSI)。InfiniBand是一個通用的高性能I/O規範,使得存儲區域網中以更低的延時傳輸I/O消息和集群通訊消息,並且提供很好的伸縮性。 InfiniBand得到絕大多數
的大廠商的支持,如Compaq、Dell、Hewlett-Packard、IBM、Intel、Microsoft 和SUN Microsystems等,它正在成為一個業界的標準。這些技術的發展使得共享存儲變得容易,規模生產也會使得成本逐步降低。

  

可伸縮Web服務

技術分享圖片

基於LVS的Web集群的體系結構如圖2所示:第一層是負載調度器,一般采用IP負載均衡技術,可以使得整個系統有較高的吞吐率;第二層是 Web服務器池,在每個結點上可以分別運行HTTP服務或HTTPS服務、或者兩者都運行;
第三層是共享存儲,它可以是數據庫,可以是網絡文件系統或分布 式文件系統,或者是三者的混合。集群中各結點是通過高速網絡相連接的。 對於動態頁面(如PHP、JSP和ASP等),需要訪問的動態數據一般存儲在數據庫服務器中。數據庫服務運行在獨立的服務器上,為所有Web服務器 共享。無論同一Web服務器上多個動態頁面訪問同一數據,還是不同Web服務器上
多個動態頁面訪問同一數據,數據庫服務器有鎖機制使得這些訪問有序地進 行,從而保證數據的一致性。 對於靜態的頁面和文件(如HTML文檔和圖片等),可以存儲在網絡文件系統或者分布式文件系統中。至於選擇哪一種,看系統的規模和需求 而定。通過共享的網絡文件系統或者分布式文件系統,Webmaster可以看到統一的文檔
存儲空間,維護和更新頁面比較方便,對共享存儲中頁面的修改對所 有的服務器都有效。 在這種結構下,當所有服務器結點超載時,管理員可以很快地加入新的服務器結點來處理請求,而無需將Web文檔等復制到結點的本地硬盤上。 有些Web服務可能用到HTTP Cookie,它是將數據存儲在客戶的瀏覽器來追蹤和標識客戶的機制。使用HTTP Cookie後,來同一客戶的不同連接存在相關性,這些連接必須被發送到同一Web服務器。一些Web服務使用安全的
HTTPS協議,它是HTTP協議加 SSL(Secure Socket Layer)協議。另有些Web服務可能使用安全的HTTPS協議,它是HTTP協議加SSL協議。當客戶訪問HTTPS服務(HTTPS的缺省端口為 443)時,會先建立一個SSL連接,
來交換對稱公鑰加密的證書並協商一個SSL Key,來加密以後的會話。在SSL Key的生命周期內,後續的所有HTTPS連接都使用這個SSL Key,所以同一客戶的不同HTTPS連接也存在相關性。針對這些需要,IPVS調度器提供了
持久服務的功能,它可以使得在設定的時間內,來自同一IP地 址的不同連接會被發送到集群中同一個服務器結點,可以很好地解決客戶連接的相關性問題。

  

淺析Linux服務器集群系統技術