Linux高可用之Corosync+Pacemaker详解

Linux高可用之Corosync+Pacemaker详解

安装配置高可用集群:
    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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4f796ab667f90182b458f48de4978eaf.html