Linux集群類型、系統(tǒng)擴(kuò)展方式及調(diào)度方法

一、集群概念:

Cluster:

計(jì)算機(jī)集合,為解決某個(gè)特定問題組合起來形成的單個(gè)系統(tǒng);

集群概念
  • 集群(Cluster)是由兩臺(tái)或多臺(tái)節(jié)點(diǎn)機(jī)(服務(wù)器)構(gòu)成的一種松散耦合的計(jì)算節(jié)點(diǎn)集合,為用戶提供網(wǎng)絡(luò)服務(wù)或應(yīng)用程序(包括數(shù)據(jù)庫、Web服務(wù)和文件服務(wù)等)的單一客戶視圖,同時(shí)提供接近容錯(cuò)機(jī)的故障恢復(fù)能力。
  • 集群系統(tǒng)一般通過兩臺(tái)或多臺(tái)節(jié)點(diǎn)服務(wù)器系統(tǒng)通過相應(yīng)的硬件及軟件互連,每個(gè)群集節(jié)點(diǎn)都是運(yùn)行其自己進(jìn)程的獨(dú)立服務(wù)器。這些進(jìn)程可以彼此通信,對(duì)網(wǎng)絡(luò)客戶機(jī)來說就像是形成了一個(gè)單一系統(tǒng),協(xié)同起來向用戶提供應(yīng)用程序、系統(tǒng)資源和數(shù)據(jù)。除了作為單一系統(tǒng)提供服務(wù),集群系統(tǒng)還具有恢復(fù)服務(wù)器級(jí)故障的能力。
  • 集群系統(tǒng)還可通過在集群中繼續(xù)增加服務(wù)器的方式,從內(nèi)部增加服務(wù)器的處理能力,并通過系統(tǒng)級(jí)的冗余提供固有的可靠性和可用性。

二、Linux Cluster類型:

1、LB:Load Balancing,負(fù)載均衡;

  • 提供和節(jié)點(diǎn)個(gè)數(shù)成正比的負(fù)載能力,這種集群很適合提供大訪問量的Web服務(wù)。負(fù)載均衡集群往往也具有一定的高可用性特點(diǎn)。Turbolinux Cluster Server、Linux Virtual Server都屬于負(fù)載均衡集群。主流架構(gòu)Nginx+Keepalived(利于動(dòng)靜分離)、LVS+Keepalived。

2、HA:High Availiablity,高可用集群;

  • 一般是指當(dāng)集群中有某個(gè)節(jié)點(diǎn)失效的情況下,其上的任務(wù)會(huì)自動(dòng)轉(zhuǎn)移到其他正常的節(jié)點(diǎn)上。還指可以將集群中的某節(jié)點(diǎn)進(jìn)行離線維護(hù)再上線,該過程并不影響整個(gè)集群的運(yùn)行。計(jì)思想就是要最大限度地減少服務(wù)中斷時(shí)間。這類集群中比較著名的有Turbolinux TurboHA、Heartbeat、Kimberlite等。

  • 高可用集群一般是通過系統(tǒng)的可靠性(reliability)和系統(tǒng) 的可維護(hù)性(maintainability)來衡量的。通常用平均無故障時(shí)間(MTTF)來衡量系統(tǒng)的可靠性,用平均維護(hù) 時(shí)間(MTTR)來衡量系統(tǒng)的可維護(hù)性。因此,一個(gè)高可用集群服務(wù)可以這樣來定義:

  • A=MTBF平均故障間隔時(shí)間/(MTBF平均故障間隔時(shí)間+MTTR平均恢復(fù)時(shí)間)

(0,1):90%, 95%, 99%, 99.5%, 99.9%, 99.99%, 99.999%, 99.9999%
一般高可用集群的標(biāo)準(zhǔn)有如下幾種:
99%:表示 一年不在線時(shí)間不超過87小時(shí)
99.9% :表示一年不在線時(shí)間不超過8.7小時(shí)
99.99%: 表示一年不在線時(shí)間不超過1小時(shí)
99.999% :表示一年不在線時(shí)間不超過3-5分鐘

3、HP:High Performance,高性能集群;

HPCC高性能計(jì)算集群也稱為DAS(數(shù)據(jù)分析超級(jí)計(jì)算機(jī))

