linux双机热备如何关机
linux双机热备如何关机详细介绍
Linux 双机热备系统的关机操作需根据具体实现方案(如 Keepalived、Heartbeat、Corosync 等)和当前运行状态进行。以下是通用的关机步骤及注意事项,结合不同工具的操作细节:
一、正常关机流程
1.
确认双机热备状态
- 检查主备角色:使用工具查看当前主备状态(如
ipvsadm、pcs status)。 - 验证数据同步:确保主备节点的数据已同步完成(如通过 Heartbeat 的
hb_gui工具或 Keepalived 的日志)。
2.
手动切换主备(可选)
- Keepalived:
- 降低主节点优先级:修改配置文件(如
/etc/keepalived/keepalived.conf)中的priority值,强制 VIP 切换到备节点。 - 执行命令:
systemctl restart keepalived。
- 降低主节点优先级:修改配置文件(如
- Heartbeat:
- 停止主节点服务:
service heartbeat stop。 - 验证切换:通过
ip addr show检查 VIP 是否迁移到备节点。
- 停止主节点服务:
- Corosync + Pacemaker:
- 强制切换:
pcs resource move <resource_name> <target_node>。 - 验证状态:
pcs status。
- 强制切换:
3.
停止主节点服务
- 关闭业务服务:如
systemctl stop httpd、systemctl stop mysql。 - 禁用资源或 VIP:
- Keepalived:
ipvsadm -C(清除虚拟服务器)。 - Heartbeat:
ip addr del <vip>/<mask> dev <interface>。
- Keepalived:
4.
安全关机主节点
- 执行关机命令:
- 立即关机:
shutdown -h now或halt -p。 - 延迟关机:
shutdown -h +5(5 分钟后关机)。
- 立即关机:
- 验证关机:通过远程登录或物理检查确认主节点已关闭。
5.
关闭备节点(如需)
- 重复步骤 3-4:先切换服务到其他节点(如有),再执行关机。
二、紧急关机流程
1.
强制停止主节点
- 直接断电:仅在系统无响应时使用(如
poweroff命令无效)。 - 风险提示:可能导致数据不一致或服务中断。
2.
恢复双机热备
- 启动主节点:
- 检查状态:
systemctl status keepalived或pcs status。 - 重新同步数据:通过工具(如 Heartbeat 的
hb_gui)或手动复制数据。
- 检查状态:
- 验证服务:确保 VIP 和业务服务已恢复。
三、不同工具的操作细节
1.
Keepalived
- 配置文件路径:
/etc/keepalived/keepalived.conf。 - VIP 管理:
- 添加 VIP:
ip addr add <vip>/<mask> dev <interface>。 - 删除 VIP:
ip addr del <vip>/<mask> dev <interface>。
- 添加 VIP:
- 日志路径:
/var/log/keepalived。
2.
Heartbeat
- 配置文件路径:
/etc/ha.d/ha.cf。 - 手动切换:
- 停止主节点:
service heartbeat stop。 - 启动备节点:
service heartbeat start。
- 停止主节点:
- 日志路径:
/var/log/ha-log。
3.
Corosync + Pacemaker
- 配置文件路径:
/etc/corosync/corosync.conf。 - 资源管理:
- 查看资源:
pcs resource show。 - 移动资源:
pcs resource move <resource_name> <target_node>。
- 查看资源:
- 日志路径:
/var/log/cluster/corosync.log。
四、注意事项
- 数据同步:
- 实时同步:确保主备节点通过 NFS、DRBD 等方式同步数据。
- 检查同步状态:
- Heartbeat:
hb_gui(图形化工具)。 - Keepalived:通过日志或
ipvsadm -L -n查看状态。
- Heartbeat:
- 配置一致性:
- 主备配置文件:确保
ha.cf(Heartbeat)、keepalived.conf(Keepalived)等配置文件一致。 - 验证工具:
- Heartbeat:
hb_check。 - Corosync:
corosync-cfgtool -s。
- Heartbeat:
- 主备配置文件:确保
- 紧急恢复:
- 清除路由表:
ip route flush(主备切换后可能需要)。 - 重新启动服务:
systemctl restart keepalived或pcs cluster start。
- 清除路由表:
- 发行版差异:
- CentOS/RHEL:使用
systemctl管理服务。 - Ubuntu/Debian:使用
service命令或systemctl。
- CentOS/RHEL:使用
五、示例命令
- Keepalived 手动切换:
bash/etc/keepalived/keepalived.conf
systemctl restart keepalived
addr show dev eth0
- Heartbeat 停止主节点:
bashheartbeat stop - Corosync 移动资源:
bashpcs resource move apache_web node2
六、风险与故障处理
- 数据不一致:
- 恢复方法:使用备份数据或通过 DRBD 重新同步。
- 双主状态:
- 处理步骤:
- 强制关闭其中一台节点。
- 检查配置文件和网络连接。
- 重新启动双机热备服务。
- 处理步骤:
- VIP 未迁移:
- 检查防火墙:确保 VRRP/Heartbeat 端口(如 VRRP 默认 8289)未被阻止。
- 验证配置:确认
keepalived.conf或ha.cf中的 VIP 配置正确。
总结
关机操作需遵循 “先切换、后停止” 的原则,确保服务平滑迁移。紧急情况下优先使用工具强制切换,避免直接断电。关机后需验证双机热备状态,确保下次启动时系统正常。具体操作请参考官方文档或联系技术支持。