pacemaker corosync 做高可靠的WEB HA

来源:互联网 发布:手机数据清除有影响吗 编辑:程序博客网 时间:2024/06/06 13:15

配置部署HA集群

前期环境准备

各节点(即主机)的主机名与“uname -n”的结果保持一致

# pcmk-1+pcmk-2:vi /etc/hosts192.168.10.253  pcmk-1.clusterlabs.org pcmk-1192.168.10.254  pcmk-2.clusterlabs.org pcmk-2#pcmk-1:vi/etc/sysconfig/networkNETWORKING=yesHOSTNAME=pcmk-1#pcmk-2:NETWORKING=yesHOSTNAME=pcmk-2

各节点间可基于密钥进行SSH通信,而无需密码

#产生密钥ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""#拷贝受权密钥cp .ssh/id_dsa.pub .ssh/authorized_keys#拷贝密钥到 pcmk-2虚拟机scp -r .ssh pcmk-2:#查看ssh 是否免密码登陆ssh pcmk-2 -- uname -n


关闭防火墙:

#停止防火墙service iptables stop#查看防火墙的状态service iptables status#开机启动 防火墙停止chkconfig iptables off#开机启动 查看防火墙状态

部署方案:

安装配置

yum install pacemaker


配置: pcmk-1 和 pcmk-2 的Corosync 配置文件

修改Corosync的核心模板配置文件 改为corosync.conf

# Please read the corosync.conf.5 manual pagecompatibility: whitetanktotem {        version: 2      #版本号        secauth: off#是否启动Corosync认证。使用corosync-keygen命令生成密钥        threads: 0      #用于安全认证开启的线程,0为不急于线程模式工作。默认就行        interface {                ringnumber: 0                bindnetaddr: 192.168.10.253     #修改心跳线网段                mcastaddr: 239.255.1.1          #组播传播心跳信息                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: on        logger_subsys {                subsys: AMF                debug: off        }}aisexec { user: root group: root}#启用pacemakerservice { name: pacemaker ver: 0}

启动:pcmk-1 和 pcmk-2 的Corosync



检查:pcmk-1 和 pcmk-2 的Corosync 是否启动

#查看 Corosync 是否启动 的命令grep -e "corosync.*network interface" -e "Corosync Cluster Engine" -e "Successfully read main configuration file" /var/log/cluster/corosync.loggrep TOTEM /var/log/cluster/corosync.log#查看 pacemaker 是否启动 的命令grep pcmk_startup /var/log/cluster/corosync.log


检查CorosyncHA的状态:

#查看Corosync 集群状态crm_mon



安装:crmsh

yum install crmsh



查看Pacemaker 的默认配置:

crm configure show


crm configure show xml


检查配置的有效性

crm_verify -L


关闭STONITH

#关闭stonith属性(默认是开启的)crm configure property stonith-enabled=false#然后在检查crm_verify -L#查看 配置多了一个stonith-enabled属性crm configure show


添加资源:

#查看 pacemaker 状态,可以看到2个节点,0个资源crm status


#添加crm管理heartbeat,绑定网卡资源。crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 params ip=192.168.0.222 cidr_netmask=32 op monitor interval=30s


添加 pacemaker 选举票数,如果票数只有2票,如果其中一个节点宕机了,防止不切换:

crm configure property no-quorum-policy=ignore


添加httpd服务:

yum install httpd wget


pcmk-1 和 pcmk-2 添加httpd 的默认页面:

#pcmk-1 和 pcmk-2vi /var/www/html/index.html#pcmk-1 httpd 内容<html><body>My Test Site - pcmk-1</body></html>


添加httpd服务 到pacemaker 资源中:

crm configure primitive WebSite ocf:heartbeat:apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=1min


添加pacemaker的排列约束(colocation)和顺序约束(order)(一般这两个是成对出现):
添加排列约束(colocation

crm configure colocation website-with-ip INFINITY: WebSite ClusterIP


添加顺序约束(order)

crm configure order apache-after-ip mandatory: ClusterIP WebSite


添加位置约束(location)

crm configure location prefer-pcmk-1 WebSite 50: pcmk-1



原创粉丝点击