Linux Cluster講解

什么是集群

    集群是一組的、通過高速的計算機,它們構成了一個組,并以單一系統的模式加以管理。一個客戶與集群相互作用時,集群像是一個獨立的服務器。集群配置是用于提高可用性和可縮放性。 
    和傳統的高性能計算機技術相比,集群技術可以利用各檔次的服務器作為節點,系統造價低,可以實現很高的運算速度,完成大運算量的計算,具有較高的響應能力,能夠滿足當今日益增長的信息服務的需求。 
    而集群技術是一種通用的技術,其目的是為了解決單機運算能力的不足、IO能力的不足、提高服務的可靠性、獲得規??蓴U展能力,降低整體方案的運維成本(運行、升級、維護成本)。只要在其他技術不能達到以上的目的,或者雖然能夠達到以上的目的,但是成本過高的情況下,就可以考慮采用集群技術。

SEXETRF]R_TM0%{HZ{$P}[U.png

構建集群目的

1 提高性能 
    一些計算密集型應用,如:天氣預報、核試驗模擬等,需要計算機要有很強的運算處理能力,現有的技術,即使普通的大型機器計算也很難勝任。這時,一般都使用計算機集群技術,集中幾十臺甚至上百臺計算機的運算能力來滿足要求。提高處理性能一直是集群技術研究的一個重要目標之一。

 
2 降低成本 
    通常一套較好的集群配置,其軟硬件開銷要超過100000美元。但與價值上百萬美元的專用超級計算機相比已屬相當便宜。在達到同樣性能的條件下,采用計算機集群比采用同等運算能力的大型計算機具有更高的性價比。 

 
3 提高可擴展性 
    用戶若想擴展系統能力,不得不購買更高性能的服務器,才能獲得額外所需的CPU 和存儲器。如果采用集群技術,則只需要將新的服務器加入集群中即可,對于客戶來看,服務無論從連續性還是性能上都幾乎沒有變化,好像系統在不知不覺中完成了升級。 

 
4 增強可靠性 
    集群技術使系統在故障發生時仍可以繼續工作,將系統停運時間減到最小。集群系統在提高系統的可靠性的同時,也大大減小了故障損失。

集群的分類

LB:Load Balancer 負載均衡集群 
    負載均衡集群中有一個分發器或者叫調度器,我們將其稱之為Director,它處在多臺服務器的上面,分發器根據內部鎖定義的規則或調度方式從下面的服務器群中選擇一個以此來響應客戶端發送的請求。

HA:High Availability 高可用集群 
    高可用集群是服務的可用性比較高,當我們某臺服務器死機后不會造成我們的服務不可用。其工作模式則是將一個具有故障的服務轉交給一個正常工作的服務器,從而達到服務不會中斷。一般來說我們集群中工作在前端(分發器)的服務器都會對我們的后端服務器做一個健康檢查,如果發現我們服務器當機就不會對其在做轉發。

HP:Hight Performance 高性能集群 
    高性能的集群是當某一個任務量非常大的時候,我們做一個集群共同來完成這一個任務。這種處理方式我們稱為并行處理集群,并行處理集群是將大任務劃分為小任務,分別進行處理的機制。一般這樣的集群用來科學研究與大數據運算等方面的工作?,F在比較火的Hadoop就是使用的并行處理集群。

系統的擴展方式

Scale UP:向上擴展 
    將服務器的配置升級 
Scale Out:向外擴展 
    增加多臺服務器

負載均衡的實現

硬件 
    F5 公司的 BIG-IP系列、Citrix 公司的 NetScaler系列、A10 公司的 AX系列 
軟件 
    四層:LVS(Linux VirtualServer)注:國人開發的、七層:Nginx,HAProxy

負載均衡方案介紹

1.HTTP 重定向負載均衡

E]FZ)L@GZS[@V_V94][PH51.png

這種負載均衡方式僅適合WEB 服務器。用戶發出請求時,負載均衡服務器會根據HTTP請求,重新計算出實際的WEB服務器地址,通過302重定向相應發送給用戶瀏覽器。用戶瀏覽器再根據302響應信息,對實際的WEB服務器發出請求。HTTP重定向方案有點是比較簡單,缺點是性能比較差,需要2次請求才能返回實際結果,還有就是僅適合HTTP服務器使用。

2.DNS 域名解析負載均衡

L`UP$TWQ]OWKRK]S`MV0POR.png

在DNS中存儲了一個域名的多個主機地址,每次域名解析請求,都可以根據負載均衡算法返回一個不同的IP地址。這樣多個WEB服務器就構成了一個集群,并由DNS服務器提供了負載均衡服務。DNS域名解析負載均衡的優點是由DNS來完成負載均衡工作,服務本身不用維護負載均衡服務器的工作。缺點也是,由于負載均衡服務器不是自己維護,沒法做精細控制,而且DNS在客戶端往往帶有緩存,服務器的變更很難及時反映到客戶端上。

3.反向代理負載均衡

TRG9BO[8M~MV%GESP9[X)KX.png

反向代理服務器位于實際的服務器之前,他能夠緩存服務器響應,加速訪問,同時也啟到了負載均衡服務器的效果。反向代理服務器解析客戶端請求,根據負載均衡算法轉發到不同的后臺服務器上。用戶和后臺服務器之間不再有直接的鏈接。請求,響應都由反向代理服務器進行轉發。優點是和負載均衡服務集成在一起,部署簡單。缺點是所有的請求回應都需要經過反向代理服務器。其本身可能會成為性能的瓶頸。著名的 Nginx服務器就可以部署為反向代理服務器,實現WEB 應用的負載均衡。上面的三種都是工作在OSI網絡模型中的應用層,我們可以統稱為應用層負載均衡(七層負載均衡)。下面介紹的幾種工作在OSI網絡模型中的4層以及4層以下(四層負載均衡),解決方案也具有更大的通用性。

4.IP負載均衡

66N_KW2KZ_W$8[@RIO)GVXF.png

用戶請求包到達負載均衡服務器114.100.20.200后,負載均衡服務器在操作系統內核層獲取網絡數據包,根據負載均衡算法獲取真實后臺服務器地址192.168.1.1, 然后將數據包的目標地址改為192.168.1.1, 轉發給內部服務器。整個過程都在內核層進行處理。收到192.168.1.1的響應包之后,會更改響應包的SRC IP, 轉發給客戶端用戶。采用IP層負載均衡算法,全部處理過程都在內核層(Ring 0)進行。和七層負載均衡相比,具有更好的性能。但是由于所有的響應包都要經過負載均衡服務器,負載均衡服務器的網卡帶寬,很容易成為系統的瓶頸,如果能夠讓響應包不經過負載均衡服務器,就可以極大的提升整個負載均衡服務器的服務能力。我們下面介紹的數據鏈路層負載均衡,就具有這個能力。

5.數據鏈路層負載均衡

[0%PH%W)B2)KFH}}IZO41Y4.png

