1.在server4和server5上安装pacemaker和corosync
yum install pacemaker yum install corosync -y
2.修改配置文件
cd /etc/corosync/
cp corosync.conf.example corosync.conf
vim corosync.conf
# Please read the corosync.conf.5 manual page
compatibility: whitetank
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 172.25.70.0 # 集群工作的网段
mcastaddr: 226.94.1.3 # 多播ip
mcastport: 5405 # 多播端口号
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
amf {
mode: disabled
}
service { #启动corosync完成后,就启动pacemaker
name: pacemaker
ver: 0
}
3.将修改好的节点发送给另一个节点
scp corosync.conf server5:/etc/corosync/
在servr5和server4上打开corosync
/etc/init.d/corosync start
4.在两个节点处查看日志,看是否有错误
5.在server4和server5上
yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm
6.两个节点均crm_verify -VL 校验 ,刚开始会报错添加下面这条策略后,就会没错了
7.在server4上
[root@server4 ~]# crm
crm(live)# configure
crm(live)configure# show
node server1
node server4
property $id="cib-bootstrap-options" \
dc-version="1.1.10-14.el6-368c726" \
cluster-infrastructure="classic openais (with plugin)" \
expected-quorum-votes="2"
crm(live)configure# property stonith-enabled=false
# Stonith 即shoot the other node in the head使Heartbeat软件包的一部分,
该组件允许系统自动地复位一个失败的服务器使用连接到一个健康的服务器的遥远电源设备。
Stonith设备是一种能够自动关闭电源来响应软件命令的设备
crm(live)configure# commit
crm(live)configure# show
node server1
node server4
property $id="cib-bootstrap-options" \
dc-version="1.1.10-14.el6-368c726" \
cluster-infrastructure="classic openais (with plugin)" \
expected-quorum-votes="2" \
stonith-enabled="false"
在server4上:
# crm
crm(live)# configure
crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.70.100 cidr_netmask=24 op monitor interval=1min ###添加vip,监控时间间隔1分钟
crm(live)configure# commit
查看虚拟ip会添加上
crm(live)configure# property no-quorum-policy=ignore
###忽略节点数的检测,当一台主机挂掉后会立即接管
# 关闭集群对节点数量的检查,节点server1如果故障,节点server4收不到心跳请求,直接接管程序,保证正常运行,不至于一个节点崩掉而使整个集群崩掉
crm(live)configure# commit
将server4中的haproxy服务配置好
scp rpmbuild/RPMS/x86_64/haproxy-1.6.11-1.x86_64.rpm server5:/root
在server1和server4上rpm -ivh haproxy-1.6.11-1.x86_64.rpm
scp /etc/haproxy/haproxy.cfg server5:/etc/haproxy ###将配置文件发过去
这个rpm包在/root/haproxy-1.6.11/rpmbuild/RPMS/x86_64
.两端均打开haproxy:/etc/init.d/haproxy start
crm(live)configure# primitive haporxy lsb:haproxy op monitor interval=1min ###
crm(live)configure# commit
crm(live)configure# group hagroup vip haporxy ###添加资源管理组
crm(live)configure# commit
crm(live)configure# exit
bye
9.crm_mon监控命令
10.crm node standby 在server1或server4停止服务。在另一端用监控命令查看,发现已经下线。
11.crm node online 在server1或server4开启服务
添加fence设备
在物理机上:
sysytemctl status fence_virtd ###查看fence服务是否开启
在server4上:
stonith_admin -I
###查看有没有fence_xvm文件,如果没有的话安装fence-virt-0.2.3-15.el6.x86_64即可
fence_xvm
fence_wti
fence_vmware_soap
fence_vmware_helper
fence_vmware
fence_virt
stonith_admin -M -a fence_xvm ###查看之前对fence的设置,是否正常
crm(live)configure# primitive vmfence stonith:fence_xvm params pcmk_host_map="server1:test1;server4:test4" op monitor interval=1min
# 添加fence服务处理故障的节点server1:test1 server1是主机名,test1是真实的虚拟机名称
crm(live)configure# commit
crm(live)configure# property stonith-enabled=true ###将禁用的stonith打开
crm(live)configure# commit ##添加一次提交一次
crm(live)configure# exit
crm_mon ###监控下
添加成功话,fence设备会工作在对立的server4上
[root@server4 ~]# echo c > /proc/sysrq-trigger ###把server4的系统搞奔溃,server4会自动重启
fence设备会自动切到server1上,这样高可用就配置成功了