一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

rhel7 pcs+pacemaker+corosync配置主从高可用

时间:2016-11-10 编辑:简简单单 来源:一聚教程网

相较于rhel6/centos6 下的HA配置,rhel7下使用pcs 取代了原先的ccs和luci ,本篇就结合pcs+pacemaker+corosyn+httpd做一个简单的HA配置测试 。

一、主机规划

node1.361way.com : 192.168.122.80
node1.361way.com : 192.168.122.81
VIP : 192.168.122.85
二、软件安装与主机配置

1、先关闭selinux和防火墙并进行时间同步(步骤略)

2、设置主机名

[root@localhost ~]# hostnamectl set-hostname node1.361way.com
另一个节点上用同样的方法配置 。并在/etc/hosts文件内增加如下内容:

192.168.122.80  node1.361way.com  node1
192.168.122.81  node2.361way.com  node2
3、安装httpd与pacemaker行装软件

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# yum install -y pacemaker pcs fence-agents-all
上面软件安装过程中,会自动安装依赖包corosyn 。

三、pcs配置

1、密码配置及pcs服务启动

软件安装完成后,主机上会自动增加有hacluster用户,修改hacluster用户密码:

[root@localhost ~]# cat /etc/passwd|grep hacluster
hacluster:x:189:189:cluster user:/home/hacluster:/sbin/nologin
[root@node1 ~]# echo "redhat" |passwd --stdin hacluster
[root@node2 ~]# echo "redhat" |passwd --stdin hacluster
分别在两个节点上启用pcsd服务:

[root@node1 ~]# systemctl start pcsd.service
[root@node1 ~]# systemctl status pcsd.service
此处服务不用enable,后面有命令可以直接将三个服务enable掉。

2、HA认证及配置文件生成

认证配置和conf文件生成只需要在一个节点上执行,另一个节点会自动产生该文件:

[root@node1 ~]# pcs cluster auth node1 node2 -u hacluster -p redhat
node1: Authorized
node2: Authorized
[root@node1 ~]# pcs cluster setup --name mycluster node1 node2
操作完成后,可以查看下corosync.conf文件,如下:

[root@node1 ~]# cat /etc/corosync/corosync.conf
totem {
    version: 2
    secauth: off
    cluster_name: mycluster
    transport: udpu
}
nodelist {
    node {
        ring0_addr: node1
        nodeid: 1
    }
    node {
        ring0_addr: node2
        nodeid: 2
    }
}
quorum {
    provider: corosync_votequorum
    two_node: 1
}
logging {
    to_logfile: yes
    logfile: /var/log/cluster/corosync.log
    to_syslog: yes
}
另一个节点查看,同样有该文件存在。

3、pcs集群服务启动

[root@node1 ~]# pcs status
Error: cluster is not currently running on this node
[root@node1 ~]# pcs cluster start --all
node2: Starting Cluster...
node1: Starting Cluster...
[root@node2 ~]# pcs status
Cluster name: mycluster
WARNING: no stonith devices and stonith-enabled is not false
Last updated: Wed Nov  9 08:18:17 2016          Last change: Wed Nov  9 08:17:06 2016 by hacluster via crmd on node1
Stack: corosync
Current DC: node1 (version 1.1.13-10.el7-44eb2dd) - partition with quorum
2 nodes and 0 resources configured
Online: [ node1 node2 ]
Full list of resources:
PCSD Status:
  node1: Online
  node2: Online
Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled
设置开机自启动:

[root@node1 ~]# pcs cluster enable --all
node1: Cluster Enabled
node2: Cluster Enabled
配置完成后,通过pcs status再查看,会发现corosync 、pacemaker两个服务会变成开机自启动 。

4、resource资源配置

resource资源同样只需要在其中一个节点上执行即可:

[root@node1 ~]# pcs resource create VirtIP IPAddr ip=192.168.122.85 cidr_netmask=24 op monitor interval=30s
[root@node1 ~]# pcs resource create Httpd apache configfile="/etc/httpd/conf/httpd.conf" op monitor interval=30s
再次查看 pcs状态:

[root@node1 ~]# pcs status
Cluster name: mycluster
WARNING: no stonith devices and stonith-enabled is not false
Last updated: Wed Nov  9 08:29:54 2016          Last change: Wed Nov  9 08:29:20 2016 by root via cibadmin on node1
Stack: corosync
Current DC: node1 (version 1.1.13-10.el7-44eb2dd) - partition with quorum
2 nodes and 2 resources configured
Online: [ node1 node2 ]
Full list of resources:
 VirtIP (ocf::heartbeat:IPaddr):        Stopped
 Httpd  (ocf::heartbeat:apache):        Stopped
PCSD Status:
  node1: Online
  node2: Online
Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
同样,也可以到2号点执行pcs status查看 。

5、启用resource资源

[root@node1 ~]# pcs status resources
 VirtIP (ocf::heartbeat:IPaddr):        Stopped
 Httpd  (ocf::heartbeat:apache):        Stopped
[root@node1 ~]#
[root@node1 ~]# pcs constraint colocation add Httpd with VirtIP INFINITY
[root@node1 ~]# pcs property set stonith-enabled=false
[root@node1 ~]# pcs property set no-quorum-policy=ignore
[root@node1 ~]# pcs property set default-resource-stickiness="INFINITY"
[root@node1 ~]# pcs status resources
 VirtIP (ocf::heartbeat:IPaddr):        Started node1
 Httpd  (ocf::heartbeat:apache):        Started node1
节点2上同样也可以执行pcs status resources进行查看,两边获取的结果是一致的。

分别在两个节点上执行ip a s 确认发现VIP只在其中一个节点上。

四、测试及其他

将其中的主用节点的服务停掉或主机关机,IP停掉,可以发现备用节点可以快速的提供服务 。具体步骤略过。

另外pcsd服务还提供了web管理页面,默认其监听的是ipv6下的2224端口,如果想要使用该服务进行web界面管理,可以分别修改两个节点的/usr/lib/pcsd/ssl.rb文件:

webrick_options = {
  :Port               => 2224,
  #:BindAddress        => '::',
  :BindAddress        => '0.0.0.0',
  #:Host               => '::',
  :Host               => '0.0.0.0',
当前注释的为默认配置,将其修改监听为0.0.0.0 。修改完成后需要重启pscd服务生效。

 

虽然刚刚我们通过命令行的方式配置过两个节点,不过默认web界面上并不会显示 。这里选择增加一个存在的集群,并将节点IP输入后,其会自动识别并可以进行管理。

热门栏目