横向扩展:最新pacemaker+corosync部署详细方案

环境:centos 7

节点数:2

node1: 192.168.122.101

node2: 192.168.122.102

  1. 查看主机名 uname -n

修改主机名

hostnamectl --static --transient set-hostname node1

或者 vi /etc/hostname

修改 /etc/hosts 文件,并且注释掉127.0.0.1 node1(如有,否则步骤11会出问题)

192.168.122.101 node1
192.168.122.102 node2
***配置静态ip(如需要)

添加静态IP

cd /etc/sysconfig/network-scripts/

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.122.101

NETMASK=255.255.255.0

GATEWAY=192.168.122.254

检查:通信中使用的名字与节点名字必须保持一致:“uname -n”命令,或“hostname”展示出的名字保持一致

  1. 以上步骤可以不做,把node1和node2换成对应的IP即可,测试网络是否可通

  2. 同步服务器时间到主机(除非特别说明,以下命令每个节点都要执行,简单布置的情况下该步骤也可不做)

yum install ntp -y
ntpdate cn.pool.ntp.org
或者同步硬件时间到主机

hwclock -s
或者节点之间时间同步(只需在一个执行 *注:如果是虚机,最好找物理主机进行同步,虚机之间的同步将不可用“no server suitable”)

先找路径

which ntpdate

crontab -e
*/3 * * * * /usr/sbin/ntpdate 192.168.0.1 &> /dev/null

  1. 配置互信,可参考这篇文章 Linux配置互信完全版

  2. 安装

yum install -y pacemaker pcs psmisc policycoreutils-python
如果安装不成功,则配置yum源

mv /etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo.bak wget -O
/etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-7.repo

添加DNS

echo nameserver 8.8.8.8 > /etc/resolv.conf
yum makecache

  1. 如有必要,可关闭防火墙以及selinux

    或者放开 tcp 2224端口 udp 5405端口

    否则会导致两个问题

    1、auth验证无法成功

    2、 双机同时启动却都认为对方offline

  2. 打开pcsd进程,并设置开机启动

systemctl start pcsd.service
systemctl enable pcsd.service

  1. 安装后自动生成hacluster账户,设置hacluster账户密码

passwd hacluster
9. 验证操作(只在node1执行)

pcs cluster auth node1 node2
Username: hacluster
Password:
node2: Authorized
node1: Authorized

  1. 使用pcs创建集群,开启集群(同上)

pcs cluster setup --name mycluster node1 node2
pcs cluster start --all
如需单个节点执行可用如下 pcs cluster start nodename 或者

pcs cluster start
Starting Cluster…
或者systemctl start corosync.service systemctl start pacemaker.service

  1. 查看状态

corosync-cfgtool -s
Printing ring status.
Local node ID 1
RING ID 0
id = 192.168.122.101
status = ring 0 active with no faults

当为127.0.0.1时说明集群是失败的 更改/etc/hosts将127.0.0.1 主机名删除 只留默认项
使用pcs status

或者

pcs status corosync

Membership information
----------------------
Nodeid Votes Name
1 1 node1 (local)
2 1 node2
检查工具

crm_verify -L -V
error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined
error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option
error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity
Errors found during check: config not valid

  1. 由于测试环境,需暂时禁用STONITH,否则资源无法enable

pcs property set stonith-enabled=false
设置pacemaker,corosync开机自启动:

[root@node1 ~]> pcs cluster enable --all

node1: Cluster Enabled

node2: Cluster Enabled
13. 添加资源,测试

[root@node1 ~]> pcs resource create ClusterIP ocf?IPaddr2
ip=192.168.122.120 cidr_netmask=32 op monitor interval=30s

查看资源命令

pcs resource --help
查看pacemaker支持资源高可用的列表:

pcs resource list
或者

pcs resource list lsb

pcs resource list ocf
例子:以haproxy为例

先查询 pcs resource list|grep haproxy

查到,可以使用systemd或者service类型,也可自定义ocf类型,这里选择前者

service:haproxy - systemd unit file for haproxy
systemd:haproxy - systemd unit file for haproxy

具体描述

pcs resource describe service:haproxy
创建资源

[root@node1 ~]> pcs resource create Haproxy service:haproxy op start timeout=20s op stop timeout=20s op monitor interval=15s timeout=30s
pcs resource -h 可以查看资源命令

查看状态

pcs status
pcs cluster stop node1
在node2上查看

pcs status
打开节点1的集群
pcs cluster start node1
或者也可以使用待机模式,这时的pacemaker和corosync不会关闭,但无法运行资源,可以模拟故障

pcs cluster standby node1
pcs cluster unstandby node1
或者也可以通过kill 进程,关闭网络的方式模拟生产环境下中断电断网的突发状况

然后通过VIP和haproxy,可以将一些服务进行负载均衡配置,这样可以做到水平扩展,关于haproxy负载均衡的配置,如果不理解,可参考我的另一篇

https://blog.csdn.net/weixin_44436386/article/details/88559775

  1. 添加Apache,Nginx等资源,

参考例子:

创建资源

查看资源列表、创建

pcs resource list | grep apache

pcs resource create WebSite ocf : heartbeat:apache configfile=/etc/httpd/conf/httpd.conf
statusurl=“http://localhost/server-status”
op monitor interval=1min
更改默认超时参数

pcs resource op defaults timeout=240s
Warning: Defaults do not apply to resources which override them with their own defined values
pcs resource op defaults
timeout: 240s
创建资源约束,启动顺序等

pcs constraint colocation add WebSite with ClusterIP INFINITY
pcs constraint
以上命令显示资源约束类型
Resource Location(资源位置):定义资源可以、不可以或尽可能在哪些节点上运行;

Resource Collocation(资源排列):排列约束用以定义集群资源可以或不可以在某个节点上同时运行;

Resource Order(资源顺序):顺序约束定义集群资源在节点上启动的顺序;

pcs constraint order ClusterIP then WebSite
移动资源到某节点

pcs resource move WebSite node1
等等…

以上。

参考: http://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/

你可能感兴趣的:(配置)