Curve 停止metaserver

  1. 适用环境:
  2. 版本号: v2.6+
  3. CurveAdm版本:v0.2.0+
  4. 最后更新日期: 2023/09/30
  5. 层面: 数据面
  6. 运维级别: P1
  7. 所属产品: 存储
  8. 需求明细: 节点名称,具体的metaserver服务
  9. 验收标准: 该指定的metaserver服务停止成功,并且集群仍然健康
  10. 参考步骤:
  1. 1. 查看集群服务状态和指定的metaserver状态:
  2. $ curveadm status
  3. 注:如果指定的metaserver已经处于退出状态(StatusExited状态),则不用再次执行停止操作。
  4. 2. 使用如下命令停止metaserver服务:
  5. 如果是停止某个指定的metaserver,使用--id选项:
  6. $ curveadm stop --id <Id>
  7. 如果要停止某个节点上的所有的metaserver服务,使用如下命令:
  8. $ curveadm stop --host <host> --role metaserver
  9. 如果要停止集群中所有的metaserver服务,使用如下命令(一般不会做此操作)
  10. 警告:如果要停掉所有的metaserver,则整个集群不可用,请谨慎确认之后再进行操作。
  11. $ curveadm stop --role metaserver
  12. 3. 再次查看集群服务状态,查看指定metaserver服务是否已经退出(StatusExited状态):
  13. $ curveadm status
  14. 4. 使用工具查看当前集群是否健康:
  15. $ curve fs status cluster
  16. 结果输出有下面字样则集群健康:Cluster health is: warn
  17. 当停掉部分的metaserver的时候,集群状态是warn状态,符合预期。
  18. 如果停掉部分metaserver,集群状态是error状态,则表示集群出错,需要重新拉取刚才停掉的metaserver
  19. (一般不会做此操作)停掉所有的metaserver,集群状态是error状态,符合预期。
  1. 参考影响:
  • 情况1:停止某个metaserver服务(按照id)/某个副本域的所有metaserver(按照host)

    • 时间: 无

    • 业务方: 无

    • 影响主题: 无

    • 用户:无

  • 情况2:同时停掉涉及多个副本域的metaserver

    • 时间: 在metaserver重启成功之前,可能发生IO hang

    • 业务方: 所有使用当前集群的业务方

    • 影响主题: 跨副本域的metaserver挂掉

    • 用户:所有使用当前集群的用户

  • 情况3:同时停掉所有的metaserver服务(一般不会做此操作)

    • 时间: 待集群中有metaserver被重新拉取之前,整个集群不可用。

    • 业务方: 所有使用当前集群的业务方

    • 影响主题: metaserver挂掉

    • 用户:所有使用当前集群的用户

  1. 参考风险:
  • 情况1:停止某个metaserver服务(按照id)/某个副本域的所有metaserver(按照host)

    • 数据面:无

    • 管控面:无

    • 恢复能力:无需恢复

  • 情况2:同时停掉涉及多个副本域的metaserver

    • 数据面:有可能发生IO hang。

    • 管控面:无

    • 恢复能力:无需恢复

  • 情况3:同时停掉所有的metaserver服务(一般不会做此操作)

    • 数据面:集群不可用,IO hang

    • 管控面:无

    • 恢复能力:无需恢复

  1. 参考回滚策略: 重启metaserver

  2. 需求发起方: CURVE

  3. 接收方:

  4. 评审责任人: SRE负责人,SA负责人,CURVE负责人

  5. 用户通知责任人: 技术支持

  6. 执行责任人: CURVE/SA

  7. 测试回归责任人: CURVE

  8. 执行审核责任人: SA/CURVE/SRE