统信UOS构建高可用集群必须安装Pacemaker,可通过APT源安装、二进制包手动部署、Docker容器运行三种方式实现,并需用PCS初始化集群、启用STONITH防护。

如果您在统信UOS系统上需构建高可用集群,但缺少Pacemaker核心组件,则无法启动资源管理与故障转移机制。以下是完成Pacemaker安装及基础高可用配置的多种可行方法:
一、通过APT源安装Pacemaker与Corosync
该方法适用于统信UOS官方软件源已收录较新版本Pacemaker(≥2.1.0)且网络通畅的环境,依赖系统包管理器自动解决依赖关系。
1、更新系统软件源列表并升级基础组件:
sudo apt update && sudo apt upgrade -y
2、安装Pacemaker核心套件及配套工具:
sudo apt install pacemaker corosync pcs fence-agents-all -y
3、验证安装结果:
sudo pcs status | head -n 5
4、若提示pcs命令未找到,说明pcs未随pacemaker默认安装,需单独执行:
sudo apt install pcs -y
二、使用二进制包手动部署Pacemaker
当APT源中Pacemaker版本过旧(如低于2.0.5)或缺失时,可从上游项目官网获取预编译二进制包,绕过源仓库限制,确保功能完整性与安全补丁支持。
1、下载适配统信UOS(基于Debian 11/12内核)的Pacemaker+Corosync二进制包:
wget https://github.com/ClusterLabs/pacemaker/releases/download/Pacemaker-2.1.7/pacemaker-2.1.7-debian-12-amd64.deb
2、下载Corosync配套包:
wget https://github.com/corosync/corosync/releases/download/3.1.7/corosync-3.1.7-debian-12-amd64.deb
3、按依赖顺序安装:
sudo dpkg -i corosync-3.1.7-debian-12-amd64.deb && sudo dpkg -i pacemaker-2.1.7-debian-12-amd64.deb
4、修复可能存在的依赖缺失:
sudo apt --fix-broken install -y
5、确认关键服务二进制路径存在:
ls /usr/sbin/pacemakerd /usr/sbin/corosync
三、基于Docker容器运行Pacemaker服务
适用于开发测试场景或隔离部署需求,避免宿主机系统库冲突,同时支持快速启停与版本切换。
1、拉取经验证的Pacemaker容器镜像:
sudo docker pull registry.cn-hangzhou.aliyuncs.com/clusterlabs/pacemaker:2.1.7
2、创建专用网络以保障集群通信:
sudo docker network create --driver bridge --subnet=192.168.100.0/24 ha-net
3、启动首个Pacemaker节点容器,并挂载必要配置目录:
sudo docker run -d --name pcmk-node1 --network ha-net --privileged --cap-add=SYS_ADMIN -v /etc/corosync:/etc/corosync -v /var/lib/pacemaker:/var/lib/pacemaker -v /run/corosync:/run/corosync registry.cn-hangzhou.aliyuncs.com/clusterlabs/pacemaker:2.1.7
4、进入容器检查服务状态:
sudo docker exec -it pcmk-node1 crm status
5、若输出中出现ERROR: Unable to connect to cluster,表示Corosync未就绪,需先在容器内执行:
corosync -f -d
四、启用并初始化PCS认证与集群服务
无论采用何种安装方式,Pacemaker均需通过PCS工具完成集群初始化与节点认证,否则无法形成有效集群拓扑。
1、启动并启用corosync与pacemaker系统服务:
sudo systemctl enable corosync pacemaker && sudo systemctl start corosync pacemaker
2、设置PCS用户密码(默认为hacluster):
sudo passwd hacluster
3、在首节点执行集群初始化:
sudo pcs cluster setup --name uos-ha-cluster node1 node2
4、启动集群并启用开机自启:
sudo pcs cluster start --all && sudo pcs cluster enable --all
5、验证集群状态是否显示两个节点均为Online:
sudo pcs status nodes
五、配置基础资源并启用STONITH防护
高可用集群必须启用STONITH(Shoot The Other Node In The Head)机制,防止脑裂导致双主写入,这是统信UOS生产环境强制要求的安全基线。
1、检查当前是否启用STONITH:
sudo pcs property show stonith-enabled
2、若返回值为false,立即启用:
sudo pcs property set stonith-enabled=true
3、添加虚拟机级Fence设备(以KVM为例):
sudo pcs stonith create my-fence fence_virt pcmk_host_list="node1 node2" ipaddr="192.168.1.1" login="root" passwd="your_password" ssl_insecure=1
4、校验Fence设备是否处于Started状态:
sudo pcs stonith show
5、禁止资源在单节点上运行(防止单点误操作):
sudo pcs resource defaults resource-stickiness=INFINITY

















