高可用集群HA及負(fù)載均衡集群LB的實(shí)現(xiàn)方法
集群是個(gè)熱門話題,在企業(yè)中越來越多地應(yīng)用Linux操作系統(tǒng)提供郵件、Web、文件存儲(chǔ)、數(shù)據(jù)庫等服務(wù),隨著Linux應(yīng)用的日益增長(zhǎng),高可用及負(fù)載均衡Linux集群也在企業(yè)中逐步地發(fā)展起來。Linux平臺(tái)的低成本、高性能、高擴(kuò)展性使得Linux集群能夠以低廉的價(jià)格很好地滿足各種應(yīng)用的需求。
本文介紹Linux集群的基礎(chǔ)知識(shí),集群的分類。在熟悉集群的基礎(chǔ)知識(shí)后會(huì)以RHCS(RedHat Cluster Suit)為例介紹高可用集群及負(fù)載均衡集群的實(shí)現(xiàn)方法。
集群是什么?
讓我們先從集群的概念開始介紹Linux集群。將多臺(tái)計(jì)算機(jī)用特定的軟件及硬件連接在一起,讓它們?yōu)楣餐哪康囟ぷ骶蜆?gòu)成了Linux集群。
Linux集群技術(shù)就在你的身邊,可能你并未察覺,對(duì)于普通用戶來說,一個(gè)Linux集群通常會(huì)表現(xiàn)得像單一的系統(tǒng),為用戶提供網(wǎng)絡(luò)服務(wù)或計(jì)算服務(wù)。
著名的搜索引擎GOOGLE就是采用了Linux集群技術(shù)來處理每日大量的查詢請(qǐng)示,據(jù)估計(jì)目前GOOGLE集群中已經(jīng)有超過20000臺(tái)計(jì)算機(jī)同時(shí)進(jìn)行工作。當(dāng)你每次向GOOGLE提交查詢請(qǐng)求的時(shí)候,就會(huì)有一組不同的計(jì)算機(jī)助你檢索信息。
據(jù)世界著名的超級(jí)計(jì)算機(jī)排行網(wǎng)站www.top500.org 2005年6月的數(shù)據(jù)記錄在全球最快的500臺(tái)超級(jí)計(jì)算機(jī)中有288臺(tái)采用了Linux集群的方式組建。目前最快的Linux集群超級(jí)計(jì)算機(jī)是由IBM為巴塞羅那超級(jí)計(jì)算中心建造的MareNostrum集群,該集群目前在2005年6月top500全球超級(jí)計(jì)算計(jì)中排名第五。
集群的主要類型
學(xué)習(xí)Linux集群之前我們首先需要了解集群的主要類型及其能夠解決的問題。我們通常會(huì)將集群按其用途分為以下的三個(gè)主要類型:
高可用集群(HA,High Available Cluster)
高可用集群是指通過特殊軟件把獨(dú)立的服務(wù)器連接起來,組成一個(gè)能夠提供故障切換(Failover)功能的集群。
企業(yè)中的關(guān)鍵應(yīng)用如WEB服務(wù)、文件服務(wù)、數(shù)據(jù)庫服務(wù)等,通常會(huì)要求提供7x24不間斷地連續(xù)提供服務(wù)并且對(duì)外不能表現(xiàn)出故障。這就要求承載服務(wù)的系統(tǒng)能夠自動(dòng)地判斷故障并提供故障恢復(fù)的能力。高可用集群能夠保性系統(tǒng)中關(guān)鍵服務(wù)的可用性以及服務(wù)數(shù)據(jù)的完整性。
高可用集群通常會(huì)采用可用性來衡量基實(shí)際效果。計(jì)算機(jī)系統(tǒng)的可用性是通過平均無故障時(shí)間(MTTF)及平均維修時(shí)間(MTTR)來度量的,可用性的定義為:MTTF/(MTTF+MTTR)*100% 。根據(jù)可用性我們可以把計(jì)算機(jī)系統(tǒng)分為以下幾類:
可用性年停機(jī)時(shí)間系統(tǒng)類別
- 99.53.7天常規(guī)系統(tǒng)
- 99.98.8小時(shí)可用系統(tǒng)
- 99.9952.6分鐘高可用系統(tǒng)
- 99.9995.3分鐘抗故障系統(tǒng)
- 99.999932秒容錯(cuò)系統(tǒng)
Linux高可集群系統(tǒng)通常能夠達(dá)到高可用系統(tǒng)的標(biāo)準(zhǔn)。目前***級(jí)別的容錯(cuò)系統(tǒng)通常是采用高級(jí)的支持硬件容錯(cuò)的服務(wù)器,容錯(cuò)系統(tǒng)對(duì)硬件故障具有***級(jí)別的可用性支持但是這種系統(tǒng)通常不能夠?qū)Ψ?wù)的軟件故障做出診斷及恢復(fù)。Linux高可用集群系統(tǒng)基本都具備對(duì)軟件和硬件故障的探測(cè)及恢復(fù)功能。
在真實(shí)的企業(yè)應(yīng)用中一般只會(huì)將部分關(guān)鍵服務(wù)部署在高可用集群系統(tǒng)上,其它不屬于關(guān)鍵服務(wù)的部分只需要采用普通的服務(wù)器部署即可。所以一般情況下高可用集群系統(tǒng)會(huì)包由兩臺(tái)服務(wù)器構(gòu)成。
目前主要的Linux發(fā)行版本基本都會(huì)提供高可用集群組件,主要要的高可用集群決方案有SUSE 采用的HeartBeat (www.linux-ha.org)及RedHat Cluster Suit 采用的Kimberlite。
HA+KEEPALVIED 是實(shí)現(xiàn)高可用性。不能實(shí)現(xiàn)負(fù)載均衡。
負(fù)載均衡集群(LB,Load Balance Cluster)
負(fù)載均衡集群通常采用專門的負(fù)載均衡路由設(shè)備將基于TCP/IP協(xié)議的服務(wù)請(qǐng)求分發(fā)至實(shí)際提供服務(wù)的服務(wù)器中并由這些服務(wù)器為客戶端提供真實(shí)的服務(wù)。
負(fù)載均衡集群系統(tǒng)一般多用于負(fù)載較重的網(wǎng)絡(luò)服務(wù)中,如大型的網(wǎng)站、郵件服務(wù)系統(tǒng)等。由于采用了負(fù)載均衡技術(shù),可以使多臺(tái)服務(wù)器同時(shí)提供相同內(nèi)容的服務(wù),突破了單一服務(wù)器硬件性能的限制。
負(fù)載均衡集群中的關(guān)鍵部件就是負(fù)載均衡路由設(shè)備,負(fù)載均衡路由設(shè)備負(fù)責(zé)將真實(shí)客戶端的服務(wù)請(qǐng)求分發(fā)至真實(shí)服務(wù)器上,一般可采用的方法有使用硬件負(fù)載均衡路由設(shè)備或使用Linux自己配置負(fù)載均衡路由器。
硬件負(fù)載均衡路由設(shè)備由于采用了特殊的硬件結(jié)構(gòu)及專門開發(fā)的配置軟件,通常易于配置及管理,性能較好,但是其價(jià)格較高
在Linux中最常使用的負(fù)載均衡路由軟件是由章文嵩博士開發(fā)的LVS(Linux Virtual Server)項(xiàng)目。LVS能夠?qū)崿F(xiàn)目前大部分硬件負(fù)載均衡路由設(shè)備的功能。目前基于Linux平臺(tái)負(fù)載均衡解決方案大都是采用了LVS或其衍生產(chǎn)品。由于LVS項(xiàng)目本身未提供負(fù)載均衡路由的高可用功能、真實(shí)服務(wù)器狀態(tài)探測(cè)功能等,所以在實(shí)際配置負(fù)載均衡集群時(shí)通常會(huì)采用LVS的衍生產(chǎn)品。常見的LVS衍生產(chǎn)品主要有UltraMonkey及RedHat的Piranha項(xiàng)目。