安装配置高可用集群:
1、节点名称:集群每个节点的名称都得能互相解析
/etc/hosts
hosts中主机名的正反解析结果必须跟“uname -n”的结果保持一致;
2、时间必须得同步
使用网络时间服务器同步时间
3、并非必须:各节点间能基于ssh密钥认证通信;
安装:
[root@marvin heartbeat]# yum install corosync -y
配置:
[root@sherry heartbeat]# cd /etc/corosync/
[root@sherry corosync]# ls
corosync.conf.example corosync.conf.example.udpu service.d uidgid.d
[root@sherry corosync]# cp corosync.conf.example corosync.conf
[root@sherry corosync]# vim corosync.conf
compatibility: whitetank #是否兼容0.8以前的版本
totem {
version: 2 #通信协议
secauth: on #安全认证功能 off别人知道多波地址 就可以加入 最好开启
threads: 0 #0表示默认 认证时候并行线程
interface {
ringnumber: 0 #定义环号,防止心跳信息循环发送 就有一块网卡就用0
bindnetaddr: 192.168.1.0 #绑定网络地址
mcastaddr: 225.122.111.111 #224.0.1.0~238.255.255.255 建议用这组临时
mcastport: 5405 #多波端口
ttl:1 #只发一次 避免环路
}
}
logging {
fileline: off
to_stderr: no #标准错误输出
to_logfile: yes
logfile: /var/log/cluster/corosync.log
to_syslog: no #日志开启一项即可
debug: off
timestamp: no #是否记录时间戳
logger_subsys {
subsys: AMF
debug: off
}
}
amf {
mode:disabled #编程相关
}
安装pacemaker:
[root@sherry corosync]# yum install pacemaker -y
自动启动pacemaker:(服务不会启动,还是需要手动启动)
[root@sherry corosync]# vim corosync.conf
service {
ver:1 #以插件方式运行pacemaker
name:pacemaker
}
aisexec{
user:root
group:root
}
密钥文件:
#生产环境请手敲密钥
[root@sherry corosync]# mv /dev/random /dev/random.bak
[root@sherry corosync]# mv /dev/urandom /dev/random
[root@sherry corosync]# corosync-keygen
[root@sherry corosync]# mv /dev/random /dev/urandom
[root@sherry corosync]# mv /dev/random.bak /dev/random
密钥生产:(权限400)
[root@sherry corosync]# ll
total 24
-r-------- 1 root root 128 May 31 20:54 authkey
-rw-r--r-- 1 root root 476 May 31 20:50 corosync.conf
-rw-r--r-- 1 root root 2663 May 11 06:27 corosync.conf.example
-rw-r--r-- 1 root root 1073 May 11 06:27 corosync.conf.example.udpu
drwxr-xr-x 2 root root 4096 May 11 06:27 service.d
drwxr-xr-x 2 root root 4096 May 11 06:27 uidgid.d
配置文件复制到对应节点:
[root@sherry corosync]# scp -P6789 -p authkey corosync.conf root@marvin:/etc/corosync/
crmsh安装:
[root@sherry yum.repos.d]# cd /etc/yum.repos.d/
[root@sherry yum.repos.d]# wget SUSE.org/repositories/network:ha-clustering:Stable/CentOS_CentOS-6/network:ha-clustering:Stable.repo
[root@sherry yum.repos.d]# yum install crmsh -y
启动脚本:
[root@sherry corosync]# /etc/init.d/corosync start
[root@sherry corosync]# /etc/init.d/pacemaker start
#停止时候次序相反
实验服务器:marvin sherry
初始化:
corosync默认启用了stonith,而当前集群并没有相应的stonith设备 我们里可以通过如下命令先禁用stonith:
crm(live)# configure
crm(live)configure# property stonith-enabled=false
crm(live)configure# verify
crm(live)configure# commit
设置投票
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# verify
crm(live)configure# commit