?集群
計(jì)算機(jī)集群簡(jiǎn)稱集群是一種計(jì)算機(jī)系統(tǒng),它通過(guò)一組松散集成的計(jì)算機(jī)軟件或硬件連接起來(lái)高度緊密地協(xié)作完成計(jì)算工作。在某種意義上,他們可以被看作是一臺(tái)計(jì)算機(jī)。集群系統(tǒng)中的單個(gè)計(jì)算機(jī)通常稱為節(jié)點(diǎn),通常通過(guò)局域網(wǎng)連接,但也有其它的可能連接方式。集群計(jì)算機(jī)通常用來(lái)改進(jìn)單個(gè)計(jì)算機(jī)的計(jì)算速度和可靠性。集群就是一組獨(dú)立的計(jì)算機(jī),通過(guò)網(wǎng)絡(luò)連接組合成一個(gè)組合來(lái)共同完一個(gè)任務(wù)。
為什么要使用集群?
高性能performance:一些需要很強(qiáng)的運(yùn)算處理能力比如天氣預(yù)報(bào),核試驗(yàn)等。這就不是幾臺(tái)計(jì)算機(jī)能夠搞定的。這需要上千臺(tái)一起來(lái)完成這個(gè)工作的
價(jià)格有效性:通常一套系統(tǒng)集群架構(gòu),只需要幾臺(tái)或數(shù)十臺(tái)服務(wù)器主機(jī)即可,與動(dòng)則上百萬(wàn)的專用超級(jí)計(jì)算機(jī)相比具有更高的性價(jià)比
可伸縮性:當(dāng)服務(wù)器負(fù)載壓力增長(zhǎng)的時(shí)候,系統(tǒng)能夠擴(kuò)展來(lái)滿足需求,且不降低服務(wù)質(zhì)量
高可用性:盡管部分硬件和軟件發(fā)生故障,整個(gè)系統(tǒng)的服務(wù)必須是7*24小時(shí)運(yùn)行的
集群分類:
負(fù)載均衡集群(Loadbalancingclusters)簡(jiǎn)稱LBC
高可用性集群(High-availabilityclusters)簡(jiǎn)稱HAC
高性能計(jì)算集群(High-perfomanceclusters)簡(jiǎn)稱HPC
網(wǎng)格計(jì)算(Gridcomputing)
負(fù)責(zé)均衡集群的作用:
提供一種廉價(jià)、有效、透明的方法,來(lái)擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的負(fù)載帶寬、增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性
把單臺(tái)計(jì)算機(jī)無(wú)法承受的大規(guī)模的并發(fā)訪問(wèn)或數(shù)據(jù)流量分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備上分別處理,減少用戶等待響應(yīng)的時(shí)間,提升用戶體驗(yàn)
單個(gè)重負(fù)載的運(yùn)算分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備上做并行處理,每個(gè)節(jié)點(diǎn)設(shè)備處理結(jié)束后,將結(jié)果匯總,返回給用戶,系統(tǒng)處理能力得到大幅度提高
7*24小時(shí)的服務(wù)保證,任意一個(gè)或多個(gè)設(shè)備節(jié)點(diǎn)設(shè)備宕機(jī),不會(huì)影響到業(yè)務(wù)。在負(fù)載均衡集群中,所有計(jì)算機(jī)節(jié)點(diǎn)都應(yīng)該提供相同的服務(wù),集群負(fù)載均衡獲取所有對(duì)該服務(wù)的入站請(qǐng)求
負(fù)載均衡設(shè)備:
常用的負(fù)載均衡開(kāi)源軟件有 Nginx、LVS、Haproxy
商業(yè)的硬件負(fù)載均衡設(shè)備Cisco的 LocalDirector、F5 的 Big/IP 和 Alteon 的 ACEDirector
LVS
LVS (Linux Virtual Server) 即 Linux 虛擬服務(wù)器,將多臺(tái)虛擬主機(jī)組織起來(lái)滿足同一個(gè)需求。是一個(gè)虛擬的服務(wù)器集群系統(tǒng)。本項(xiàng)目在 1998 年 5 月由章文嵩博士成立,是中國(guó)國(guó)內(nèi)最早出現(xiàn)的自由軟件項(xiàng)目之一?,F(xiàn)在 LVS 已經(jīng)是 Linux 內(nèi)核標(biāo)準(zhǔn)的一部分。使用 LVS 可以達(dá)到的技術(shù)目標(biāo)是:通過(guò) LVS 達(dá)到的負(fù)載均衡技術(shù)和 Linux 操作系統(tǒng)實(shí)現(xiàn)一個(gè)高性能高可用的 Linux 服務(wù)器集群,它具有良好的可靠性、可擴(kuò)展性和可操作性。從而以低廉的成本實(shí)現(xiàn)最優(yōu)的性能。LVS 是一個(gè)實(shí)現(xiàn)負(fù)載均衡集群的開(kāi)源軟件項(xiàng)目,LVS架構(gòu)從邏輯上可分為 調(diào)度層、Server集群層 和 共享存儲(chǔ)。
LVS的組成
ipvs(ip virtual server):一段代碼工作在內(nèi)核空間,叫ipvs,是真正生效實(shí)現(xiàn)調(diào)度的代碼。
ipvsadm:另外一段是工作在用戶空間,叫ipvsadm,負(fù)責(zé)為ipvs內(nèi)核框架編寫規(guī)則,定義誰(shuí)是集群服務(wù),而誰(shuí)是后端真實(shí)的服務(wù)器(Real Server)
LVS相關(guān)術(shù)語(yǔ)
DS:Director Server。指的是前端負(fù)載均衡器節(jié)點(diǎn)。
RS:Real Server。后端真實(shí)的工作服務(wù)器。
VIP:向外部直接面向用戶請(qǐng)求,作為用戶請(qǐng)求的目標(biāo)的IP地址。
DIP:Director Server IP,主要用于和內(nèi)部主機(jī)通訊的IP地址。
RIP:Real Server IP,后端服務(wù)器的IP地址。
CIP:Client IP,訪問(wèn)客戶端的IP地址。
LVS的工作原理
LVS的工作模式
LVS/NAT模式(Network address translation)
LVS/TUN模式(tunneling)
LVS/ DR模式(Direct routing)
LVS-NAT原理和特點(diǎn)
LVS-NAT模型的特性
RS應(yīng)該使用私有地址,RS的網(wǎng)關(guān)必須指向DIP
DIP和RIP必須在同一個(gè)網(wǎng)段內(nèi)
請(qǐng)求和響應(yīng)報(bào)文都需要經(jīng)過(guò)Director Server,高負(fù)載場(chǎng)景中,Director Server易成為性能瓶頸
支持端口映射
RS可以使用任意操作系統(tǒng)
缺陷:對(duì)Director Server壓力會(huì)比較大,請(qǐng)求和響應(yīng)都需經(jīng)過(guò)director server
LVS-DR
LVS-DR的原理和特點(diǎn)
LVS-DR的模型和特性
保證前端路由將目標(biāo)地址為VIP報(bào)文統(tǒng)統(tǒng)發(fā)給Director Server,而不是RS
RS可以使用私有地址;也可以是公網(wǎng)地址,如果使用公網(wǎng)地址,此時(shí)可以通過(guò)互聯(lián)網(wǎng)對(duì)RIP進(jìn)行直接訪問(wèn)
RS跟Director Server必須在同一個(gè)物理網(wǎng)絡(luò)中
所有的請(qǐng)求報(bào)文經(jīng)由Director Server,但響應(yīng)報(bào)文必須不能進(jìn)過(guò)Director Server
不支持地址轉(zhuǎn)換,也不支持端口映射
RS可以是大多數(shù)常見(jiàn)的操作系統(tǒng)
RS的網(wǎng)關(guān)絕不允許指向DIP(因?yàn)槲覀儾辉试S他經(jīng)過(guò)director)
RS上的lo接口配置VIP的IP地址
缺陷:RS和DS必須在同一機(jī)房中
LVS-TUN
LVS-TUN的原理和特點(diǎn)
LVS-TUN模型特性
RIP、VIP、DIP全是公網(wǎng)地址
RS的網(wǎng)關(guān)不會(huì)也不可能指向DIP
所有的請(qǐng)求報(bào)文經(jīng)由Director Server,但響應(yīng)報(bào)文必須不能進(jìn)過(guò)Director Server
不支持端口映射
RS的系統(tǒng)必須支持隧道
LVS的調(diào)度算法
針對(duì)不同的網(wǎng)絡(luò)服務(wù)需求和服務(wù)器配置,IPVS調(diào)度器實(shí)現(xiàn)了如下八種負(fù)載調(diào)度算法:
1、輪叫(Round Robin)簡(jiǎn)稱RR
這種算法是最簡(jiǎn)單的,就是按依次循環(huán)的方式將請(qǐng)求調(diào)度到不同的服務(wù)器上,該算法最大的特點(diǎn)就是簡(jiǎn)單。輪詢算法假設(shè)所有的服務(wù)器處理請(qǐng)求的能力都是一樣的,調(diào)度器會(huì)將所有的請(qǐng)求平均分配給每個(gè)真實(shí)服務(wù)器,不管后端 RS 配置和處理能力,非常均衡地分發(fā)下去
2、加權(quán)輪叫(Weighted Round Robin) 簡(jiǎn)稱WRR
這種算法比 rr 的算法多了一個(gè)權(quán)重的概念,可以給 RS 設(shè)置權(quán)重,權(quán)重越高,那么分發(fā)的請(qǐng)求數(shù)越多,權(quán)重的取值范圍 0 – 100。主要是對(duì)rr算法的一種優(yōu)化和補(bǔ)充, LVS 會(huì)考慮每臺(tái)服務(wù)器的性能,并給每臺(tái)服務(wù)器添加要給權(quán)值,如果服務(wù)器A的權(quán)值為1,服務(wù)器B的權(quán)值為2,則調(diào)度到服務(wù)器B的請(qǐng)求會(huì)是服務(wù)器A的2倍。權(quán)值越高的服務(wù)器,處理的請(qǐng)求越多
3、最少鏈接(Least Connections)簡(jiǎn)稱LC
這個(gè)算法會(huì)根據(jù)后端 RS 的連接數(shù)來(lái)決定把請(qǐng)求分發(fā)給誰(shuí),比如 RS1 連接數(shù)比 RS2 連接數(shù)少,那么請(qǐng)求就優(yōu)先發(fā)給 RS1
4、加權(quán)最少鏈接(Weighted Least Connections)簡(jiǎn)稱WLC
這個(gè)算法比 lc 多了一個(gè)權(quán)重的概念。
5、基于局部性的最少鏈接(Locality-Based Least Connections)簡(jiǎn)稱LBLC
這個(gè)算法是請(qǐng)求數(shù)據(jù)包的目標(biāo) IP 地址的一種調(diào)度算法,該算法先根據(jù)請(qǐng)求的目標(biāo) IP 地址尋找最近的該目標(biāo) IP 地址所有使用的服務(wù)器,如果這臺(tái)服務(wù)器依然可用,并且有能力處理該請(qǐng)求,調(diào)度器會(huì)盡量選擇相同的服務(wù)器,否則會(huì)繼續(xù)選擇其它可行的服務(wù)器
6、帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)簡(jiǎn)稱LBLCR
記錄的不是要給目標(biāo) IP 與一臺(tái)服務(wù)器之間的連接記錄,它會(huì)維護(hù)一個(gè)目標(biāo) IP 到一組服務(wù)器之間的映射關(guān)系,防止單點(diǎn)服務(wù)器負(fù)載過(guò)高。
7、目標(biāo)地址散列調(diào)度(Destination Hashing)簡(jiǎn)稱DH
該算法是根據(jù)目標(biāo) IP 地址通過(guò)散列函數(shù)將目標(biāo) IP 與服務(wù)器建立映射關(guān)系,出現(xiàn)服務(wù)器不可用或負(fù)載過(guò)高的情況下,發(fā)往該目標(biāo) IP 的請(qǐng)求會(huì)固定發(fā)給該服務(wù)器
8、源地址散列調(diào)度(Source Hashing)簡(jiǎn)稱SH
與目標(biāo)地址散列調(diào)度算法類似,但它是根據(jù)源地址散列算法進(jìn)行靜態(tài)分配固定的服務(wù)器資源
——————————————————
轉(zhuǎn)自:CSDN博主