192.168.1.101、192.168.1.102、192.168.1.103),并配置网关、DNS(如8.8.8.8)。通过vi /etc/sysconfig/network-scripts/ifcfg-ens33修改配置,关键参数如下:BOOTPROTO=static
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
修改后重启网络:systemctl restart network。hostnamectl set-hostname node1设置主机名(如node1、node2、node3),并在每台节点的/etc/hosts文件中添加集群节点映射:192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
确保节点间能通过主机名互相ping通。systemctl stop firewalld;永久禁用:systemctl disable firewalld。修改SELinux配置:sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config,并执行setenforce 0使其生效。yum install -y ntp && systemctl start ntpd && systemctl enable ntpd,确保节点间时间误差小于1秒(可通过ntpdate node1手动同步)。高可用集群的核心组件为Corosync(心跳管理)、Pacemaker(资源调度)、PCS(命令行配置工具)及Fence Agents(故障隔离)。
在所有节点上执行以下命令安装:
yum install -y corosync pacemaker pcs fence-agents-all resource-agents
安装完成后,启动pcsd服务(PCS的守护进程)并设置开机自启:
systemctl start pcsd && systemctl enable pcsd
```。
#### **三、集群配置**
1. **认证集群节点**
在任意一台节点(如`node1`)上,使用`pcs`命令认证所有集群节点(密码为`hacluster`用户的密码,需保持一致):
```bash
pcs cluster auth node1 node2 node3 -u hacluster -p your_password --force
执行成功后会显示“Authentication succeeded”。
创建并启动集群
在node1上执行以下命令创建集群(集群名称自定义,如my_ha_cluster):
pcs cluster setup --start --name my_ha_cluster node1 node2 node3
参数说明:--start表示创建后立即启动集群,node1 node2 node3为集群节点列表。
启用集群自动启动:
pcs cluster enable --all
验证集群状态:
pcs cluster status
正常输出应显示所有节点为“Online”状态。
配置Fencing(防脑裂)
Fencing是高可用集群的关键机制,用于在节点故障时强制隔离(如重启节点),防止“脑裂”(多个节点同时认为自己是主节点)。
fence_virt代理):pcs stonith create fence_node1 fence_virt pcmk_host_list="node1" ipaddr=192.168.1.101 login=root passwd=your_password
pcs stonith create fence_node2 fence_virt pcmk_host_list="node2" ipaddr=192.168.1.102 login=root passwd=your_password
pcs stonith create fence_node3 fence_virt pcmk_host_list="node3" ipaddr=192.168.1.103 login=root passwd=your_password
pcs property set stonith-enabled=true
验证Fencing配置:
pcs stonith list
```。
创建虚拟IP资源
虚拟IP(VIP)是集群对外提供服务的统一入口,当主节点故障时,VIP会自动漂移到备用节点。
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=10s
参数说明:ip为VIP地址(需在业务网段内且未被使用),cidr_netmask为子网掩码(如24表示255.255.255.0)。
创建Web服务资源
使用ocf:heartbeat:apache资源代理管理Apache服务(需提前安装Apache:yum install -y httpd)。
pcs resource create web_server ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=20s
参数说明:configfile为Apache配置文件路径,statusurl为服务状态检测接口。
配置资源约束
pcs constraint colocation add virtual_ip with web_server INFINITY
pcs constraint order virtual_ip then web_server
验证约束:
pcs constraint list
```。
查看集群状态
pcs status
确认所有节点为“Online”,资源(VIP、Web Server)已启动。
模拟节点故障
node1上停止Pacemaker和Corosync服务(模拟节点宕机):systemctl stop pacemaker && systemctl stop corosync
pcs status输出,确认VIP和Web服务已漂移到node2或node3。node1,观察资源是否自动回迁(取决于资源约束配置)。5404/5405、Pacemaker的2224)的放行规则。通过以上步骤,即可完成CentOS虚拟机高可用集群的搭建,实现服务的自动故障转移与业务持续可用。