Linux競(jìng)爭(zhēng)力很強(qiáng)的原因之一,是它可以運(yùn)行于極為普及的PC機(jī)上,不需要購(gòu)買(mǎi)昂貴的專(zhuān)用硬件設(shè)備。在幾臺(tái)運(yùn)行Linux的PC機(jī)上,只要加入相應(yīng)的集群軟件,就可以組成具有超強(qiáng)可靠性、負(fù)載能力和計(jì)算能力的Linux集群。集群中的每臺(tái)服務(wù)器稱(chēng)為一個(gè)節(jié)點(diǎn)。
創(chuàng)新互聯(lián)建站是一家專(zhuān)業(yè)提供桂平企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都做網(wǎng)站、成都網(wǎng)站制作、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為桂平眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)的建站公司優(yōu)惠進(jìn)行中。按照側(cè)重點(diǎn)的不同,可以把Linux集群分為三類(lèi):高可用性集群與負(fù)載均衡集群的工作原理不同,適用于不同類(lèi)型的服務(wù)。通常,負(fù)載均衡集群適用于提供靜態(tài)數(shù)據(jù)的服務(wù),如HTTP服務(wù);而高可用性集群既適用于提供靜態(tài)數(shù)據(jù)的服務(wù),如HTTP服務(wù),又適用于提供動(dòng)態(tài)數(shù)據(jù)的服務(wù),如數(shù)據(jù)庫(kù)等。高可用性集群之所以能適用于提供動(dòng)態(tài)數(shù)據(jù)的服務(wù),是由于節(jié)點(diǎn)共享同一存儲(chǔ)介質(zhì),如RAIDBox.也就是說(shuō),在高可用性集群內(nèi),每種服務(wù)的用戶(hù)數(shù)據(jù)只有一份,存儲(chǔ)在共用存儲(chǔ)設(shè)備上,在任一時(shí)刻只有一個(gè)節(jié)點(diǎn)能讀寫(xiě)這份數(shù)據(jù)。
以Turbolinux TurboHA為例,集群中有兩個(gè)節(jié)點(diǎn)A和B,設(shè)這個(gè)集群只提供Oracle服務(wù),用戶(hù)數(shù)據(jù)存放于共用存儲(chǔ)設(shè)備的分區(qū)/dev/sdb3上。在正常狀態(tài)下,節(jié)點(diǎn)A提供Oracle數(shù)據(jù)庫(kù)服務(wù),分區(qū)/dev/sdb3被節(jié)點(diǎn)A加載在/mnt/oracle上。當(dāng)系統(tǒng)出現(xiàn)某種故障并被TurboHA軟件檢測(cè)到時(shí),TurboHA會(huì)將Oracle服務(wù)停止,并把分區(qū)/dev/sdb3卸載。之后,節(jié)點(diǎn)B上的TurboHA軟件將在節(jié)點(diǎn)B上加載該分區(qū),并啟動(dòng) Oracle服務(wù)。對(duì)于Oracle服務(wù)有一個(gè)虛擬的IP地址,當(dāng)Oracle服務(wù)從節(jié)點(diǎn)A切換到節(jié)點(diǎn)B上時(shí),虛擬的IP地址也會(huì)隨之綁定到節(jié)點(diǎn)B上,因此用戶(hù)仍可訪問(wèn)此服務(wù)。
由以上分析可以看出,高可用性集群對(duì)一種服務(wù)而言不具有負(fù)載均衡功能,它可以提高整個(gè)系統(tǒng)的可靠性,但不能增加負(fù)載的能力。當(dāng)然,高可用性集群可以運(yùn)行多種服務(wù),并適當(dāng)分配在不同節(jié)點(diǎn)上,比如節(jié)點(diǎn)A提供Oracle服務(wù),同時(shí)節(jié)點(diǎn)B提供Sybase服務(wù),這也可以看成是某種意義上的負(fù)載均衡,不過(guò)這是對(duì)多種服務(wù)的分配而言。
負(fù)載均衡集群適用于提供相對(duì)靜態(tài)的數(shù)據(jù)的服務(wù),比如HTTP服務(wù)。因?yàn)橥ǔX?fù)載均衡集群的各節(jié)點(diǎn)間通常沒(méi)有共用的存儲(chǔ)介質(zhì),用戶(hù)數(shù)據(jù)被復(fù)制成多份,存放于每一個(gè)提供該項(xiàng)服務(wù)的節(jié)點(diǎn)上。 下面以Turbolinux Cluster Server為例簡(jiǎn)要介紹一下負(fù)載均衡集群的工作機(jī)制。在集群中有一個(gè)主控節(jié)點(diǎn),稱(chēng)為高級(jí)流量管理器(ATM)。假設(shè)這一集群僅被用來(lái)提供一項(xiàng)HTTP服務(wù),其余各節(jié)點(diǎn)均被設(shè)定為HTTP的服務(wù)節(jié)點(diǎn)。用戶(hù)對(duì)于頁(yè)面的請(qǐng)求全部發(fā)送到ATM上,因?yàn)锳TM上綁定了這項(xiàng)服務(wù)對(duì)外的IP地址。ATM把接受到的請(qǐng)求再平均發(fā)送到各服務(wù)節(jié)點(diǎn)上,服務(wù)節(jié)點(diǎn)接收到請(qǐng)求之后,直接把相應(yīng)的Web頁(yè)面發(fā)送給用戶(hù)。這樣一來(lái),假如在1秒內(nèi)有1000個(gè)HTTP頁(yè)面請(qǐng)求,而集群中有10個(gè)服務(wù)節(jié)點(diǎn),則每個(gè)節(jié)點(diǎn)將處理100個(gè)請(qǐng)求。這樣,在外界看來(lái),好象有一臺(tái)10倍速度的高速計(jì)算機(jī)在處理用戶(hù)的訪問(wèn)。這也就是真正意義上的負(fù)載均衡。