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