Linux叢集概述
叢集是個熱門話題,在企業中越來越多地應用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(oss.missioncriticallinux.com/kimberlite/)
負載均衡叢集(LB,Load Balance Cluster)
負載均衡叢集通常采用專門的負載均衡路由裝置将基于TCP/IP協定的服務請求分發至實際提供服務的伺服器中并由這些伺服器為用戶端提供真實的服務。
負載均衡叢集系統一般多用于負載較重的網絡服務中,如大型的網站、郵件服務系統等。由于采用了負載均衡技術,可以使多台伺服器同時提供相同内容的服務,突破了單一伺服器硬體性能的限制。
負載均衡叢集中的關鍵部件就是負載均衡路由裝置,負載均衡路由裝置負責将真實用戶端的服務請求分發至真實伺服器上,一般可采用的方法有使用硬體負載均衡路由裝置或使用Linux自己配置負載均衡路由器。
硬體負載均衡路由裝置由于采用了特殊的硬體結構及專門開發的配置軟體,通常易于配置及管理,性能較好,但是其價格較高
在Linux中最常使用的負載均衡路由軟體是由章文嵩博士開發的LVS(Linux Virtual Server)項目。LVS能夠實作目前大部分硬體負載均衡路由裝置的功能。目前基于Linux平台負載均衡解決方案大都是采用了LVS或其衍生産品。由于LVS項目本身未提供負載均衡路由的高可用功能、真實伺服器狀态探測功能等,是以在實際配置負載均衡叢集時通常會采用LVS的衍生産品。常見的LVS衍生産品主要有UltraMonkey (http://www.ultramonkey.org/)及RedHat的Piranha項目。#p#副标題#e#
高性能計算叢集(HPC, High Performance Computing)
高性能計算是計算機科學的一個分支,它緻力于開發超級計算機,研究并行算法和開發相關軟體。高性能計算叢集系統通常會采用價格昂貴的專用高速網絡連接配接叢集内的計算機,在叢集内部使用專門編寫的軟體來進行高速的運算。
高性能計算主要用于大規模科學計算,如天氣預報、地形分析和生物制藥、基因測序等領域。
為什麼使用Linux建構叢集系統?
目前大多數的叢集系統都是以Linux做為作業系統平台,之是以大家都選擇Linux來建構叢集系統是因為Linux系統具有以下優點
低成本
Linux叢集的低成本主要展現在兩個方面,首先Linux平台及其軟體大部分基于GPL或其它開放源代碼協定釋出,這些協定對于最終使用者是完全免費的。幾乎所有的叢集類型都可以在Linux平台上找到免費的解決方案。另外由于Linux對各種硬體平台的廣泛支援,使得使用Linux 在一些比較舊的機器上建構叢集成為可能,即使使用新的硬體,Linux也可以在廉價的X86平台上建構高性能的叢集。
高擴充性
高擴充性首先表現在對不同硬體及硬體平台的支援上,使用Linux制作叢集可以建構多種平台的異構叢集,同時可以使用各種硬體對現有叢集進行擴充。另外Linux的高擴充性還展現在叢集軟體上,由于Linux平台上的大部分軟體都是基于開源協定釋出,是以可以對現有軟體進行各種改造,使其能夠在現有的環境下最大限度的發揮功能,這種可擴充性在商業化作業系統上是不可能具備的。
高性能
Linux最值得稱道的特征之一就是Linux的高性能,在Linux系統中可以調節各種作業系統的參數以提高系統性能,并為特殊應用進行優化。Linux系統強大的可訂定性也決定了Linux可以将不必要的系統功能禁用,同時提高需要用到服務的性能。
RedHat 叢集套件(RHCS,RedHat Cluster Suit)簡介
本章将會以RHCS 3.0為基礎向讀者介紹基于Linux的高可用及負載均衡叢集的配置方法。RHCS是由RedHat釋出的用于RHEL(RedHat Enterprise Linux)的叢集産品。
RHCS必需與RHEL配合使用,RHCS共提供了兩種元件,分别支援兩種不同類型叢集,其中RHCM(RedHat Cluster Manager)提供了高可用叢集的支援,Piranha提供了基于LVS的負載均衡叢集的支援。
RHCS 3.0中的RHCM是RedHat的一個開源的高可用叢集項目。RHCM基于開源的Kimberlite(oss.missioncriticallinux.com/kimberlite/)項目,同時加入了HeartBeat (www.linux-ha.org)項目的一些先進特征。做為RedHat的一款商業産品,在提供完備的商業支援及RHEL完全相容的同時,RHCS比其它的開源高可用項目提供了更加完備易用的圖形化配置及管理界面。
RHCM提供了許多先進技術特征,包括圖形及指令行的叢集配置及監控工具,無單一故障點配置支援、容錯域支援、資料完性保證、服務狀态自動監控及手動服務遷移功能。另外RHCM中還提供了高可用NFS及SAMBA配置向導功能,使得配置NFS或SAMBA高可用檔案伺服器在幾分鐘之内就可以完成。
Piranha項目是基于LVS的開源負載均衡叢集項目,在LVS提供負載均衡基礎上,Piranha項目還提供了WEB界面配置功能、負載均衡路由器的高可用功能、真實伺服器服務狀态監控功能,大大簡化了LVS配置和管理的難度。
配置RHCM高可用叢集
我們将以RHCS的高可用使群元件RHCM為基礎,一步步地進行高可用叢集的配置,在這部分中我們将會學到高可用叢集的基礎知識,如何為RHCM訂制RHEL安裝,如何安裝并配置基于RHCM的高可用叢集。
高可用叢集的基礎知識
高可用叢集通常由一個或多個結點(伺服器)及共享儲存設備構成,叢集間各成員互相監控軟、硬體的狀态,一旦伺服器硬體或服務發生故障則叢集控制軟體會依照基配置将服務切換至另一台伺服器繼續運作。#p#副标題#e#
根據高可用叢集的結構我們一般可将高可用叢集分為三種類型:主從式、對稱式和叢集式。
主從方式的HA叢集由兩個結點構成,其中一台為主伺服器,運作服務,另一台伺服器為從伺服器為主伺服器提供備份。主從方式中主伺服器可運作一個或多個服務,從伺服器随時監視主伺服器軟硬體狀态,如果主伺服器發生故障則主伺服器上運作的服務會由主伺服器遷移至從伺服器繼續運作。主從方式能夠提供較進階别的可用性但由于從伺服器專門用于備份,正常時不對外提供服務是以資源使用率較低。
對稱方式的HA叢集也由兩個結點構成,兩台伺服器可各自運作一個或多個服務,兩台伺服器在運作時互相監視軟硬體狀态,如果發生故障則服務會遷移至另一台伺服器運作。對稱方式中兩台機器同時對外提供服務,在提供高可用性的同時也提供了較高的資源使用率
叢集方式的HA叢集由多個結點構成,每節點可各自運作一個或多個服務,叢集中的成員互相監視軟硬體狀态,如發現故障則服務可在叢集成員間進行切換。#p#副标題#e#