4、分布式系統(tǒng)集群:

  • 分布式存儲(chǔ):分布式存儲(chǔ)是一種數(shù)據(jù)存儲(chǔ)技術(shù),通過網(wǎng)絡(luò)使用企業(yè)中的每臺(tái)機(jī)器上的磁盤空間,在元數(shù)據(jù)服務(wù)器做索引,并將這些分散的存儲(chǔ)資源構(gòu)成一個(gè)虛擬的存儲(chǔ)設(shè)備,數(shù)據(jù)分散的存儲(chǔ)在企業(yè)的各個(gè)角落。

  • 分布式計(jì)算:分布式計(jì)算是一種計(jì)算方法,和集中式計(jì)算是相對(duì)的。隨著計(jì)算技術(shù)的發(fā)展,有些應(yīng)用需要非常巨大的計(jì)算能力才能完成,如果采用集中式計(jì)算,需要耗費(fèi)相當(dāng)長的時(shí)間來完成。分布式計(jì)算將該應(yīng)用分解成許多小的部分,分配給多臺(tái)計(jì)算機(jī)進(jìn)行處理。這樣可以節(jié)約整體計(jì)算時(shí)間,大大提高計(jì)算效率。

三、系統(tǒng)擴(kuò)展類型

常見的系統(tǒng)擴(kuò)展類型有:

  • scale up(向上擴(kuò)展):利用現(xiàn)有的硬件資源,通過增加硬件資源來滿足日益增長的性能消耗的需求,但是此方式通常來說能提升的性能有限。

  • scale out(向外擴(kuò)展):通過硬件或軟件的方式,將以往由單一服務(wù)器負(fù)責(zé)的業(yè)務(wù)需求分配到其他節(jié)點(diǎn)的服務(wù)器上進(jìn)行處理,但是從用戶的視角來看,這些服務(wù)器是單一的系統(tǒng)。而lvs集群的擴(kuò)展方式正是屬于scale out。

四、負(fù)載均衡集群實(shí)現(xiàn):

1、硬件設(shè)備實(shí)現(xiàn)負(fù)載均衡:
  • F5公司的 Big-IP產(chǎn)品: 性能好價(jià)格高
  • Citrix公司的 Netscaler產(chǎn)品
  • A10 公司的A10產(chǎn)品
2、軟件實(shí)現(xiàn)負(fù)載均衡:
  • lvs:Linux Virtual Server虛擬服務(wù),不處理服務(wù),而是轉(zhuǎn)到其他地方處理
  • nginx偽四層調(diào)度
  • haproxy
  • ats:apache traffic server 雅虎公司的開源項(xiàng)目
  • perlbal
  • pound
3、基于工作的協(xié)議層次劃分:
(1)傳輸層調(diào)度器(通用):(DPORT)
  • lvs:基于udp、tcp調(diào)度
  • nginx:stream模塊用來模擬四層調(diào)度
  • haproxy:mode tcp模塊用來模擬四層調(diào)度
(2)應(yīng)用層調(diào)度器(專用):(自定義的請(qǐng)求模型分類)

proxy server:

  • http:nginx(使用http的模塊), httpd, haproxy(使用http的模塊)
  • fastcgi:nginx, httpd, ...
  • mysql:ProxySQL, ...
4、集群的站點(diǎn)指標(biāo):
  • PV:Page View頁面瀏覽量
  • UV:Unique Vistor單獨(dú)瀏覽者
5、集群的會(huì)話保持問題:

為了對(duì)訪問用戶的追蹤

  • (1) session sticky會(huì)話綁定

Source IP-----基于原ip識(shí)別原用戶
Cookie----基于原Cookie識(shí)別原用戶

  • (2) session replication;復(fù)制集群

session cluster會(huì)話集群

(3) session server指定一臺(tái)專門儲(chǔ)存會(huì)話的服務(wù)器

五、Lvs集群調(diào)度算法

  • 常見的lvs集群的調(diào)度算法分為靜態(tài)調(diào)度算法和動(dòng)態(tài)調(diào)度算法。
1、 靜態(tài)調(diào)度算法:根據(jù)算法本身進(jìn)行調(diào)度;

rr:roundrobin,輪詢,調(diào)度器將外部請(qǐng)求輪流分配到集群中的節(jié)點(diǎn)中。
wrr:Weighted RR,加權(quán)輪詢,調(diào)度器根據(jù)事先設(shè)置的權(quán)重來分配外部請(qǐng)求到集群中的節(jié)點(diǎn)。
sh:Source Hashing,實(shí)現(xiàn)session sticky,源IP地址hash;將來自于同一個(gè)IP地址的請(qǐng)求始終發(fā)往第一次挑中的真實(shí)服務(wù)器Ip,從而實(shí)現(xiàn)會(huì)話綁定;
dh:Destination Hashing;目標(biāo)地址哈希,將發(fā)往同一個(gè)目標(biāo)地址的請(qǐng)求始終轉(zhuǎn)發(fā)至第一次挑中的真實(shí)服務(wù)器IP,典型使用場景是正向代理緩存場景中的負(fù)載均衡;

