Linux HA (一)

Linux HA Cluster的使用背景node

高可用集羣,英文原文爲High Availability Cluster,簡稱HACluster,簡單的說,集羣(cluster)就是一組計算機,它們做爲一個總體向用戶提供一組網絡資源。這些單個的計算機系統 就是集羣的節點(node)。mysql

  高可用集羣的出現是爲了使集羣的總體服務儘量可用,從而減小由計算機硬件和軟件易錯性所帶來的損失。若是某個節點失效,它的備援節點將在幾秒鐘的時間內接管它的職責。所以,對於用戶而言,集羣永遠不會停機。sql

  高可用集羣軟件的主要做用就是實現故障檢查和業務切換的自動化。只有兩個節點的高可用集羣又稱爲雙機熱備,即便用兩臺服務器互相備份。當一臺服務器出現故障時,可由另外一臺服務器承擔服務任務,從而在不須要人工干預的 狀況下,自動保證系統能持續對外提供服務。雙機熱備只是高可用集羣的一種,高可用集羣系統更能夠支持兩個以上的節點,提供比雙機熱備更多、更高級的功能,更能知足用戶不斷出現的需求變化。shell

Linux HA Cluster的系統組成,HA Cluster的工做模型apache

Heartbeat有三個版本分別爲Heartbeat v1.x,Heartbeat v2.x,Heartbeat v3.x。服務器

Heartbeat v1.x和Heartbeat v2.x版本的組成結構十分簡單,全部模塊都集中在heartbeat中,到了v3版本後,整個heartbeat項目進行了拆分,分爲不一樣的項目來分別進行開發。網絡

1.Heartbeat v1.x與v2.x的組件架構

heartbeat:節點間通訊檢測模塊ide

ha-logd:集羣事件日誌服務工具

CCM(Consensus Cluster Membership):集羣成員一致性管理模塊

LRM (Local Resource Manager):本地資源管理模塊

Stonith Daemon: 使出現問題的節點從集羣環境中脫離或重啓

CRM(Cluster resource management):集羣資源管理模塊,高可用集羣中任何資源都不該該自行啓動,而是由CRM管理啓動啓動的;

Cluster policy engine: 集羣策略引擎

Cluster transition engine:集羣轉移引擎(也叫策略執行引擎)

ha_aware:若是一個應用程序本身可以利用底層心跳信息傳遞層的功能完成集羣事物決策的過程的軟件就叫ha_aware。

DC:Designated Coordinator選定的協調員,當DC所在的主機掛了就會先選出一個DC,再由DC作出事物的決策。注意:在高可用集羣中最核心的、最底層的管理的單位叫資源,把資源組合在一塊兒來組合成一個服務。

Heartbeat v1.x與 v2.x區別


在Heartbeat v2.x中增長了一個新的集羣資源管理器crm,在Heartbeat v1.x中的集羣資源管理器是haresource,Heartbeat v2.x中爲了兼容v1.x保留了haresource,但同時又新增了一個功能更強大的crm資源管理器。crm管理方式有,一種是基於命令行crmsh,一種是基於圖形界面的hb_gui。

heartbeat v2第二版的時候,heartbeat被作了很大的改進,本身能夠作爲一個獨立進程來運行,並而能夠經過它接收用戶請求,它就叫crm,在運行時它須要在各節點上運行一個叫crmd的進程,這個進程一般要監聽在一個套接字上,端口就是5560,因此服務器端叫crmd,而客戶端叫crm(能夠稱爲crm shell),是個命令行接口,經過這個命令行接口就能夠跟服務器端的crm通訊了,heartbeat也有它的圖形化界面工具,就叫heartbeat-GUI工具,經過這個界面就能夠配置進行。

Heartbeat v3.x的組件

第三版heartbeat v3,被獨立成三個項目heartbeat、pacemaker(心臟起博器)、cluster-glue(集羣的貼合器),架構分離開來了,能夠結合其它的組件工做了。

Heartbeat:將原來的消息通訊層獨立爲heartbeat項目,新的heartbeat只負責維護集羣各節點的信息以及它們以前通訊。

Cluster Glue:至關於一箇中間層,它用來將heartbeat和pacemaker關聯起來,主要包含2個部分,即爲LRM和STONITH。

Resource Agent:用來控制服務啓停,監控服務狀態的腳本集合,這些腳本將被LRM調用從而實現各類資源啓動、中止、監控等等。

Pacemaker:也就是Cluster Resource Manager(集羣資源管理器,簡稱CRM),用來管理整個HA的控制中心,客戶端經過pacemaker來配置管理監控整個集羣。

RA:resource agent資源代理,其實就是可以接收CRM的調度用於實如今節點上對某一個資源完成管理的工具,這個管理的工具一般是腳本,因此咱們一般稱爲資源代理。任何資源代理都要使用同一種風格,接收四個參數:{start|stop|restart|status},包括配置IP地址的也是。每一個種資源的代理都要完成這四個參數據的輸出。

當某一個節點出現故障時,其上面的資源被自動轉移到其它正常的備用節點上並啓動的這個過程叫故障轉移,也稱爲失效轉移(failover)。

若是出現故障的節點又回來的,那咱們就要把這個節點添加回來,那這個添加回來的過程咱們就叫失效轉回,也稱故障轉回(failback)。

Heartbeat的各版本區別

與v1.x風格相比,Heartbeat v2.x版本以後功能變化以下:

1.保留原有全部功能

2.自動監控資源

默認狀況下每2分鐘檢測資源運行狀況,若是發現資源不在,則嘗試啓動資源, 若是60s後還未啓動成功,則資源切換向另節點。時間能夠修改。

3.能夠對各資源組實現獨立監控

好比apache運行在node1上,mysql運行在node2上,Heartbeat可同時實現兩臺主機的服務監控

4.同時監控系統負載

能夠自動將資源切換到負載低的node上

5.新增crm資源管理器

crm管理器可讓heartbeat基於圖形界面管理,即hb_gui

與v2.x風格相比,Heartbeat 3最主要變化是功能拆分,Heartbeat官方最後一個STABLE release 2.x 版本是2.1.4,Heartbeat 3官方正式發佈的首個版本是3.0.2,Heartbeat 3與Heartbeat2.x的最大差異在於,Heartbeat3.x按模塊把的原來Heartbeat2.x拆分爲多個子項目,可是HA實現原理與Heartbeat2.x基本相同,配置也基本一致。

相關文章
相關標籤/搜索