數據鏈路層負載均衡,顧名思義,就是工作在TCP/IP協議最底層的數據鏈路層,進行負載均衡。我們常用的以太網中,在這一層主要采用數據幀進行通信,每個網卡都具有唯一的MAC地址,數據幀用MAC地址來標識數據的來源與目的地。數據鏈路層負載均衡通過修改數據包的MAC地址,實現負載均衡。

這種數據傳輸方式又稱為三角傳輸,負載均衡數據分發過程中不修改IP地址,只修改目的MAC地址,通過配置真實物理服務器集群所有機器虛擬IP和負載均衡服務器IP一致,從而達到不修改數據包的源地址和目的地址就可以進行數據分發的目的,由于實際處理請求的真實物理服務器IP和數據請求目的IP一致,不需要通過負載均衡服務器進行地址交換,可將響應數據包直接返回給用戶,避免負載均衡服務器網卡帶寬成為瓶頸。這種負載均衡方式又稱之為直接路由方式(DR).

如上圖所示,用戶請求到達負載均衡服務器114.100.20.200后,負載均衡服務器將數據包的目的MAC地址更改為00:1e:ec:bc:5e:03,并不修改數據包目的IP,由于服務器集群所有服務器的虛擬IP地址和負載均衡服務器IP地址一致,因此數據可以正常傳輸到達MAC地址為00:1e:ec:bc:5e:03的機器上,該服務器處理完之后,將響應數據包發送到網關服務器,網關服務器直接將數據包發送給用戶,響應數據不需要通過負載均衡服務器,這樣就避免了負載均衡服務器成為傳輸瓶頸的可能。

數據鏈路層負載均衡是目前使用最廣泛的一種負載均衡方式。著名的負載均衡開源產品LVS(Linux Virtual Server),同時支持上面的IP負載均衡和數據鏈路層負載均衡。是學習負載均衡技術必須了解的產品?;跀祿溌穼拥呢撦d均衡雖然有非常好的性能,但是對網絡拓撲也有比較大的限制,負載均衡服務器和后臺服務器必須處于同一網絡環境中才可以。

原創文章,作者:zhai796898,如若轉載,請注明出處:http://www.www58058.com/58204

(1)
zhai796898zhai796898
上一篇 2016-11-07
下一篇 2016-11-07

相關推薦

  • Awk 高級應用

                              Awk 簡介   Awk 是一種變成語言,用于在Linux/UNIX下對文本和數據進行掃描與處理,數據可以來自標準輸入,文件 ,管道。Awk分別代表其作者的姓…

    2017-07-17
  • 邏輯卷管理

    1.相關命令:lsblk、fdisk、gdisk、parted、mkfs、mke2fs、blkid、e2label、findfs、tune2fs、dumpe2fs、fsck、e2fsck、mount、swapon、swapoff、mkisofs、wodim、free、df、du、dd。 2.列出塊設備:lsblk    &nbs…

    Linux干貨 2016-09-01
  • Linux基礎知識之GUN awk

    awk:報告生成器,格式化文本輸出    基本用法:    gawk [options] 'program' FILE …    options:     &…

    Linux干貨 2016-09-20
  • 使用CDN后,PHP如何獲取用戶的真是IP?

    在統計訪問日志參數的時候IP是一個重要的參數,所有索取客戶端的IP就至關重要。 在logformat配置中有兩個變量是獲取IP地址的: remoteaddr:客戶端IP xforwardedfor:客戶端的IP 從上面來看兩個都是客戶端IP,那這兩個變量有什么不同? 首先當你訪問某個網站,假設你中間不經過任何代理,那么webserver就會把remotead…

    Linux干貨 2015-12-21
  • 第四周小練習

    復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 cp -r /etc/skel /home/tuser1 chmod -R go= /home/tuser1 編輯/etc/group文件,添加組hadoop echo&…

    Linux干貨 2016-11-29
  • linux中的權限和ACL

    linux中權限詳解和ACL

    2017-11-18
欧美性久久久久