CentOS国外VPS高可用集群部署:从新手到实战
文章分类:技术文档 /
创建时间:2025-08-22
想让CentOS国外VPS更稳定?高可用集群就像给服务器组了个"互助小队"——就算其中一台突然"请假",剩下的也能立刻接手工作,系统照样正常运转。本文从新手视角出发,带你一步步完成CentOS国外VPS高可用集群部署。
准备工作:搭好"互助小队"基础
首先得准备至少两台CentOS国外VPS(建议2-3台),就像组小队至少需要两个队员。注意三点关键:
- 系统版本一致:统一用CentOS 7或8(本文以CentOS 7为例),避免因系统差异导致兼容问题;
- 网络互通:用ping命令测试节点间IP连通(如`ping 192.168.1.102`),确保能互相"打招呼";
- 安装核心工具:高可用集群依赖Pacemaker(集群资源管理器)和Corosync(集群通信引擎),这俩就像小队的"队长"和"传声筒"。
第一步:安装Pacemaker与Corosync
在每台CentOS国外VPS上执行安装命令(需root权限):
yum install -y pacemaker corosync fence-agents
- pacemaker:负责分配任务(管理资源)、监控节点状态;
- corosync:负责节点间实时通信(同步状态、传递指令);
- fence-agents:可选但推荐安装,用于"隔离"故障节点(防止脑裂)。
配置Corosync:定好"传声筒"规则
Corosync的配置文件在`/etc/corosync/corosync.conf`,用`vim`打开后重点修改三部分:
1. totem模块(通信协议):
version: 2
secauth: off # 测试环境可关闭安全认证,生产环境建议开启
transport: udpu # 常用UDP传输协议
2. nodelist模块(节点列表):
nodelist {
node {
ring0_addr: 192.168.1.101 # 节点1的IP
nodeid: 1 # 节点ID(唯一)
}
node {
ring0_addr: 192.168.1.102 # 节点2的IP
nodeid: 2
}
}
3. quorum模块(仲裁机制):
quorum {
provider: corosync_votequorum
expected_votes: 2 # 总节点数
two_node: 1 # 2节点集群需开启此参数
}
修改后重启服务生效:`systemctl restart corosync`,用`corosync-cfgtool -s`检查配置是否加载成功。
配置Pacemaker:分配"任务队长"职责
Pacemaker通过命令行工具`crm`管理,先启动服务:`systemctl start pacemaker`,然后执行`crm configure`进入交互模式。
添加基础资源示例(以Apache服务为例):
crm(live)# primitive web_server apache \
op monitor interval=30s # 每30秒检查一次服务状态
crm(live)# colocation web_on_node inf: web_server:0 node-1:100 # 优先在node-1运行
crm(live)# commit # 提交配置
- primitive:定义具体资源(如apache服务);
- op monitor:设置监控策略(防止服务假死);
- colocation:设置资源偏好节点(数值越高优先级越高)。
测试与排障:验证"互助小队"可靠性
部署完成后必须做两项测试:
1. 模拟节点故障:在其中一台VPS执行`systemctl stop pacemaker`模拟宕机,观察另一台是否自动启动web_server(用`crm status`查看资源迁移状态);
2. 验证服务连续性:用浏览器访问虚拟IP(需提前配置),确认故障切换前后服务无中断(延迟不超过30秒为正常)。
常见问题排查:
- 节点无法通信:检查防火墙是否开放5404/5405端口(Corosync默认端口),执行`firewall-cmd --add-port=5404-5405/udp --permanent`;
- 资源启动失败:用`crm_resource -l`查看资源日志,重点检查依赖服务(如apache是否安装);
- 脑裂(双主):检查fence-agents是否生效,确保故障节点被"隔离"(无法重新加入集群)。
掌握这套流程后,你的CentOS国外VPS就能像训练有素的"互助小队",无论是跨境电商网站还是企业应用,都能在单节点故障时保持稳定运行,有效降低因服务中断导致的客诉风险。