自己做了一次crorsync+pacemaker+crmsh,並配置cacti。本文沒有配置過程,所有軟件均使用yum方式安裝,僅僅只是記錄搭建過程中遇到的一些問題便於以後查閱。
實驗環境:
系統:centos 7
機器:1臺虛擬機、2臺實體機
分配:一臺機器配置nfs,二臺機器做node,nfs共享內容爲mariadb數據文件及cacti文件
軟件版本:mariadb5.5.52,cacti0.8.8b,corosync2.4.0,pacemaker1.1.15,crmsh3.0.0
實驗前準備:所有機器做好時間同步,node1和node2能夠基於節點名字互相通訊以及免密碼ssh登錄。node1和node2修改hostname爲基於FQDN格式名稱,如node1.a.com。所有機器安裝lamp環境,建議安裝上開發組件“Development Tools”,"Server Platform Development"。修改系統網卡名稱爲eth0
所有軟件均用yum方式安裝,過程省略。
node1和node2安裝corosync、pacemaker、crmsh、mariadb、nfs,不要啓動數據庫,修改/etc/my.cnf中datadir爲一個統一路徑
nfs機器上裝好mariadb,並做好安全初始化,創建cacti用戶並授權。
crmsh依賴於pssh,且centos 7的yum庫中沒有此包組,解決方法爲進入/etc/yum.repo.d/
# http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/network:ha-clustering:Stable.repo
# yum repolist
nfs機器上配置好數據庫的數據存放路徑並通過nfs共享,cacti也一樣。
cacti配置過程中遇到的問題:
流量圖無數據,流量顯示-nan
手動運行php /var/www/html/cacti/poller.php --force 提示結束時間要早於開始更新時間
解決方法爲刪除/cacti/rra下所有文件並重新運行php /src/poller.php --force
手動運行php /var/www/html/cacti/poller.php --force 提示時區不爲UTC
修改/etc/php.ini文件data.timezone = Asia/Shanghai,重啓php
corosync配置文件:/etc/corosync/corosync.cnf修改如下
bindnetaddr: 192.168.3.0 (實驗中的機器都是192.168.3.0網段的機器)
mcastaddr:239.212.31.11 (廣播地址可隨意,只要不是默認的地址即可)
secauth:on
最後添加
service {
ver: 0
name: pacemaker
use_mgmtd:yes
}
aisexec {
user: root
group: root
}
quorum {
provider: corosync_votequorum
expected_votes: 2
two_node: 1
}
corosync-keygen 產生密鑰文件,作爲node1與node2通信憑證
scp -p authkey corosync.conf node2:/etc/corosync 將配置文件、密鑰複製一份到node2
crmsh配置集羣
crm config
property no-quorum-policy=ignore修改法定票數設定
property stonith-enabled=false關閉仲裁設備
primitive webip ocf:heartbeat:IPaddr parmas ip=192.168.3.131 nic=eth0 cidr_netmask=16 op monitor interval=10s(verify會產生告警,可忽略)配置VIP
primitive httpd service:httpd op monitor interval=10s timeout=20s op start timeout=20s op stop timeout=20s 配置httpd服務資源
primitive mariadb systemd:mariadb op monitor interval=10s timeout=20s op start timeout=20s op stop timeout=20s 配置mariadb服務資源
primitive nfshttpd ocf:heartbeat:Filesystem params device="192.168.3.124:/var/www/html/cacti" directory="/var/www/html/cacti" fstype="nfs" op monitor interval=20s timeout=20s op start timeout=20s op stop timeout=20s 配置cacti資源
primitive nfsmariadb ocf:heartbeat:Filesystem params device="192.168.3.124:/data/mydata" directory="/data/mydata" fstype="nfs" op monitor interval=20s timeout=20s op start timeout=20s op stop timeout=20s 配置mariadb數據存放資源
group cacti webip nfshttpd nfsmariadb mariadb httpd 配置組資源,可無須定義排列約束
location cacti_on_node1 cacti 50: node1.a.com 定義資源組傾向node1
verify
commit
crmsh中遇到的問題:
所有資源在node1運行正常,node2上mariadb無法啓動。通過systemctl status mariadb查看到一條報錯Failed to start Cluster Controlled mariadb。其原因是由於最初定義mariadb服務資源時使用的是service:mariadb,更換成systemd:mariadb後恢復。