Linux集群
Linux cluster,Linux集群系統(tǒng)是一種計(jì)算機(jī)系統(tǒng)芋浮, 它通過(guò)一組松散集成的計(jì)算機(jī)軟件和/或硬件連接起來(lái)高度緊密地協(xié)作完成計(jì)算工作冲甘。一個(gè)集群(cluster)就是一組計(jì)算機(jī),它們作為一個(gè)整體向用戶提供一組網(wǎng)絡(luò)資源途样。這些單個(gè)的計(jì)算機(jī)系統(tǒng)就是集群的節(jié)點(diǎn)(node)。一個(gè)理想的集群濒憋,用戶是不會(huì)意識(shí)到集群系統(tǒng)底層的節(jié)點(diǎn)的何暇。在他們看來(lái),集群是一個(gè)系統(tǒng)凛驮,而非多個(gè)計(jì)算機(jī)系統(tǒng)裆站。并且集群系統(tǒng)的管理員可以隨意增加和刪改集群系統(tǒng)的節(jié)點(diǎn)。
Linux 集群系統(tǒng)的優(yōu)點(diǎn)在于:
1黔夭、高擴(kuò)展性宏胯,管理員可自行增加或刪除集群系統(tǒng)中的節(jié)點(diǎn)。
2本姥、高可用性肩袍,當(dāng)集群中某一個(gè)節(jié)點(diǎn)失效時(shí),其負(fù)責(zé)的任務(wù)可以傳遞給其他節(jié)點(diǎn)婚惫,因此能夠有效防止單點(diǎn)失效氛赐。
3、高性能先舷,負(fù)載均衡的集群系統(tǒng)能夠同時(shí)接入更多的用戶艰管。
4、高性價(jià)比蒋川,可以使用廉價(jià)的硬件構(gòu)造出高性能的系統(tǒng)牲芋。
- 常見(jiàn)的Linux集群類型有以下:
1、負(fù)載均衡集群(Load Balancing),其實(shí)現(xiàn)方式分為硬件和軟件兩種方式缸浦,硬件上通常以F5 BIG IP夕冲、Cirtix Netscaler、A10等廠商較為著名餐济,而軟件則以lvs耘擂、nginx、haproxy等較為常見(jiàn)絮姆。
2醉冤、高可用性集群(High Availability)
3、高性能集群(High Performance)
- 系統(tǒng)擴(kuò)展類型
常見(jiàn)的系統(tǒng)擴(kuò)展類型有:
scale up(縱向擴(kuò)展):利用現(xiàn)有的硬件資源篙悯,通過(guò)增加硬件資源來(lái)滿足日益增長(zhǎng)的性能消耗的需求蚁阳。但是此方式通常來(lái)說(shuō)能提升的性能有限。
scale out(橫向擴(kuò)展):通過(guò)硬件或軟件的方式鸽照,將以往由單一服務(wù)器負(fù)責(zé)的業(yè)務(wù)需求分配到其他節(jié)點(diǎn)的服務(wù)器上進(jìn)行處理螺捐,但是從用戶的視角來(lái)看,這些服務(wù)器是單一的系統(tǒng)矮燎。而lvs集群的擴(kuò)展方式正是屬于scale out定血。
- Lvs集群調(diào)度算法
常見(jiàn)的lvs集群的調(diào)度算法分為靜態(tài)調(diào)度算法和動(dòng)態(tài)調(diào)度算法。
靜態(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)重來(lái)分配外部請(qǐng)求到集群中的節(jié)點(diǎn)既们。
sh:Source Hashing濒析,實(shí)現(xiàn)session sticky,源IP地址hash啥纸;將來(lái)自于同一個(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,典型使用場(chǎng)景是正向代理緩存場(chǎng)景中的負(fù)載均衡名船;
動(dòng)態(tài)調(diào)度算法:根據(jù)真實(shí)服務(wù)器當(dāng)前的負(fù)載狀態(tài)及調(diào)度算法進(jìn)行調(diào)度绰上。
lc:least connections,調(diào)度器通過(guò)lc調(diào)度算法動(dòng)態(tài)地將網(wǎng)絡(luò)請(qǐng)求調(diào)度到已建立連接最少的服務(wù)器上渠驼。
wlc:Weighted Least Connections蜈块,調(diào)度器通過(guò)wlc調(diào)度算法根據(jù)事先設(shè)置的權(quán)重優(yōu)化負(fù)載均衡型男。具有較高權(quán)重的服務(wù)器將承受較大比例的連接請(qǐng)求。
sed:Shortest Expection Delay百揭,在WLC基礎(chǔ)上改進(jìn)爽哎,Overhead = (activeconns+1)*256/權(quán)重
,不再考慮非活動(dòng)狀態(tài)器一,把當(dāng)前處于活動(dòng)狀態(tài)的數(shù)目+1來(lái)實(shí)現(xiàn)课锌,數(shù)目最小的,接受下次請(qǐng)求祈秕,+1的目的是為了考慮加權(quán)的時(shí)候渺贤,非活動(dòng)連接過(guò)多缺陷:當(dāng)權(quán)重過(guò)大的時(shí)候,會(huì)倒置空閑服務(wù)器一直處于無(wú)連接狀態(tài)请毛。
NQ:Never Queue Scheduling NQ志鞍,如果有臺(tái) realserver的連接數(shù)=0就直接分配過(guò)去,不需要再進(jìn)行sed運(yùn)算方仿,保證不會(huì)有一個(gè)主機(jī)很空閑固棚。
lblc:基于地址的最小連接數(shù)調(diào)度(locality-based least-connection):將來(lái)自同一個(gè)目的地址的請(qǐng)求分配給同一臺(tái)RS,此時(shí)這臺(tái)服務(wù)器是尚未滿負(fù)荷的仙蚜。否則就將這個(gè)請(qǐng)求分配給連接數(shù)最小的RS此洲,并以它作為下一次分配的首先考慮。
LBLCR:Locality-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ù)器沒(méi)有超載趟紊,將請(qǐng)求發(fā)送到該服務(wù)器氮双;若服務(wù)器超載,則按“最小連接”原則從這個(gè)集群中選出一臺(tái)服務(wù)器霎匈,將該服務(wù)器加入到服務(wù)器組中戴差,將請(qǐng)求發(fā)送到該服務(wù)器?同時(shí),當(dāng)該服務(wù)器組有一段時(shí)間沒(méi)有被修改铛嘱,將最忙的服務(wù)器從服務(wù)器組中刪除暖释,以降低復(fù)制的程度。