一、监控 :关键监控指标与告警设置
监控必须覆盖架构的每一层,形成立体视图。
• 操作系统层 :
◦ 节点状态 :集群成员状态( crm_mon -1 ),确保所有节点在线。
◦ 资源状态 :所有Pacemaker资源是否运行在正确的节点且状态正常( pcs status )。
◦ STONITH配置 :确认STONITH设备配置正确且可用( pcs stonith show , pcs stonith confirm )。
◦ 系统负载 :CPU、内存、Swap使用率。HANA是内存数据库,Swap被使用通常是严重警告。
◦ 网络 :心跳网络、复制网络的丢包率、延迟和带宽使用情况。
• 存储层 :
◦ 共享存储可用性 :从每个节点检查 /hana/data 和 /hana/log 的文件系统是否正常挂载且可读写。
◦ 存储性能 :IO延迟、吞吐量。日志卷的写入延迟直接影响事务提交速度和系统复制性能。
• HANA数据库层 :
◦ 系统复制状态 :这是 最核心 的监控项。使用SQL查询: SELECT DATABASE_NAME, HOST, VOLUME_ID, REPLICATION_STATUS, REPLICATION_MODE FROM SYS.M_SERVICE_REPLICATION 。必须确保 REPLICATION_STATUS 为 ACTIVE 或 SYNCHRONIZED (取决于模式)。
◦ 复制延迟 :监控从主节点到备节点的日志传输和应用延迟(秒或日志位置差)。延迟过大意味着备节点数据严重落后,切换时数据丢失风险高或恢复时间极长。SQL: SELECT * FROM SYS.M_SERVICE_REPLICATION_DETAILS 。
◦ HANA服务状态 :所有关键服务(indexserver, nameserver, xsengine等)是否运行正常。
◦ HANA告警 :定期检查HANA自带的告警中心(Alert Monitor),处理所有Warning和Critical级别的告警。
告警设置建议 :对于 REPLICATION_STATUS 变为 ERROR 或 INITIALIZING (非计划内)、复制延迟超过预定阈值(如30秒)、集群资源发生故障转移等事件,必须配置为最高级别的实时告警(如短信、电话),并立即排查。
二、巡检: 定期巡检清单
每周或每月的定期巡检,能发现潜在风险。
-
集群配置一致性检查 :使用 crm_verify -L -V 检查集群配置是否有错误或警告。对比两个节点的Pacemaker配置是否一致。
-
STONITH功能测试 :在业务低峰期, 在严格的变更窗口和回滚计划下 ,执行STONITH测试。例如,通过Pacemaker命令手动触发对备节点的隔离,观察其是否被正确关闭,以及主节点是否稳定。测试后及时恢复。
-
系统复制完整性测试 :在备节点上,可以临时将复制模式从 async 改为 sync (如果生产是async),观察是否能正常同步且对主节点性能影响是否在可接受范围。然后再改回。这验证了复制链路的健壮性。
-
故障切换演练 :这是 最重要的 巡检项目。模拟真实故障,验证整个切换流程。方法包括:
◦ 软重启主节点HANA服务 :在Pacemaker层面,将主节点的HANA资源迁移到备节点( pcs resource move )。观察业务中断时间、数据一致性。
◦ 模拟网络中断 :在主节点上,临时禁用业务网卡或心跳网卡,观察集群是否按预期触发切换。
◦ 计划内切换 :执行一次完整的、计划内的主备切换操作,记录每个步骤的时间和结果。这不仅是测试,也是为真正的硬件维护做准备。
切记:所有演练必须在预先申请好的维护窗口、有完整回滚方案、并通知业务方的情况下进行!
三 常见运维操作命令参考
掌握命令行工具是运维的基本功。
• 集群状态查看 :
# 查看集群和资源详细状态
crm_mon -1
# 或使用pcs命令(RHEL)
pcs status
# 查看资源配置
pcs resource show
# 查看STONITH设备
pcs stonith show
• 手动资源控制 :
# 将资源(如虚拟IP)迁移到另一个节点(常用于计划内维护)
pcs resource move <resource_name> <target_node>
# 清理资源的故障状态,允许其再次启动
pcs resource cleanup <resource_name>
# 手动启动/停止/重启某个资源
pcs resource [start|stop|restart] <resource_name>
• HANA系统复制管理 :
# 在备节点上,以root执行,接管为主节点(需谨慎,通常由集群自动触发)
su - <sid>adm
HDB stop
hdbnsutil -sr_takeover
# 查看系统复制状态
python /usr/sap/<SID>/HDB<instance>/exe/python_support/systemReplicationStatus.py
或者
hdbnsutil -sr_state
• 故障排查 :
# 查看集群日志(关键)
journalctl -u pacemaker -f
journalctl -u corosync -f
# 查看资源代理的详细操作日志
pcs resource debug-start <resource_name>
pcs resource debug-stop <resource_name>
#多路径状态查看
multipath -ll