2、動(dòng)態(tài)算法:

前端的調(diào)度器會(huì)根據(jù)后端真實(shí)服務(wù)器的實(shí)際連接情況來分配請(qǐng)求

(1)、LC:最少連接(Least Connections)

調(diào)度器通過“最少連接”調(diào)度算法動(dòng)態(tài)的將網(wǎng)絡(luò)請(qǐng)求調(diào)度到已經(jīng)建立連接最少的服務(wù)器上,如果集群的真實(shí)服務(wù)器具有相近的系統(tǒng)性能,采用“最小連接”調(diào)度算法可以更好地均衡負(fù)載

(2)、WCL:加權(quán)最小連接(Weighted Least Connections)

在集群系統(tǒng)中的服務(wù)器性能差異較大的情況下,調(diào)度器采用加權(quán)最小連接的調(diào)度算法來優(yōu)化負(fù)載均衡,具有較高權(quán)值的服務(wù)器將承受較大比例的活動(dòng)負(fù)載連接,

(3)、SED:最短延遲調(diào)度(Shortest Expected Delay)

在WCL的基礎(chǔ)上改進(jìn),Overhead=(ACTIVE+1)*256/加權(quán),不再考慮非活動(dòng)狀態(tài),把當(dāng)前處于活動(dòng)狀態(tài)的數(shù)目+1來實(shí)現(xiàn),數(shù)目最小的接受下次請(qǐng)求,+1的目的是為為了考慮加權(quán)的時(shí)候,非活動(dòng)連接過多的缺陷,當(dāng)權(quán)限過大的時(shí)候,會(huì)導(dǎo)致空閑服務(wù)器一直處于無連接的狀態(tài)

(4)、NQ:永不排隊(duì)/最少列隊(duì)調(diào)度(NEVER Queue Scheduling)

無需列隊(duì),如果有臺(tái)realserver的連接數(shù)=0直接就分配過去,不需要進(jìn)行sed運(yùn)算,保證不會(huì)有一個(gè)主機(jī)很空閑,在SED的基礎(chǔ)上不論+幾,第二次一定給下一個(gè),不考慮非活動(dòng)連接,才會(huì)用NQ,SED要考慮活動(dòng)狀態(tài)連接,對(duì)于DNS的UDP不需要考慮非活動(dòng)連接,而http的處于保持狀態(tài)就需要考慮非活動(dòng)連接給服務(wù)器的壓力

(5)、LBLC:基于局部性的最少連接(localibty-Based Least Connections)

基于局部性的最少連接調(diào)度算法是針對(duì)目標(biāo)IP地址的負(fù)載均衡,目前主要運(yùn)行在Cache集群系統(tǒng)。該算法根據(jù)請(qǐng)求的目標(biāo)IP地址找出該目標(biāo)IP地址最近使用的服務(wù)器,若該服務(wù)器是可用而且沒有超載,將請(qǐng)求發(fā)送到該服務(wù)器,若i服務(wù)器不存在,或者該服務(wù)器超載且有服務(wù)器處于一半的工作負(fù)載,則用最少連接的原則選出一個(gè)可用的服務(wù)器,將請(qǐng)求發(fā)送到該服務(wù)器

(6)、LBLCR:帶復(fù)制性的基于局部性最少連接(Local-Based Least Connections With Replication)

帶復(fù)制性的基于局部性最少連接調(diào)度算法也是針對(duì)目標(biāo)IP地址的負(fù)載均衡,目前主要用在Cache集群系統(tǒng)。它和LBLC算法不同的是它要維護(hù)從一個(gè)目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護(hù)從一個(gè)目標(biāo)IP到一臺(tái)服務(wù)器的映射,該算法根據(jù)一請(qǐng)求的目標(biāo)IP地址找出該目標(biāo)IP地址對(duì)應(yīng)的服務(wù)器組,按照最小連接原則服務(wù)器組中選一臺(tái)服務(wù)器,若服務(wù)器沒有超載,將請(qǐng)求發(fā)送到該服務(wù)器,若服務(wù)器超載,則按照最小連接原則從這個(gè)集群中選出一臺(tái)服務(wù)器,將該服務(wù)器加到服務(wù)組中,將請(qǐng)求發(fā)送到該服務(wù)器,同時(shí)當(dāng)該組服務(wù)器有一段時(shí)間沒有被修改,將最忙的服務(wù)器從服務(wù)組刪除,以降低復(fù)制的程度。

參考資料:https://blog.csdn.net/who__are__you_/article/details/79006796

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容