企業之pacemaker

     pacemaker,是一個羣集資源管理器。它實現最大可用性羣集服務(亦稱資源管理)的節點和資源級故障檢測和恢復使用您的首選集羣基礎設施(OpenAIS的或Heaerbeat)提供的消息和成員能力。
它可以做乎任何規模的集羣,並配備了一個強大的依賴模型,使管理員能夠準確地表達羣集資源之間的關係(包括順序和位置)。幾乎任何可以編寫腳本,可以管理作爲心臟起搏器集羣的一部分。

    pacemaker的特點:

  • 主機和應用程序級別的故障檢測和恢復

  • 幾乎支持任何冗餘配置

  • 同時支持多種集羣配置模式

  • 配置策略處理法定人數損失(多臺機器失敗時)

  • 支持應用啓動/關機順序

  • 支持,必須/必須在同一臺機器上運行的應用程序

  • 支持多種模式的應用程序(如主/從)

  • 可以測試任何故障或羣集的羣集狀態


  • primitive(native):基本資源,原始資源

  • group:資源組

  • clone:克隆資源(可同時運行在多個節點上),要先定義爲primitive後才能進行clone。主要包含STONITH和集羣文件系統(cluster filesystem)

  • master/slave:主從資源,如drdb

  • Lsb:linux表中庫,一般位於/etc/rc.d/init.d/目錄下的支持start|stop|status等參數的服務腳本都是lsb

  • ocf:Open cluster Framework,開放集羣架構

  • heartbeat:heartbaet V1版本

  • stonith:專爲配置stonith設備而用


172.25.85.2 server2.example.com(1024)
172.25.85.3 server3.example.com(1024)


1. server2/3:
   /etc/init.d/ldirectord stop
   chkconfig ldirectord off
   yum install pacemaker -y
   rpm -q corosync                


  server2:
  cd /etc/corosync
  cp corosync.conf.example  corosync.conf

  vim /etc/corosync/corosync.conf

bindnetaddr: 172.25.85.0
service {
         name: pacemaker
         ver: 0
}

    scp /etc/corosync/corosync.conf [email protected]:/etc/corosync/


    /etc/init.d/corosync start
    crm_verify -LV                       ##檢測配置文件是否正確


 

   server3:
   /etc/init.d/corosync start
   tail -f /var/log/messages


    


2. server2:
   yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm  pssh-2.3.1-2.1.x86_64.rpm
 
   crm

crm(live)configure# property no-quorum-policy=ignore         
##將修改同步到其他節點
crm(live)configure# commit

  vim /etc/httpd/conf/httpd.conf

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>



   crm

crm(live)configure# 
primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.85.100 crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.85.100 cidr_netmask=32  op monitor interval=30s
 
primitive website ocf:heartbeat:apache params configfile=/etc/httpd/conf/httpd.conf  op monitor interval=60s  
crm(live)configure# commit

 

    可以使用crm_mon查看:
wKioL1ejfJGDQRR9AAB7IQUmmvQ916.png-wh_50

crm(live)configure# collocation website-with-ip inf: website vip   
                                         ##將這兩個資源整合到一個主機上

crm(live)configure# commit   

crm(live)configure# delete website-with-ip
crm(live)configure# commit    
                        

crm(live)configure# group apache vip website                        
                                         ##創建一個資源組apache

crm(live)configure# commit


crm_mon  
wKiom1ejfOGSrN-2AAA6JZcWG3A607.png-wh_50
   

crm(live)node# show
server2.example.com: normal
server3.example.com: normal
crm(live)node# standby server2.example.com
crm(live)resource# stop apache 
crm(live)resource# show
 Resource Group: apache
     vip    (ocf::heartbeat:IPaddr2):    Stopped 
     website    (ocf::heartbeat:apache):    Stopped
crm(live)configure# delete apache 
crm(live)configure# delete website
crm(live)configure# commit




[注意]
刪除一個資源:
crm(live)resource# stop website
crm(live)configure# delete website   




  server3:
  yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm  pssh-2.3.1-2.1.x86_64.rpm

  vim /etc/httpd/conf/httpd.conf

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

   crm_mon                      ##



3.真機上:systemctl start fence_virtd.service


  server2:
  stonith_admin -I
  stonith_admin -M -a fence_xvm

  crm

crm(live)configure# property stonith-enabled=true
primitive vmfence stonith:fence_xvm params pcmk_host_map="server2.example.com:ricci1;server3.example.com:heartbeat1"  op monitor interval=1min
primitive sqldata ocf:linbit:drbd params drbd_resource=sqldata op monitor interval=30s
ms sqldataclone sqldata meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

crm(live)configure# commit


crm_mon


wKioL1ejfd2R6InsAABCTa7S7es681.png-wh_50

primitive sqlfs ocf:heartbeat:Filesystem params device=/dev/drbd1 directory=/var/lib/mysql fstype=ext4
colocation sqlfs_on_drbd inf: sqlfs sqldataclone:Master
order sqlfs-after-sqldata inf: sqldataclone:promote sqlfs:start

crm(live)configure# commit



crm_mon


wKiom1ejfiGBAIs2AABQxYsBI4A692.png-wh_50



crm(live)configure# primitive mysql lsb:mysqld op monitor interval=30s
crm(live)configure# group mygroup vip sqlfs mysql
INFO: resource references in colocation:sqlfs_on_drbd updated
INFO: resource references in order:sqlfs-after-sqldata updated

crm(live)configure# commit



crm_mon


wKioL1ejfkTgSt4wAABnEyLkYiU232.png-wh_50


crm(live)resource# refresh mygroup



       server3:
       crm_mon         ##監控節點狀態

























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章