Pacemaker理論編程
一Corosync服務器
要說明corosync的由來首先咱們得從AIS提及而後說明OpenAIS最後纔會說到corosync。架構
AIS概述併發
應用接口規範AIS是用來定義應用程序接口API的開放性規範的集合這些應用程序做爲中間件爲應用服務提供一種開放、高移植性的程序接口。是在實現高可用應用過程當中是亟需的。服務可用性論壇SA Forum是一個開放性論壇它開發併發布這些免費規範。使用AIS規範的應用程序接口API能夠減小應用程序的複雜性和縮短應用程序的開發時間這些規範的主要目的就是爲了提升中間組件可移植性和應用程序的高可用性。SAF AIS是一個開放性工程在不斷更新中。框架
OpenAIS概述ide
OpenAIS是基於SA Forum 標準的集羣框架的應用程序接口規範。OpenAIS提供一種集羣模式這個模式包括集羣框架集羣成員管理通訊方式集羣監測等可以爲集羣軟件或工具提供知足 AIS標準的集羣接口可是它沒有集羣資源管理功能不能獨立造成一個集羣。OpenAIS組件包括AMF,CLM,CKPT,EVT,LCK,MSGTMR,CPG,EVS等因OpenAIS分支不一樣組件略有不一樣。下面介紹OpenAIS主要包含三個分支PicachoWhitetankWilson。Wilson是最新的比較穩定的版本是從openais 1.0.0到openais1.1.4。Whitetank如今是主流分支版本比較穩定的版本是openais0.80到openais0.86。Picacho第一代的OpenAIS的分支比較穩定的版本是openais0.70和openais0.71。如今比較經常使用的是Whitetank和Wilson二者之間有不少不一樣。OpenAIS從Whitetank升級到Wilson版本後組件變化很大Wilson把Openais核心架構組件獨立出來放在CorosyncCorosync是一個集羣管理引擎裏面。Whitetank包含的組件有AMFCLMCKPTEVTLCK ,MSG, CPGCFG,EVS, aisparser, VSF_ykdbojdb等。而Wilson只含有AMFCLMCKPTLCK, MSG,EVT,TMRTMRWhitetank裏面沒有這些都是AIS組件。其餘核心組件被放到了Corosync內。Wilson被當作Corosync的一個插件。(詳細請查看官方文檔)工具
Corosync概述測試
Corosync是OpenAIS發展到Wilson版本後衍生出來的開放性集羣引擎工程。能夠說Corosync是OpenAIS工程的一部分。OpenAIS從openais0.90開始獨立成兩部分一個是Corosync另外一個是AIS標準接口Wilson。Corosync包含OpenAIS的核心框架用來對Wilson的標準接口的使用、管理。它爲商用的或開源性的集羣提供集羣執行框架。Corosync執行高可用應用程序的通訊組系統它有如下特徵spa
一個封閉的程序組A closed process group communication model通訊模式這個模式提供一種虛擬的同步方式來保證可以複製服務器的狀態。插件
一個簡單可用性管理組件A simple availability manager這個管理組件能夠從新啓動應用程序的進程當它失敗後。
一個配置和內存數據的統計A configuration and statistics in-memory database內存數據可以被設置回覆接受通知的更改信息。
一個定額的系統A quorum system,定額完成或者丟失時通知應用程序。
簡單的說AIS就是一個通用的應用程序編程接口OpenAIS是AIS的子項目標準的集羣框架的應用程序接口規範而corosync是OpenAIS是具體實現。
Coreosync是集羣管理套件的一部分它在傳遞信息的時候能夠經過一個簡單的配置文件來定義信息傳遞的方式和協議等。它是項目Openais , 它因爲過大分裂爲兩個子項目其中能夠實現HA心跳信息傳輸的功能就是Corosync ,它的代碼60%左右來源於Openais。Corosync能夠提供一個完整的HA功能可是要實現更多更復雜的功能那就須要使用Openais 了。主要傳遞發集羣信息與心跳信息的並無資源管理功能資源管理還得依賴於上層的crm(Cluster resource Manager集羣資源管理器)最著名的資源管理器就是pacemaker它是heartbeat v3分離出去的子項目。
Pacemaker是一個集羣管理器。它利用首選集羣基礎設施OpenAIS 或heartbeat提供的消息和成員能力由輔助節點和系統進行故障檢測和回收實現性羣集服務亦稱資源的高可用性。
二Pacemaker
1.pacemaker 簡單說明
pacemaker(直譯心臟起搏器)是一個羣集資源管理器。它實現最大可用性羣集服務亦稱資源管理的節點和資源級故障檢測和恢復使用您的首選集羣基礎設施OpenAIS的或Heaerbeat提供的消息和成員能力。
它能夠作乎任何規模的集羣並配備了一個強大的依賴模型使管理員可以準確地表達羣集資源之間的關係包括順序和位置。幾乎任何能夠編寫腳本能夠管理做爲心臟起搏器集羣的一部分。
我再次說明一下pacemaker是個資源管理器不是提供心跳信息的由於它彷佛是一個廣泛的誤解也是值得的。pacemaker是一個延續的CRM亦稱Heartbeat V2資源管理器最初是爲心跳但已經成爲獨立的項目。
2.pacemaker 由來
你們都知道Heartbeat 到了V3版本後拆分爲多個項目其中pacemaker就是拆分出來的資源管理器。
Heartbeat 3.0拆分以後的組成部分
Heartbeat將原來的消息通訊層獨立爲heartbeat項目新的heartbeat只負責維護集羣各節點的信息以及它們以前通訊
Cluster Glue至關於一箇中間層它用來將heartbeat和pacemaker關聯起來主要包含2個部分即爲LRM和STONITH。
Resource Agent用來控制服務啓停監控服務狀態的腳本集合這些腳本將被LRM調用從而實現各類資源啓動、中止、監控等等。
Pacemaker : 也就是Cluster Resource Manager 簡稱CRM用來管理整個HA的控制中心客戶端經過pacemaker來配置管理監控整個集羣。
2、pacemaker 特色
監測並恢復節點和服務級別的故障
幾乎支持任何冗餘配置
同時支持多種集羣配置模式
配置策略處理法定人數損失多臺機器失敗時
支持應用啓動/關機順序
支持必須/必須在同一臺機器上運行的應用程序
支持多種模式的應用程序如主/從
能夠測試任何故障或羣集的羣集狀態
存儲無關,並不須要共享存儲
資源無關,任何能用腳本控制的資源均可以做爲服務
Supports STONITH for ensuring data integrity
支持大型或者小型的集羣
注說白了意思就是功能強大如今最主流的資源管理器。