集群维护模式
集群维护模式是 GreptimeDB 中的一个安全特性,用于临时禁止集群的自动调度操作。
该模式在以下情况下特别有用:
- 集群升级
- 计划停机
- 任何可能暂时影响集群稳定性的操作
何时使用维护模式
使用 GreptimeDB Operator
如果你使用 GreptimeDB Operator 升级集群,你不需要手动启用维护模式。Operator 会自动处理。
不使用 GreptimeDB Operator
当不使用 GreptimeDB Operator 升级集群时,在以下情况下必须手动启用 Metasrv 的维护模式:
- Datanode 节点滚动升级
- Metasrv 节点升级
- Frontend 节点升级
- 任何可能暂时影响节点可用性的操作
维护模式的影响
当维护模式启用时:
- Region Balancer(如果启用)将暂停
- Region Failover(如果启用)将暂停
- 手动操作/迁移 Region 仍然可行
- 集群读、写服务正常工作
- 监控和指标收集继续运行
管理维护模式
维护模式可以通过 Metasrv 的 HTTP 接口启用和禁用:http://{METASRV}:{RPC_PORT}/admin/maintenance?enable=true
。请注意,此接口监听 Metasrv 的 RPC_PORT
,默认为 3002
。
启用维护模式
通过发送 POST 请求到 /admin/maintenance
端点启用维护模式。
curl -X POST 'http://localhost:3002/admin/maintenance?enable=true'
预期输出:
{"enabled":true}
如果遇到任何问题或意外行为,请不要继续进行维护操作。
禁用维护模式
在禁用维护模式之前:
- 确保所有组件健康且正常运行
- 验证所有节点是否正确加入集群
curl -X POST 'http://localhost:3002/admin/maintenance?enable=false'
预期输出:
{"enabled":false}
检查维护模式状态
通过发送 GET 请求到 /admin/maintenance
端点检查维护模式状态。
curl -X GET http:://localhost:3002/admin/maintenance
预期输出:
{"enabled":false}
故障排除
常见问题
- 无法启用维护模式
- 验证 Metasrv 是否正在运行且可访问
- 检查你是否具有正确的权限
- 确保 RPC 端口正确
最佳实践
- 在操作前后始终验证维护模式状态
- 准备好回滚计划
- 监控集群健康状况
- 记录所有维护期间进行的更改