HA集羣之Corosync+Pacemaker+crmsh

    corosync是高可用集羣中的Cluster Messaging Layer(集羣信息層),是主要傳遞發集羣信息與心跳信息的,並沒有資源管理功能,資源管理還得依賴於上層的crm(Cluster resource Manager,集羣資源管理器),最著名的資源管理器,就是pacemaker,現在corosync+pacemaker成了高可用集羣中的最佳組合.

     pacemaker的配置命令行接口有兩種,一是crmsh,另一個是pcs,這裏主裏以crmsh的使用爲例



實例:

準備兩臺主機192.168.0.188,   192.168.0.150  環境都爲CentOS7.2

準備工作:

1.時間同步ntp

[root@node3 ~]# ntpdate 192.168.0.111

20 Aug 10:29:12 ntpdate[4861]: step time server 192.168.0.111 offset -48.870862 sec 

 ###都使用同步至時間服務器

[root@node3 ~]# crontab -e

*/5 * * * * /usr/sbin/ntpdate 192.168.0.111 &> /dev/null ###每5分鐘與時間服務器同步一次

2.dns解析文件需能互相解析主機名

配置/etc/hosts文件實現

[root@node1 ~]# cat /etc/hosts

192.168.0.188 node1.xiao.com   node1    

192.168.0.150 node2.xiao.com node2

兩臺都需配置。

3.主機名需與配置文件保持一致,修改主機名

[root@node1 ~]# hostname set-hostname node1.xiao.com


至此開始安裝

[root@node1 ~]# yum install pacemaker -y                       ###安裝會依賴於corosync

[root@node1 ~]# cd /etc/corosync/

[root@node1 corosync]# cp corosync.conf.example corosync.conf  ###使用此示例模板爲配置文件

totem{}:節點間的通信方式,通信協議,加密與否...

logging{}:日誌系統,日誌記錄方式及存儲位置

quorum{}:投票系統

nodelist{}:節點列表

[root@node1 dylan]# corosync-keygen -l                          ###傳遞心跳信息時的預共享密鑰,生成密鑰時需要用到 /dev/random  一共需要1024位的長度,此處使用簡單方式生成-l

生成的密鑰文件權限爲400

[root@node1 corosync]# grep -v "^[[:space:]]*#" corosync.conf |grep -v "^$"  ###配置示例

totem {

version: 2

cluster_name: mycluster

crypto_cipher: aes128

crypto_hash: sha1

interface {

ringnumber: 0

bindnetaddr: 192.168.0.0

mcastaddr: 239.255.10.1

mcastport: 5405

ttl: 1

}

}

logging {

fileline: off

to_stderr: no

to_logfile: yes

logfile: /var/log/cluster/corosync.log

to_syslog: yes

debug: off

timestamp: on

logger_subsys {

subsys: QUORUM

debug: off

}

}

quorum {

provider: corosync_votequorum

}

nodelist {

node {

ring0_addr: 192.168.0.188

nodeid: 1

}

node {

ring0_addr: 192.168.0.150

nodeid: 2

}

}

[root@node1 corosync]# scp corosync.conf authkey root@node2:/etc/corosync/    ###相同的配置文件複製一份到node2 節點

[root@node1 ~]# systemctl start corosync.service

[root@node1 ~]# ss -unl

UNCONN     0      0      239.255.10.1:5405                          *:*                  

UNCONN     0      0      192.168.0.188:5405                          *:*   


[root@node1 ~]# tail /var/log/cluster/corosync.log       ###查看日誌信息                                     

Aug 21 08:14:32 [19049] node1.xiao.com corosync notice  [QUORUM] Members[1]: 1

Aug 21 08:14:32 [19049] node1.xiao.com corosync notice  [MAIN  ] Completed service synchr

onization, ready to provide service.Aug 21 08:15:09 [19049] node1.xiao.com corosync notice  [TOTEM ] A new membership (192.16

8.0.150:20) was formed. Members joined: 2Aug 21 08:15:09 [19049] node1.xiao.com corosync notice  [QUORUM] This node is within the 

primary component and will provide service.Aug 21 08:15:09 [19049] node1.xiao.com corosync notice  [QUORUM] Members[2]: 2 1

Aug 21 08:15:09 [19049] node1.xiao.com corosync notice  [MAIN  ] Completed service synchr

onization, ready to provide service.


[root@node1 corosync]# systemctl start pacemaker.service        ###啓動pacemaker

[root@node1~]# crm_mon###查看狀態

Stack: corosync

Current DC: node1.xiao.com (version 1.1.15-11.el7_3.5-e174ec8) - partition with quorum

Last updated: Mon Aug 21 08:27:10 2017          Last change: Mon Aug 21 08:26:03 2017 by

hacluster via crmd on node1.xiao.com


2 nodes and 0 resources configured                            


Online: [ node1.xiao.com node2.xiao.com ]                        ###兩臺都在線

    

No active resources


要使用crmsh

[root@node1 ~]# yum localinstall crmsh-2.1.4-1.1.x86_64.rpm pssh-2.3.1-4.2.x86_64.rpm python-pssh-2.3.1-4.2.x86_64.rpm 

###安裝這三個包,crmsh會依賴於pssh-2.3.1-4.2.x86_64.rpm python-pssh-2.3.1-4.2.x86_64.rpm


 

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