新闻资讯
领先云端方案商,专注云桌面、云手机研发,凭核心虚拟化技术与云端算力,
打造安全高效数字化平台,提供全周期支持。
分类
相关文章
热门标签

堡垒机 sash高可用部署方案与故障切换演练指南

2026年5月9日

1. 概述与目标

1. 目标:实现堡垒机 SASH 的高可用(Active/Passive 或 Active/Active),保证控制面可达、会话和审计数据一致。小分段:说明可用性指标(RPO/RTO);说明测试频率(建议季度演练)。

2. 环境准备

2. 准备两台或多台堡垒机节点(主/备),建议同一版本SASH。小分段:准备节点A(主)、节点B(备);准备数据库服务器(或使用主-主/主-备);准备共享或同步存储(NFS/rsync);准备VIP子网和负载均衡器。

3. 软件与依赖安装

3. 在各节点上安装SASH、keepalived、haproxy与rsync。小分段:示例命令(CentOS):yum install -y keepalived haproxy rsync;配置防火墙放行TCP/22、TCP/443、VIP的管理端口与keepalived的VRRP(协议号112)。

4. 数据库高可用设计与配置

4. 建议使用MySQL主主或主从复制,保证审计/会话数据实时同步。小分段:创建用户并配置二进制日志:在主上执行:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
在备上配置CHANGE MASTER TO MASTER_HOST='主IP', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1;并启动slave:START SLAVE;

5. 文件与配置同步策略

5. SASH 配置、密钥与插件需同步。小分段:推荐使用双向rsync或lsyncd实时同步;示例rsync命令:rsync -az --delete /etc/sash/ nodeB:/etc/sash/;加crontab或systemd-timers保证周期同步。

6. Keepalived(VRRP)实现VIP漂移

6. 在主/备各自配置keepalived.conf实现VIP管理。小分段:示例配置片段:
vrrp_instance VI_1 { state MASTER/BACKUP; interface eth0; virtual_router_id 51; priority 100/90; advert_int 1; authentication { auth_type PASS; auth_pass 1111; } virtual_ipaddress { 192.168.1.10 } }

7. HAProxy/负载均衡(可选Active/Active)

7. 若部署Active/Active,可通过HAProxy做VIP端口的会话分发,后端为两台SASH实例。小分段:示例haproxy.cfg:
frontend sash_frontend bind *:443 mode tcp default_backend sash_backend
backend sash_backend mode tcp balance source server sash1 10.0.0.1:443 check server sash2 10.0.0.2:443 check

8. 健康检查与自动切换脚本

8. 配置keepalived的track_script调用自定义健康检查脚本,检查SASH关键服务、数据库连接和审计写入。小分段:示例script:/etc/keepalived/check_sash.sh,返回0表示健康,非0返回故障;在keepalived.conf中引用track_script { chk_sash }。

9. 故障切换演练前的验证

9. 在演练前逐项核对:小分段:1) VIP是否可手动切换(systemctl restart keepalived 或 ip addr add/remove);2) 数据库延迟是否在可接受范围内(SHOW SLAVE STATUS);3) 配置文件是否同步;4) 审计日志能在主备间立即可见。

10. 演练步骤:有计划的主动故障切换(演练场景一)

10. 步骤详解:小分段:1) 通知运维与业务方并进入变更窗口;2) 将VIP从主切换到备:在主执行 systemctl stop keepalived,或降低主优先级;3) 在备上确认VIP已拥有:ip addr show | grep 192.168.1.10;4) 在备上检查SASH服务与数据库连接;5) 执行登录验证与回放审计日志(确认会话正常)。

11. 演练步骤:被动故障(主机宕机)模拟

11. 步骤详解:小分段:1) 在主机上模拟宕机(如断网或shutdown -h now);2) 观察备节点是否在1-3秒内接管VIP(keepalived advert_int);3) 在备上验证业务正常;4) 检查数据库是否自动切换并无数据丢失,处理漂移或延迟。

12. 故障后数据一致性验证与回滚方案

12. 步骤详解:小分段:1) 演练后对比主备数据库binlog位置与审计日志,确认无RPO违背;2) 若存在写分裂,采用Promote/Point-in-time恢复或基于binlog回放;3) 恢复原主机后,先以备节点身份同步数据再加入集群:STOP SLAVE; CHANGE MASTER TO MASTER_HOST='新主'; START SLAVE; 确认无错误后再开放流量。

13. 常见故障与排查要点(Q&A)

13. Q:VIP不漂移怎么办?
A:检查keepalived状态(systemctl status keepalived),查看日志/var/log/messages或journalctl -u keepalived;确认interface正确、virtual_router_id一致、auth_pass一致;确保没有其他设备抢占该VIP。

14. 频次与演练建议(Q&A)

14. Q:应多久做一次故障切换演练?
A:建议至少每季度进行一次全面演练,包含主动切换和被动宕机;并在每次SASH或依赖组件升级后进行一次回归演练。

15. 最佳实践与安全注意(Q&A)

15. Q:有什么安全或运营上的注意事项?
A:保持配置与密钥同步时使用加密通道(SSH key、rsync+SSH);对keepalived/HAProxy配置严格控制权限;监控延迟并设置报警;演练时务必在维护窗口并通知相关团队,演练脚本要能回滚。


来源:堡垒机 sash高可用部署方案与故障切换演练指南