群集节点准备:
1.配置主机名及解析
2.配置时钟
3.配置iptables防火墙允许集群组件运行
4.配置pcs守护程序
5.配置hacluster账户密码
6.集群配置文件
1.安装pacemaker配置工具
[root@rs1 ~]# yum install -y pacemaker corosync pcs psmisc policycoreutils-python fence-agents-all
了解每一个包是干嘛的
[root@rs1 ~]# rpm -qi fence-agents-all
...
2.配置时钟和主机名解析
群集中各个节点的时钟要一致
两个虚拟机中时间同步:
[root@rs1 ~]# yum install -y ntp #安装服务
[root@rs1 ~]# ntpdate #同步时间(前提是虚拟机可以联网)
[root@rs1 ~]# crontab -e #修改cron表,设置每30分钟更新矫正一次时间
*/30 * * * * /sbin/ntpdate &> /dev/null
[root@rs1 ~]# systemctl restart ntpd
#下面的可以省略,也可以直接ntpdate IP地址
[root@rs1 ~]# vim /etc/hosts
...
192.168.43.10 rs1
192.168.43.20 rs2
[root@rs2 ~]# yum install -y ntp
[root@rs2 ~]# vi /etc/hosts
...
192.168.43.10 rs1
192.168.43.20 rs2
[root@rs2 ~]# crontab -e
*/30 * * * * /sbin/ntpdate rs1
[root@rs2 ~]# ntpdate rs1
7 May 11:22:15 ntpdate[4434]: adjust time server 192.168.43.10 offset 0.046371 sec
测试:
[root@rs1 ~]# ssh rs2 'date';date
root@rs2's password:
Thu May 7 11:26:54 EDT 2020
Thu May 7 11:26:54 EDT 2020
3.配置防火墙允许集群组件通过(rs1和rs2都做)
[root@rs1 ~]# systemctl start firewalld
[root@rs1 ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@rs1 ~]# firewall-cmd --permanent --add-service=high-availability
success
[root@rs1 ~]# firewall-cmd --reload
success
4.配置pcs守护程序
[root@rs1 ~]# systemctl start pcsd
[root@rs1 ~]# systemctl enable pcsd
Created symlink from /etc/systemd/system/multi-user.target.wants/pcsd.service to /usr/lib/systemd/system/pcsd.service.
[root@rs2 ~]# systemctl start pcsd
[root@rs2 ~]# systemctl enable pcsd
Created symlink from /etc/systemd/system/multi-user.target.wants/pcsd.service to /usr/lib/systemd/system/pcsd.service.
5.配置hacluster账户密码
安装软件包的时候会自动创建一个hacluster账户,它的密码是禁用的。这个用户用于群集间通信的身份验证
必须在每个节点上设置密码以启用此账户。
[root@rs1 ~]# echo "a" | passwd --stdin hacluster
Changing password for user hacluster.
passwd: all authentication tokens updated successfully.
[root@rs2 ~]# echo "a" | passwd --stdin hacluster
Changing password for user hacluster.
passwd: all authentication tokens updated successfully.
6.集群及Pacemaker配置文件
群集的创建
1认证组成集群的节点
2配置和同步集群节点
3在集群节点中启动集群服务
1认证组成集群的节点
在任意一个节点上验证所有的节点
使用前面设置的hacluster账户
注意iptables规则
语法:pcs cluster auth node1 node2 noden -u username -p passwd
例:[root@rs1 ~]# pcs cluster auth rs1 rs2
Username: hacluster
Password:
rs1: Authorized
rs2: Authorized
2配置和同步集群节点
语法:pcs cluster setup [--start] [--local] --name cluster_name node1 node2 noden...
创建集群配置文件可以手动创建
[root@rs1 ~]# cd /etc/corosync/a
[root@rs1 corosync]# cat corosync.conf.example
也可以利用pcs setup 自动创建群集配置文件
[root@rs1 corosync]# pcs cluster setup --name cluster1 rs1 rs2
[root@rs1 corosync]# pwd
/etc/corosync
[root@rs1 corosync]# ls
corosync.conf corosync.conf.example.udpu uidgid.d
corosync.conf.example corosync.xml.example
3在集群节点中启动集群服务
语法:pcs cluster start [--all] [node1] [node2] [....]
启动群集节点(也会同时启动pacemaker和corosync)
[root@rs1 corosync]# pcs cluster start --all
rs1: Starting Cluster (corosync)...
rs2: Starting Cluster (corosync)...
rs1: Starting Cluster (pacemaker)...
rs2: Starting Cluster (pacemaker)...
查看群集状态
[root@rs1 corosync]# pcs status
Cluster name: cluster1
WARNINGS:
No stonith devices and stonith-enabled is not false
Stack: corosync
Current DC: rs1 (version 1.1.20-5.el7-3c4c782f70) - partition with quorum
Last updated: Thu May 7 21:56:25 2020
Last change: Thu May 7 21:54:40 2020 by hacluster via crmd on rs1
2 nodes configured
0 resources configured
Online: [ rs1 rs2 ]
No resources
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
创建完群集之后,pcs会在每个节点上生成一个GUI的东西,通过ip地址可以访问gui页面进行管理(用户名是hacluster,地址采用https协议加密,端口号是2224)
也可用图形化界面来管理集群