diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide.md deleted file mode 100644 index efb7eed..0000000 --- a/docs/02-CurveBS/07-maintenance/02-administrator-guide.md +++ /dev/null @@ -1,26 +0,0 @@ -# 管理员操作指导 - -## 日常运维操作 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/maintain-curve - -## 版本升级 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/upgrade-curve - -## 迁移服务 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/migrate-curve - -## 扩容集群 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/scale-curve - -## 坏盘更换 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/change-disk - - -## 更多操作 - -> TBD:如您需要执行暂未列出的操作,请参考本网站下方的联系方式与Curve团队联系确认。 \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/01-curvebs-controlpanel-start-mds.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/01-curvebs-controlpanel-start-mds.md new file mode 100644 index 0000000..8b6cf50 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/01-curvebs-controlpanel-start-mds.md @@ -0,0 +1,71 @@ +# Curve 启动mds + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 该指定的mds服务启动成功,集群健康 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定节点的mds状态: + $ curveadm status + + 注:如果指定的mds已经处于运行状态(Status为Up状态),则不用再次启动。 + +2. 如果处于Exit状态的话,则使用下述命令启动服务: + + 如果是启动某一个指定的mds,使用--id选项: + $ curveadm start --id + + 如果要启动某一个节点上所有mds服务,使用如下命令: + $ curveadm start --host --role mds + + 如果要启动所有的mds,使用如下命令: + $ curveadm start --role mds + +3. 再次查看集群状态,查看指定mds服务是否启动成功(Status为Up状态): + $ curveadm status + +4. 使用工具查看集群状态是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 停止mds + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/02-curvebs-controlpanel-stop-mds.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/02-curvebs-controlpanel-stop-mds.md new file mode 100644 index 0000000..965e0cc --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/02-curvebs-controlpanel-stop-mds.md @@ -0,0 +1,97 @@ +# Curve 停止mds + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 具体节点,具体的mds服务 +9. 验收标准: 该节点的mds服务停止成功,并且集群健康 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定节点的mds状态: + $ curveadm status + + 注:如果指定的mds已经处于退出状态(Status为Exited状态),则不用重复操作。 + +2. 如果处于Up状态,则使用下述命令停止服务, + + 如果是停止某个指定的mds,使用--id选项: + $ curveadm stop --id + + 如果要停止某个节点上的所有的mds服务,使用如下命令: + $ curveadm stop --host --role mds + + 如果要停止集群中所有的mds服务,使用如下命令:(一般不会进行操作) + 注意:如果停止所有的mds,则导致集群不可用,请在进行下列操作前仔细确认是否要停掉所有的mds服务 + $ curveadm stop --role mds + +3. 再次查看集群状态,查看指定mds服务是否已经退出(Status为Exited状态): + $ curveadm status + +4. 使用工具使用查看当前集群状态: + $ curve bs status cluster + + 当停止部分mds服务后,上述命令输出提示集群处于warn状态 Cluster health is: warn,符合预期。 + 如果停止部分mds服务后,上述命令输出提示集群处于error状态 Cluster health is: error,则表示集群出错,需要重新拉起刚才停掉的mds。 + (一般不会做此操作)停掉所有的mds服务,集群应该处于error状态 Cluster health is: error。 +``` + +10. 参考影响: + +* 情况1:停止部分mds + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:停掉所有的mds服务 + + * 时间:直至有mds服务启动之前,集群不可用 + + * 业务方:所有使用当前集群的业务方 + + * 影响主题:mds挂掉 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:停止部分mds服务 + + * 数据面: 无 + + * 管控面: 无 + + * 恢复能力: 无需恢复 + +* 情况2:停掉所有mds服务 + + * 数据面: IO暂停 + + * 管控面: 管控面服务不可用 + + * 恢复能力: 无需回复 + +12. 参考回滚策略: 重新拉起mds + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/03-curvebs-controlpanel-restart-mds.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/03-curvebs-controlpanel-restart-mds.md new file mode 100644 index 0000000..b05ae81 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/03-curvebs-controlpanel-restart-mds.md @@ -0,0 +1,105 @@ +# Curve 重启mds + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 指定的mds服重启成功,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 使用工具查看集群是否健康,当前mds是否异常: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是mds异常: + $ curve bs status mds + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望重启恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 使用如下命令重启mds服务: + + 如果是重启某个指定的mds服务,使用--id选项: + $ curveadm restart --id + + 如果要重启某个节点下的所有的mds服务,使用如下命令: + $ curveadm restart --host --role mds + + (一般不会做此操作)如果要重启集群中所有的mds服务,使用如下命令: + 注意:如果重启所有的mds,则导致集群短暂不可用,在重启期间所有IO出错,请谨慎进行下列操作。 + $ curveadm restart --role mds + +3. 再次查看集群状态,查看指定mds服务是否重启成功: + $ curveadm status + +4. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在重启之前健康,则需要保证重启服务后集群仍是健康状态; + 如果集群在重启之前异常,则有以下两种情况: + 1. 重启之前,是由当前服务导致的集群异常,重启当前服务后不能保证集群仍然是健康的,是符合预期的。 + 2. 重启之前,不是当前服务导致的集群异常,则重启后集群仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:重启部分mds服务 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时重启所有的mds服务 + + * 时间: 在所有的mds重启过程中,集群不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: mds正在重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:重启部分mds服务 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时重启所有的mds服务 + + * 数据面:可能有短暂的IO抖动。如果客户端缓存没有过期,则IO无影响。 + + * 管控面:管理服务暂不可用 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/04-curvebs-controlpanel-config-mds.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/04-curvebs-controlpanel-config-mds.md new file mode 100644 index 0000000..6749b01 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/04-curvebs-controlpanel-config-mds.md @@ -0,0 +1,125 @@ +# Curve 修改mds配置 + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 指定的mds服务启动成功,集群健康 +10. 参考步骤: + +```plaintext +1. 需要先确认当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是mds异常: + $ curve bs status mds + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望通过修改配置恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 备份本地集群拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:当本地拓扑文件丢失时,我们可以通过如下命令保存当前的集群拓扑来恢复: + $ curveadm config show > topology.yaml + +3. 编辑本地集群拓扑文件,在拓扑文件中增加/删除/修改mds服务的配置项: + $ vim topology.yaml + +4. 提交修改的集群拓扑: + $ curveadm config commit topology.yaml + +5. 重新加载服务: + $ curveadm reload --role mds + + CurveAdm 使用上述命令默认重新加载集群中的所有 mds 服务,如需重新加载指定服务,可通过添加以下 3 个选项来实现: + + --id: 重新加载指定 id 的服务 + --host: 重新加载指定主机的所有服务 + --role: 重新加载指定角色的所有服务 + 以上 3 个选项可任意组合使用,服务对应的 id、host、role 可通过 curveadm status 来查看。 + + 示例 1:重新加载 id 为 c9570c0d0252 的mds服务 + $ curveadm reload --id c9570c0d0252 + + 示例 2:重新加载 server-host1 这台主机上的所有 mds 服务 + $ curveadm reload --host server-host1 --role mds + + 示例 3: 重新加载所有的mds服务(需确认) + 提醒:该操作会重启机器中的所有mds服务,所以在执行下列操作时,可能会导致IO短暂时间的抖动。 + $ curveadm reload --role mds + +6. 再次查看指定的mds服务是否已经启动(Status为Up状态): + $ curveadm status + +7. 查看集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在修改此mds的配置之前健康,则需要保证修改此服务配置后集群仍是健康状态; + 如果集群在修改此mds服务配置之前异常,则有以下两种情况: + 1. 修改此mds服务配置之前,是由当前mds服务导致的集群异常,则修改当前服务的配置后不能保证集群仍然是健康的,是符合预期的。 + 2. 修改此mds服务配置之前,不是当前mds服务导致的集群异常,则修改当前服务的配置后仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:修改部分mds服务配置 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时修改所有的mds服务配置 + + * 时间: 在所有的mds修改配置及重启过程中,集群不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: mds正在修改配置,服务重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险 + +* 情况1:修改部分mds服务配置 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时修改所有的mds服务配置 + + * 数据面:可能有短暂的IO抖动。如果客户端缓存没有过期,则IO无影响。 + + * 管控面:管控面会短暂不可用 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 回退mds配置到之前的值 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/05-curvebs-controlpanel-upgrade-mds.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/05-curvebs-controlpanel-upgrade-mds.md new file mode 100644 index 0000000..e163325 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/05-curvebs-controlpanel-upgrade-mds.md @@ -0,0 +1,111 @@ +# Curve 升级mds + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 指定mds服务升级到新的版本,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +前置检查:升级前请确认下版本的兼容性,有些版本可能不能直接升级到某些高级版本,需要去做确认。 + +1. 首先需要使用工具查看当前集群是否健康 + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 如果集群健康(ok),则继续后续步骤。 + 2. 如果集群异常(warn/error),不建议升级。 + +2. 备份本地拓扑文件: + $ cp topology.yaml topology.yaml.bak + + 提醒: 如果找不到本地集群拓扑,则使用如下命令导出配置: + $ curveadm config show > topology.yaml + +2. 修改集群拓扑: + 修改集群拓扑文件中的镜像名为需要升级的新镜像名,只需要修改镜像即可: + $ vim topology.yaml + + kind: curvebs + global: + container_image: quay.io/opencurve/curve/curvebs:latest # 修改镜像 + ... + +3. 重新提交集群拓扑: + $ curveadm config commit topology.yaml + +4. 升级指定服务: + $ curveadm upgrade --role mds + + 注:上述命令默认是会升级集群中的所有的mds服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 升级指定 id 的服务 + --host: 升级指定主机的所有服务 + --role: 升级指定角色的所有服务 + + 示例 1:升级 id 为 c9570c0d0252 的mds服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:升级 server-host1 这台主机上的所有 mds 服务 + $ curveadm upgrade --host server-host1 --role mds + + 示例 3:升级集群中所有mds服务 + $ curveadm upgrade --role mds + 提示:`curveadm upgrade --role mds` 默认是滚动升级集群每一个mds服务,用户在升级一个mds服务后 需要使用工具确定集群是否健康。如果集群是健康的话,然后再输入yes开始升级下一个服务。 + + 在执行上述命令之后,需要由用户确认升级页面。 输入 yes 开始升级当前服务: + Upgrade 1/3 service: + + host=server-host1 role=mds image=quay.io/opencurve/curve/curvebs:latest + Do you want to continue? [yes/no]: (default=no) + + 在一个mds服务升级成功后,使用如下命令查看集群集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +3. 再次查看集群状态,查看指定mds服务是否启动成功: + $ curveadm status + +4. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 如果集群状态ok,则表示升级成功。 +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: IO可能有短暂的抖动 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 回退mds + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/06-curvebs-controlpanel-downgrade-mds.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/06-curvebs-controlpanel-downgrade-mds.md new file mode 100644 index 0000000..ed849e3 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/06-curvebs-controlpanel-downgrade-mds.md @@ -0,0 +1,90 @@ +# Curve 回退mds + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 指定的mds服务回退到上一个指定版本,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 使用工具查看当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群不健康(error/warn状态),请不要回退。 + +2. 提交备份的topology-old.yaml拓扑文件: + $ curveadm config commit topology-old.yaml + +3. 回退指定服务: + $ curveadm upgrade --role mds + + 注:上述命令默认是会回退集群中的所有的mds服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 回退指定 id 的服务 + --host: 回退指定主机的所有服务 + --role: 回退指定角色的所有服务 + + 示例 1:回退 id 为 c9570c0d0252 的mds服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:回退 host1 这台主机上的所有 mds 服务 + $ curveadm upgrade --host host1 --role mds + + 示例 3:回退集群中所有mds服务 + 提示:`curveadm upgrade --role mds` 默认是滚动回退/升级集群每一个mds服务,用户在回退一个mds服务后 需要进入容器内确定集群是否健康。如果集群是健康的话,然后再输入yes开始回退下一个服务。 + + 在执行上述命令之后,需要由用户确认回退页面。 输入 yes 开始回退当前服务: + Upgrade 1/3 service: + + host=server-host1 role=mds image=quay.io/opencurve/curve/curvebs:latest + Do you want to continue? [yes/no]: (default=no) + + 在一个mds服务回退成功后,使用如下命令查看集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +4. 再次查看集群状态,查看指定 mds 服务是否启动成功(Status为Up状态): + $ curveadm status + +5. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: IO可能有短暂的抖动 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/07-curvebs-datapanel-start-chunkserver.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/07-curvebs-datapanel-start-chunkserver.md new file mode 100644 index 0000000..fc9250a --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/07-curvebs-datapanel-start-chunkserver.md @@ -0,0 +1,69 @@ +# Curve 启动chunkserver + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的chunkserver服务 +9. 验收标准: 该指定的chunkserver服务启动成功,并且集群健康,可以对外正常提供服务 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定的chunkserver服务状态: + $ curveadm status + + 注:如果指定的chunkserver已经处于运行状态(Status为Up状态),则不用再次启动。 + +2. 否则使用下述命令启动相应的chunkserver服务: + + 如果是启动某一个指定的chunkserver,使用--id选项: + $ curveadm start --id + + 如果要启动某一个节点上所有chunkserver服务,使用如下命令: + $ curveadm start --host --role chunkserver + + 如果要启动所有的chunkserver,使用如下命令: + $ curveadm start --role chunkserver + +3. 再次查看集群状态,查看指定chunkserver服务是否启动成功(Status为Up状态): + $ curveadm status + +4. 使用工具查看集群状态是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: IO可能有短暂时间抖动 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 停止chunkserver + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/08-curvebs-datapanel-stop-chunkserver.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/08-curvebs-datapanel-stop-chunkserver.md new file mode 100644 index 0000000..4e78e80 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/08-curvebs-datapanel-stop-chunkserver.md @@ -0,0 +1,98 @@ +# Curve 停止chunkserver + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的chunkserver服务 +9. 验收标准: 该指定的chunkserver服务停止成功,并且集群仍然健康 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定的chunkserver状态: + $ curveadm status + + 注:如果指定的chunkserver已经处于退出状态(Status为Exited状态),则不用再次执行停止操作。 + +2. 使用如下命令停止chunkserver服务: + + 如果是停止某个指定的chunkserver,使用--id选项: + $ curveadm stop --id + + 如果要停止某个节点上的所有的chunkserver服务,使用如下命令: + $ curveadm stop --host --role chunkserver + + 如果要停止集群中所有的chunkserver服务,使用如下命令(一般不会做此操作) + 警告:如果要停掉所有的chunkserver,则整个集群不可用,请谨慎确认之后再进行操作。 + $ curveadm stop --role chunkserver + +3. 再次查看集群状态,查看指定chunkserver服务是否已经退出(Status为Exited状态): + $ curveadm status + +4. 使用工具查看当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: warn + + 当停掉部分的chunkserver的时候,集群状态是warn状态,符合预期。 + 如果停掉部分chunkserver,集群状态是error状态,则表示集群出错,需要重新拉取刚才停掉的chunkserver。 + (一般不会做此操作)停掉所有的chunkserver,集群状态是error状态,符合预期。 +``` + +10. 参考影响: + +* 情况1:停止部分chunkserver服务 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时停掉所有的chunkserver服务(一般不会做此操作) + + * 时间: 待集群中有chunkserver被重新拉取之前,整个集群不可用。 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: chunkserver挂掉 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:停止部分chunkserver服务 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时停掉所有的chunkserver服务(一般不会做此操作) + + * 数据面:集群不可用,IO出错 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 重启chunkserver + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/09-curvebs-datapanel-restart-chunkserver.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/09-curvebs-datapanel-restart-chunkserver.md new file mode 100644 index 0000000..ecf5929 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/09-curvebs-datapanel-restart-chunkserver.md @@ -0,0 +1,123 @@ +# Curve 重启chunkserver + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本号:v0.2.0+ +3. 最后更新日期: 2023/09/30 +4. 层面: 数据面 +5. 运维级别: P1 +6. 所属产品: 存储 +7. 需求明细: 节点名称,具体的chunkserver服务 +8. 验收标准: 该指定chunkserver服务重启成功,并且集群健康 +9. 参考步骤: + +```plaintext +1. 使用工具查看集群是否健康,当前chunkserver是否异常 + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是chunkserver异常: + $ curve bs status chunkserver + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望重启恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 使用如下命令重启chunkserver服务: + + 如果是重启指定的chunkserver服务,使用--id选项: + $ curveadm restart --id + + 如果要重启某个节点下的所有的chunkserver服务,使用如下命令: + $ curveadm restart --host --role chunkserver + + 如果要重启集群中所有的chunkserver服务,使用如下命令:(一般不建议这么操作,会导致io hang) + 提示:如果重启所有的chunkserver,则导致集群短暂不可用,在重启期间所有IO出错,请谨慎进行下列操作。 + $ curveadm restart --role chunkserver + +3. 再次查看集群状态,查看指定chunkserver服务是否重启成功(Status为Up状态): + $ curveadm status + +4. 使用工具查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在重启之前健康,则需要保证重启服务后集群仍是健康状态; + 如果集群在重启之前异常,则有以下两种情况: + 1. 重启之前,是由当前服务导致的集群异常,重启当前服务后不能保证集群仍然是健康的,是符合预期的。 + 2. 重启之前,不是当前服务导致的集群异常,则重启后集群仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:重启某一个chunkserver/一个副本域的chunkserver + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:重启某个副本域的所有chunkserver + + * 时间: 直至这些chunkserver服务重启成功,io会卡住 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: chunkserver正在重启 + + * 用户:所有使用当前集群的用户 + +* 情况3:同时重启所有的chunkserver服务(一般不建议这么操作,会导致io hang) + + * 时间: 在所有的chunkserver重启过程中,集群不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: chunkserver正在重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:重启某一个chunkserver/一个副本域的chunkserver + + * 数据面:IO可能有短暂时间抖动。如果该chunkserver上面的copyset属于leader的话,重启则会造成重新选举,从而发生IO抖动 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:重启某个副本域的所有chunkserver + + * 数据面:会导致IO hang + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况3:同时重启所有的chunkserver服务(一般不建议这么操作,会导致io hang) + + * 数据面:IO可能有短暂时间抖动。如果所有的chunkserver同一时刻重启,则该时刻IO hang + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/10-curvebs-datapanel-config-chunkserver.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/10-curvebs-datapanel-config-chunkserver.md new file mode 100644 index 0000000..2e43b71 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/10-curvebs-datapanel-config-chunkserver.md @@ -0,0 +1,125 @@ +# Curve 修改chunkserver配置 + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的chunkserver服务 +9. 验收标准: 该指定chunkserver配置修改成功,chunkserver重启成功并可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 需要先确认当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是chunkserver异常: + $ curve bs status chunkserver + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望通过修改配置恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 备份本地集群拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:当本地拓扑文件丢失时,我们可以通过如下命令保存当前的集群拓扑来恢复: + $ curveadm config show > topology.yaml + +3. 编辑本地集群拓扑文件,在拓扑文件中增加/删除/修改chunkserver服务的配置项: + $ vim topology.yaml + +4. 提交修改的集群拓扑: + $ curveadm config commit topology.yaml + +5. 重新加载服务: + $ curveadm reload --role chunkserver + + CurveAdm 使用上述命令默认重新加载集群中的所有 chunkserver 服务,如需重新加载指定服务,可通过添加以下 3 个选项来实现: + + --id: 重新加载指定 id 的服务 + --host: 重新加载指定主机的所有服务 + --role: 重新加载指定角色的所有服务 + 以上 3 个选项可任意组合使用,服务对应的 id、host、role 可通过 curveadm status 来查看。 + + 示例 1:重新加载 id 为 c9570c0d0252 的chunkserver服务 + $ curveadm reload --id c9570c0d0252 + + 示例 2:重新加载 server-host1 这台主机上的所有 chunkserver 服务 + $ curveadm reload --host server-host1 --role chunkserver + + 示例 3:重新加载集群中所有的chunkserver服务 + 提醒:该操作会根据当前集群拓扑的变更修改相应服务的配置,然后再同时重启机器中的所有chunkserver服务,所以在执行下列操作时,可能会导致IO短暂时间的不可用。 + $ curveadm reload --role chunkserver + +6. 再次查看指定的chunkserver服务是否已经启动(Status为Up状态): + $ curveadm status + +7. 查看集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在修改此chunkserver的配置之前健康,则需要保证修改此服务配置后集群仍是健康状态; + 如果集群在修改此chunkserver服务配置之前异常,则有以下两种情况: + 1. 修改此chunkserver服务配置之前,是由当前chunkserver服务导致的集群异常,则修改当前服务的配置后不能保证集群仍然是健康的,是符合预期的。 + 2. 修改此chunkserver服务配置之前,不是当前chunkserver服务导致的集群异常,则修改当前服务的配置后仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:修改部分chunkserver服务 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时修改所有的chunkserver服务配置 + + * 时间: 在所有的chunkserver修改配置及重启过程中,集群不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: chunkserver正在修改配置,服务重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:修改部分chunkserver服务配置 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时修改所有的chunkserver服务配置 + + * 数据面:可能有短暂的IO抖动。如果所有的chunkserver在同一时刻进入重启,该时刻读写IO错误 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 回退chunkserver配置到之前的值 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/11-curvebs-datapanel-upgrade-chunkserver.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/11-curvebs-datapanel-upgrade-chunkserver.md new file mode 100644 index 0000000..2fc6b63 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/11-curvebs-datapanel-upgrade-chunkserver.md @@ -0,0 +1,152 @@ +# Curve 升级chunkserver + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的chunkserver服务 +9. 验收标准: 该指定chunkserver升级成功,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +前置检查:升级前请确认下版本的兼容性,有些版本可能不能直接升级到某些高级版本,需要去做确认。 + +1. 首先需要使用工具查看当前集群是否健康 + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 如果集群健康(ok),则继续后续步骤。 + 2. 如果集群异常(warn/error),不建议升级。 + +2. 备份本地拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注: 如果找不到本地集群拓扑,则使用如下命令导出配置: + $ curveadm config show > topology.yaml + +3. 修改集群拓扑: + + 修改集群拓扑文件中的镜像名为需要升级的新镜像名,只需要修改镜像即可: + $ vim topology.yaml + + kind: curvebs + global: + container_image: quay.io/opencurve/curve/curvebs:latest # 修改镜像 + ... + +4. 重新提交集群拓扑: + $ curveadm config commit topology.yaml + +5. 升级指定 chunkserver 服务: + $ curveadm upgrade --role chunkserver + + 注:上述命令默认是会升级集群中的所有的 chunkserver 服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 升级指定 id 的服务 + --host: 升级指定主机的所有服务 + --role: 升级指定角色的所有服务 + + 示例 1:升级 id 为 c9570c0d0252 的 chunkserver 服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:升级 server-host1 这台主机上的所有 chunkserver 服务 + $ curveadm upgrade --host server-host1 --role chunkserver + + 示例 3:升级集群中的所有的chunkserver + $ curveadm upgrade --role chunkserver + 提示:`curveadm upgrade --role chunkserver` 默认是滚动升级集群每一个chunkserver服务,用户在升级完一个chunkserver服务后 需要使用工具确定集群是否健康。如果集群是健康的话,再输入yes开始升级下一个服务。 + + 在执行上述命令之后,需要由用户确认升级页面。 输入 yes 开始升级当前服务: + Upgrade 1/3 service: + + host=server-host1 role=chunkserver image=quay.io/opencurve/curve/curvebs:latest + Do you want to continue? [yes/no]: (default=no) + + 在一个chunkserver服务升级成功后,使用如下命令查看集群集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +6. 再次查看集群状态,查看指定 chunkserver 服务是否启动成功(Status为Up状态): + $ curveadm status + +7. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 如果集群状态ok,则表示升级成功。 +``` + +10. 参考影响: + +* 情况1:升级某一个chunkserver/一个副本域的chunkserver + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:升级某个副本域的所有chunkserver + + * 时间: 直至这些chunkserver服务升级成功,并且leader选举成功后恢复正常 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: chunkserver正在升级 + + * 用户:所有使用当前集群的用户 + +* 情况3:同时升级所有的chunkserver服务(滚动升级,升级之后需确认集群健康然后升级下一个) + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +11. 参考风险: + +* 情况1:升级某一个chunkserver/一个副本域的chunkserver + + * 数据面:IO可能有短暂时间抖动。如果该chunkserver上面的copyset属于leader的话,升级则会造成重新选举,从而发生IO抖动 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:升级某个副本域的所有chunkserver + + * 数据面:会导致IO hang + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况3:同时升级所有的chunkserver服务(滚动升级,升级之后需确认集群健康然后升级下一个) + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 回退chunkserver + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/12-curvebs-datapanel-downgrade-chunkserver.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/12-curvebs-datapanel-downgrade-chunkserver.md new file mode 100644 index 0000000..78617ce --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/12-curvebs-datapanel-downgrade-chunkserver.md @@ -0,0 +1,131 @@ +# Curve 回退chunkserver + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的chunkserver服务 +9. 验收标准: 该指定的chunkserver服务回退到上一个版本,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 使用工具查看当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群不健康(error/warn状态),请不要回退 + +2. 提交备份的topology-old.yaml拓扑文件: + $ curveadm config commit topology-old.yaml + +3. 回退指定服务: + $ curveadm upgrade --role chunkserver + + 注:上述命令默认是会回退集群中的所有的chunkserver服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 回退指定 id 的服务 + --host: 回退指定主机的所有服务 + --role: 回退指定角色的所有服务 + + 示例 1:回退 id 为 c9570c0d0252 的chunkserver服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:回退 server-host1 这台主机上的所有 chunkserver 服务 + $ curveadm upgrade --host server-host1 --role chunkserver + + 示例 3:回退集群中的所有 chunkserver 服务 + $ curveadm upgrade --role chunkserver + 提示:`curveadm upgrade --role chunkserver` 默认是滚动回退/回退集群每一个chunkserver服务,用户在回退完一个chunkserver服务后 需要进入容器内确定集群是否健康。如果集群是健康的话,再输入yes开始回退下一个服务。 + + 在执行上述命令之后,需要由用户确认回退页面。 输入 yes 开始回退当前服务: + Upgrade 1/3 service: + + host=server-host1 role=chunkserver image=quay.io/opencurve/curve/curvebs:latest + Do you want to continue? [yes/no]: (default=no) + + 在一个chunkserver服务回退成功后,使用如下命令查看集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +4. 再次查看集群状态,查看指定 chunkserver 服务是否启动成功(Status为Up状态): + $ curveadm status + +5. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 情况1:回退某一个chunkserver/一个副本域的chunkserver + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:回退某个副本域的所有chunkserver + + * 时间: 直至这些chunkserver服务回退成功,并且leader选举成功后恢复正常 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: chunkserver正在回退 + + * 用户:所有使用当前集群的用户 + +* 情况3:同时回退所有的chunkserver服务(滚动回退,回退之后需确认集群健康然后回退下一个) + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +11. 参考风险: + +* 情况1:回退某一个chunkserver/一个副本域的chunkserver + + * 数据面:IO可能有短暂时间抖动。如果该chunkserver上面的copyset属于leader的话,回退则会造成重新选举,从而发生IO抖动 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:回退某个副本域的所有chunkserver + + * 数据面:会导致IO hang + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况3:同时回退所有的chunkserver服务(滚动回退,回退之后需确认集群健康然后回退下一个) + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/14-curvebs-datapanel-scaleout.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/14-curvebs-datapanel-scaleout.md new file mode 100644 index 0000000..08c7488 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/14-curvebs-datapanel-scaleout.md @@ -0,0 +1,165 @@ +# Curve 集群扩容 + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 扩容完成,且集群正常工作 +10. 参考步骤: + +```plaintext +1. 使用工具查看当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 如果集群健康(ok)的话,则继续后续的步骤。 + 2. 如果集群处于warn状态,需要判断是否是因为当前要扩容的服务导致的集群异常。如果不是当前要扩容的服务类型导致的,可以继续执行后续步骤。否则,则不要继续后续操作。 + 3. 如果集群是error状态,则扩容可能是无意义操作,所以不要执行后续步骤。 + +2. 提交主机列表: + + 2.1 添加新增机器至主机列表: + $ vim hosts.yaml + + global: + user: curve + ssh_port: 22 + private_key_file: /home/curve/.ssh/id_rsa + + hosts: + - host: server-host1 + hostname: 10.0.1.1 + - host: server-host2 + hostname: 10.0.1.2 + - host: server-host3 + hostname: 10.0.1.3 + - host: server-host4 # 新增机器 + hostname: 10.0.1.4 + - host: server-host5 # 新增机器 + hostname: 10.0.1.5 + - host: server-host6 # 新增机器 + hostname: 10.0.1.6 + + 2.2 提交主机列表: + $ curveadm hosts commit hosts.yaml + + 注:如果找不到本地hosts.yaml文件,可以通过如下命令导出主机列表: + $ curveadm hosts show > hosts.yaml +3. 格式化磁盘 + 3.1 准备磁盘列表: + $ vim format.yaml + host: + - server-host4 + - server-host5 + - server-host6 + disk: + - /dev/sda:/data/chunkserver0:90 # device:mount_path:format_percent + - /dev/sdb:/data/chunkserver1:90 + - /dev/sdc:/data/chunkserver2:90 + + 注:format.yaml文件中只需填写新增机器上的磁盘列表即可,切勿将已在集群中服务的磁盘列表填入其中,避免造成无法挽回的损失。 + + 3.2 开始格式化 + $ curveadm format -f format.yaml + +3. 修改集群拓扑: + + 3.1 备份当前拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:如果找不到本地集群拓扑,则使用如下命令导出拓扑配置: + $ curveadm config show > topology.yaml + + 3.2 修改集群拓扑 + $ vim topology.yaml + + kind: curvebs + global: + container_image: quay.io/opencurve/curve/curvebs:latest + log_dir: ${home}/curvebs/logs/${service_role} + data_dir: ${home}/curvebs/data/${service_role} + variable: + home: /tmp + machine1: server-host1 + machine2: server-host2 + machine3: server-host3 + machine4: server-host4 # 新增机器 + machine5: server-host5 # 新增机器 + machine6: server-host6 # 新增机器 + + # 如下以扩容chunkserver为例,将新增机器添加到chunkserver_services下 + # 如果要扩容mds/snapshotclone,则将新增机器添加到mds_services/snapshot_services下即可 + chunkserver_services: + config: + listen.ip: ${service_host} + listen.port: 82${format_replicas_sequence} + data_dir: /data/chunkserver${service_replicas_sequence} + copysets: 100 + deploy: + - host: ${machine1} + replicas: 3 + - host: ${machine2} + replicas: 3 + - host: ${machine3} + replicas: 3 + - host: ${machine4} # 新增服务 + replicas: 3 + - host: ${machine5} # 新增服务 + replicas: 3 + - host: ${machine6} # 新增服务 + replicas: 3 + + 注: + * 每一次只能扩容同一种角色的服务 + * 对于扩容chunkserver服务来说,每次扩容都会新增一个逻辑池,新增的服务都位于该逻辑池中,请确保每次扩容至少增加 3 台主机 + +4. 扩容集群: + $ curveadm scale-out topology.yaml + + 提醒:扩容操作属于幂等操作,用户在执行失败后可重复执行,不用担心服务残留问题 + +5. 再次查看集群状态,查看指定扩容服务是否启动成功(Status为Up状态): + $ curveadm status + +6. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果扩容前集群处于warn状态,但不是当前服务导致的问题。如果当前服务扩容成功,但是集群会仍然处于warn状态,是符合预期的。 +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/15-curvebs-datapanel-change-disk.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/15-curvebs-datapanel-change-disk.md new file mode 100644 index 0000000..f137bb0 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/15-curvebs-datapanel-change-disk.md @@ -0,0 +1,81 @@ +# Curve 坏盘更换 + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 新盘对应的chunkserver重启成功 +10. 参考步骤: + +```plaintext +1. 剔除坏盘: + 在坏盘情况下,对应的chunkserver会退出,集群会自动做迁移,使用如下命令查看故障的chunkserver的ID(Status为Exited状态的chunkserver) + $ curveadm status -v + +2. 跟SA确认盘是否进行过读写压测,排查坏盘、慢盘等异常。 + +3. 检查磁盘磁盘缓存是否关闭 + $ sudo /sbin/hdparm -W /dev/sd{number} | grep "write-caching" + 确认write-caching=0 + +4. 检查磁盘调度策略为noop + $ cat /sys/block/sd{number}/queue/scheduler + 应该输出[noop] deadline cfq + +5. 提交新增磁盘列表 + $ vim format.yaml + + host: + - server-host3 + disk: + - /dev/sdc:/data/chunkserver3:90 # 替换上来的磁盘 + + 警告:format.yaml 文件中只需填写新增机器上的磁盘列表即可,切勿将已在集群中服务的磁盘列表填入其中,避免造成无法挽回的损失。 + +6. 格式化替换上来的磁盘 + $ curveadm format -f format.yaml + +7. 拉起当前服务: + $ curveadm start --id + + 这里的ID为因为坏盘而停止的chunkserver服务ID,也就是第1步看到的ID + +5. 再次查看集群当前chunkserver状态是否被成功拉起状态(Status为Up状态): + $ curveadm status +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: IO可能有短暂时间抖动 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/16-curvebs-datapanel-migrate.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/16-curvebs-datapanel-migrate.md new file mode 100644 index 0000000..694118a --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/16-curvebs-datapanel-migrate.md @@ -0,0 +1,120 @@ +# Curve 迁移服务 + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 迁移完成,且集群正常工作 +10. 参考步骤: + +```plaintext +1. 需要先确认当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群不健康,需要判断是否仍然需要迁移,否则可能导致集群服务不可用。 + +2. 备份本地集群拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:当本地拓扑文件丢失时,我们可以通过如下命令保存当前的集群拓扑来恢复: + $ curveadm config show > topology.yaml + +3. 添加新增机器至主机列表: + $ vim hosts.yaml + + global: + user: curve + ssh_port: 22 + private_key_file: /home/curve/.ssh/id_rsa + + hosts: + - host: server-host1 + hostname: 10.0.1.1 + - host: server-host2 + hostname: 10.0.1.2 + - host: server-host3 + hostname: 10.0.1.3 + - host: server-host4 # 新增机器 + hostname: 10.0.1.4 + + 注:如果找不到本地的hosts.yaml文件,则使用如下命令重新导出: + $ curveadm hosts show > hosts.yaml + +4. 编辑本地集群拓扑文件,在拓扑文件中添加新机器: + $ vim topology.yaml + + kind: curvebs + global: + variable: + machine1: server-host1 + machine2: server-host2 + machine3: server-host3 + machine4: server-host4 # 新增机器 + + chunkserver_services: + config: + listen.ip: ${service_host} + listen.port: 6800 + listen.external_port: 7800 + chunkserver.loglevel: 0 + deploy: + - host: ${machine1} + - host: ${machine2} + - host: ${machine4} # 将 ${machine3} 修改为 ${machine4} + config: + chunkserver.loglevel: 3 + + 注: + * 每一次只能迁移同一种角色的其中一个服务 + * 每一次只能迁移同一台主机的服务 + +5. 迁移服务: + $ curveadm migrate topology.yaml + +6. 再次查看新节点对应的服务是否已经启动(Status为Up状态): + $ curveadm status + +7. 查看集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +8. 如果要继续迁移,请等待当前服务迁移完成,集群健康。 + 重复3-7步骤 +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 在服务迁移过程中,相当于停服然后重启。如果迁移etcd/mds可能没有影响,对于chunkserver来说可能会有IO抖动,因为copyset的leader可能重新选举。 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/17-curvebs-client-map.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/17-curvebs-client-map.md new file mode 100644 index 0000000..b27af57 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/17-curvebs-client-map.md @@ -0,0 +1,118 @@ +# Curve 挂载nbd盘到物理机 + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 客户端成功map卷 +10. 参考步骤: + +```plaintext +1. 导入客户端主机。 + 需要先导入客户端所需的主机列表,如果在部署集群时已将客户端主机导入,可直接跳过此步骤。请确保在之后映射/取消映射中指定的主机都已导入。 + + 可以通过 curveadm hosts show 查看要映射的客户端主机是否已经导入: + $ curveadm hosts show + + 如果之前没有导入主机的话,则需要添加: + $ vim hosts.yaml + + global: + user: curve + ssh_port: 22 + private_key_file: /home/curve/.ssh/id_rsa + + hosts: + - host: server-host1 + hostname: 10.0.1.1 + - host: server-host2 + hostname: 10.0.1.2 + - host: server-host3 + hostname: 10.0.1.3 + - host: client-host # 新添加的要映射的客户端主机 + hostname: 10.0.1.4 + + 使用如下命令提出主机列表: + $ curveadm hosts commit hosts.yaml + +2. 准备客户端配置文件: + $ vim client.yaml + + kind: curvebs + # 镜像 + container_image: <> + # 后端mds地址 + mdsOpt.rpcRetryOpt.addrs: 10.0.1.1:6700,10.0.1.2:6700,10.0.1.3:6700 + # 其他的映射项配置 + log_dir: /home/curve/curvebs/logs/client + + 注1:所有未在客户端配置文件上出现的配置项,我们都将使用默认配置值。 + + 注2:配置文件中的 mds.listen.addr 配置项需填写集群中 MDS 服务地址,用户在部署好 CurveBS 集群后, 可通过 curveadm status 查看集群 MDS 服务地址: + $ curveadm status + Get Service Status: [OK] + + cluster name : my-cluster + cluster kind : curvebs + cluster mds addr : 10.0.1.1:6700,10.0.1.2:6700,10.0.1.3:6700 + cluster mds leader: 10.0.1.1:6700 / 505da008b59c + ... + +3. 映射Curvebs卷: + $ curveadm map : --host -c client.yaml --create --size 10GiB + + * : 该卷所属用户名,用户可自行定义 + * : 卷名,用户可自行定义 + * --host: 将卷挂载到指定主机,用户可自行选择,请确保该主机已被导入 + * --create:当卷不存在时,则自行创建 + * --size: 指定创建卷的大小,默认为 10GiB + * -c: 指定客户端配置文件 + + 当用户映射卷成功后,在相应的主机上即能看到 CurveBS 卷对应的 nbd 设备: + $ lsblk | grep nbd + +4. 查看客户端状态是否已经Up状态。如果为Up状态表示映射卷成功。 + $ curveadm client status + + Get Client Status: [OK] + + Id Kind Host Container Id Status Aux Info + -- ---- ---- ------------ ------ -------- + 362d538778ad curvebs client-host1 cfa00fd01ae8 Up 36 hours {"user":"curve","volume":"/test1"} +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: unmap卷 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/18-curvebs-client-unmap.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/18-curvebs-client-unmap.md new file mode 100644 index 0000000..e215a77 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/18-curvebs-client-unmap.md @@ -0,0 +1,69 @@ +# Curve 从物理机卸载nbd盘 + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 客户端成功取消卷映射 +10. 参考步骤: + +```plaintext +1. 查看要取消卷映射的文件系统状态: + $ curveadm client status + + Get Client Status: [OK] + + Id Kind Host Container Id Status Aux Info + -- ---- ---- ------------ ------ -------- + 362d538778ad curvebs client-host1 cfa00fd01ae8 Up 36 hours {"user":"curve","volume":"/test1"} + +2. unmap卷 + $ curveadm unmap : --host server-host1 + + * 都可以从上述的curveadm client status中查看; + * --host: 将卷挂载到指定主机,用户可自行选择,请确保该主机已被导入。 + +4. 再次查看客户端状态,则看不到相应的挂载项。如果看不到的话则认为不可用 + $ curveadm client status + + Get Client Status: [OK] + + Id Kind Host Container Id Status Aux Info + -- ---- ---- ------------ ------ -------- +``` + +10. 参考影响: + +* 时间: unmap后卷不可用,直至重新map当前卷 + +* 业务方: 使用该卷的业务方 + +* 用户:使用该卷的用户 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 重新map + +13. 需求发起方: 业务方 + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/19-curvebs-controlpanel-start-snapshot.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/19-curvebs-controlpanel-start-snapshot.md new file mode 100644 index 0000000..d2466a3 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/19-curvebs-controlpanel-start-snapshot.md @@ -0,0 +1,71 @@ +# Curve 启动snapshotclone + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的snapshotclone服务 +9. 验收标准: 该指定的snapshotclone服务启动成功,集群健康 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定节点的snapshotclone状态: + $ curveadm status + + 注:如果指定的snapshotclone已经处于运行状态(Status为Up状态),则不用再次启动。 + +2. 如果处于Exit状态的话,则使用下述命令启动服务: + + 如果是启动某一个指定的snapshotclone,使用--id选项: + $ curveadm start --id + + 如果要启动某一个节点上所有snapshotclone服务,使用如下命令: + $ curveadm start --host --role snapshotclone + + 如果要启动所有的snapshotclone,使用如下命令: + $ curveadm start --role snapshotclone + +3. 再次查看集群状态,查看指定snapshotclone服务是否启动成功(Status为Up状态): + $ curveadm status + +4. 使用工具查看集群状态是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 停止snapshotclone + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/20-curvebs-controlpanel-stop-snapshot.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/20-curvebs-controlpanel-stop-snapshot.md new file mode 100644 index 0000000..c648283 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/20-curvebs-controlpanel-stop-snapshot.md @@ -0,0 +1,97 @@ +# Curve 停止snapshotclone + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 具体节点 +9. 验收标准: 该节点的snapshotclone服务停止成功,并且集群健康 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定节点的snapshotclone状态: + $ curveadm status + + 注:如果指定的snapshotclone已经处于退出状态(Status为Exited状态),则不用重复操作。 + +2. 如果处于Up状态,则使用下述命令停止服务, + + 如果是停止某个指定的snapshotclone,使用--id选项: + $ curveadm stop --id + + 如果要停止某个节点上的所有的snapshotclone服务,使用如下命令: + $ curveadm stop --host --role snapshotclone + + 如果要停止集群中所有的snapshotclone服务,使用如下命令:(一般不会进行操作) + 注意:如果停止所有的snapshotclone,则导致集群不可用,请在进行下列操作前仔细确认是否要停掉所有的snapshotclone服务 + $ curveadm stop --role snapshotclone + +3. 再次查看集群状态,查看指定snapshotclone服务是否已经退出(Status为Exited状态): + $ curveadm status + +4. 使用工具使用查看当前集群状态: + $ curve bs status cluster + + 当停止部分snapshotclone服务后,上述命令输出提示集群处于warn状态 Cluster health is: warn,符合预期。 + 如果停止部分snapshotclone服务后,上述命令输出提示集群处于error状态 Cluster health is: error,则表示集群出错,需要重新拉起刚才停掉的snapshotclone。 + (一般不会做此操作)停掉所有的snapshotclone服务,集群应该处于error状态 Cluster health is: error。 +``` + +10. 参考影响: + +* 情况1:停止部分snapshotclone + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:停掉所有的snapshotclone服务 + + * 时间:直至有snapshotclone服务启动之前,快照服务不可用 + + * 业务方:所有使用当前集群的业务方 + + * 影响主题:snapshotclone挂掉 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:停止部分snapshotclone服务 + + * 数据面: 无 + + * 管控面: 无 + + * 恢复能力: 无需恢复 + +* 情况2:停掉所有snapshotclone服务 + + * 数据面: 无 + + * 管控面: 快照服务不可用 + + * 恢复能力: 无需回复 + +12. 参考回滚策略: 重新拉起snapshotclone + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/21-curvebs-controlpanel-restart-snapshot.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/21-curvebs-controlpanel-restart-snapshot.md new file mode 100644 index 0000000..8ac0dd7 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/21-curvebs-controlpanel-restart-snapshot.md @@ -0,0 +1,105 @@ +# Curve 重启snapshotclone + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的snapshotclone服务 +9. 验收标准: 指定的snapshotclone服重启成功,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 使用工具查看集群是否健康,当前snapshotclone是否异常: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是snapshotclone异常: + $ curve bs status snapshotclone + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望重启恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 使用如下命令重启snapshotclone服务: + + 如果是重启某个指定的snapshotclone服务,使用--id选项: + $ curveadm restart --id + + 如果要重启某个节点下的所有的snapshotclone服务,使用如下命令: + $ curveadm restart --host --role snapshotclone + + 如果要重启集群中所有的snapshotclone服务,使用如下命令: + 注意:如果重启所有的snapshotclone,则导致集群短暂不可用,在重启期间所有IO出错,请谨慎进行下列操作。 + $ curveadm restart --role snapshotclone + +3. 再次查看集群状态,查看指定snapshotclone服务是否重启成功: + $ curveadm status + +4. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在重启之前健康,则需要保证重启服务后集群仍是健康状态; + 如果集群在重启之前异常,则有以下两种情况: + 1. 重启之前,是由当前服务导致的集群异常,重启当前服务后不能保证集群仍然是健康的,是符合预期的。 + 2. 重启之前,不是当前服务导致的集群异常,则重启后集群仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:重启部分snapshotclone服务 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时重启所有的snapshotclone服务 + + * 时间: 直至有snapshotclone服务启动之前,快照服务不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: snapshotclone正在重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:重启部分snapshotclone服务 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时重启所有的snapshotclone服务 + + * 数据面:无 + + * 管控面:快照服务短暂不可用,等待服务重启 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/22-curvebs-controlpanel-config-snapshot.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/22-curvebs-controlpanel-config-snapshot.md new file mode 100644 index 0000000..d3f423d --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/22-curvebs-controlpanel-config-snapshot.md @@ -0,0 +1,125 @@ +# Curve 修改snapshotclone配置 + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的snapshotclone服务 +9. 验收标准: 指定的snapshotclone服务启动成功,集群健康 +10. 参考步骤: + +```plaintext +1. 需要先确认当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是snapshotclone异常: + $ curve bs status snapshotclone + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望通过修改配置恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 备份本地集群拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:当本地拓扑文件丢失时,我们可以通过如下命令保存当前的集群拓扑来恢复: + $ curveadm config show > topology.yaml + +3. 编辑本地集群拓扑文件,在拓扑文件中增加/删除/修改snapshotclone服务的配置项: + $ vim topology.yaml + +4. 提交修改的集群拓扑: + $ curveadm config commit topology.yaml + +5. 重新加载服务: + $ curveadm reload --role snapshotclone + + CurveAdm 使用上述命令默认重新加载集群中的所有 snapshotclone 服务,如需重新加载指定服务,可通过添加以下 3 个选项来实现: + + --id: 重新加载指定 id 的服务 + --host: 重新加载指定主机的所有服务 + --role: 重新加载指定角色的所有服务 + 以上 3 个选项可任意组合使用,服务对应的 id、host、role 可通过 curveadm status 来查看。 + + 示例 1:重新加载 id 为 c9570c0d0252 的snapshotclone服务 + $ curveadm reload --id c9570c0d0252 + + 示例 2:重新加载 server-host1 这台主机上的所有 snapshotclone 服务 + $ curveadm reload --host server-host1 --role snapshotclone + + 示例 3: 重新加载所有的snapshotclone服务(需确认) + 提醒:该操作会重启机器中的所有snapshotclone服务,所以在执行下列操作时,可能会导致IO短暂时间的抖动。 + $ curveadm reload --role snapshotclone + +6. 再次查看指定的snapshotclone服务是否已经启动(Status为Up状态): + $ curveadm status + +7. 查看集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在修改此snaoshot的配置之前健康,则需要保证修改此服务配置后集群仍是健康状态; + 如果集群在修改此snaoshot服务配置之前异常,则有以下两种情况: + 1. 修改此snaoshot服务配置之前,是由当前snaoshot服务导致的集群异常,则修改当前服务的配置后不能保证集群仍然是健康的,是符合预期的。 + 2. 修改此snaoshot服务配置之前,不是当前snaoshot服务导致的集群异常,则修改当前服务的配置后仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:修改部分snapshotclone服务配置 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时修改所有的snapshotclone服务配置 + + * 时间: 在所有的snapshotclone修改配置及重启过程中,快照服务不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: snapshotclone正在修改配置,服务重启中 + + * 用户:所有使用当前集群的用户 + +11. 参考风险 + +* 情况1:修改部分snapshotclone服务配置 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时修改所有的snapshotclone服务配置 + + * 数据面:无 + + * 管控面:快照服务短暂不可用,等待配置修改完成重启 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 回退snapshotclone配置到之前的值 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/23-curvebs-controlpanel-upgrade-snapshot.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/23-curvebs-controlpanel-upgrade-snapshot.md new file mode 100644 index 0000000..83dd785 --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/23-curvebs-controlpanel-upgrade-snapshot.md @@ -0,0 +1,111 @@ +# Curve 升级snapshotclone + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的snapshotclone服务 +9. 验收标准: 指定snapshotclone服务升级到新的版本,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +前置检查:升级前请确认下版本的兼容性,有些版本可能不能直接升级到某些高级版本,需要去做确认。 + +1. 首先需要使用工具查看当前集群是否健康 + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 如果集群健康(ok),则继续后续步骤。 + 2. 如果集群异常(warn/error),不建议升级。 + +2. 备份本地拓扑文件: + $ cp topology.yaml topology.yaml.bak + + 提醒: 如果找不到本地集群拓扑,则使用如下命令导出配置: + $ curveadm config show > topology.yaml + +2. 修改集群拓扑: + 修改集群拓扑文件中的镜像名为需要升级的新镜像名,只需要修改镜像即可: + $ vim topology.yaml + + kind: curvebs + global: + container_image: quay.io/opencurve/curve/curvebs:latest # 修改镜像 + ... + +3. 重新提交集群拓扑: + $ curveadm config commit topology.yaml + +4. 升级指定服务: + $ curveadm upgrade --role snapshotclone + + 注:上述命令默认是会升级集群中的所有的snapshotclone服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 升级指定 id 的服务 + --host: 升级指定主机的所有服务 + --role: 升级指定角色的所有服务 + + 示例 1:升级 id 为 c9570c0d0252 的snapshotclone服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:升级 server-host1 这台主机上的所有 snapshotclone 服务 + $ curveadm upgrade --host server-host1 --role snapshotclone + + 示例 3:升级集群中所有snapshotclone服务 + $ curveadm upgrade --role snapshotclone + 提示:`curveadm upgrade --role snapshotclone` 默认是滚动升级集群每一个snapshotclone服务,用户在升级一个snapshotclone服务后 需要使用工具确定集群是否健康。如果集群是健康的话,然后再输入yes开始升级下一个服务。 + + 在执行上述命令之后,需要由用户确认升级页面。 输入 yes 开始升级当前服务: + Upgrade 1/3 service: + + host=server-host1 role=snapshotclone image=quay.io/opencurve/curve/curvebs:latest + Do you want to continue? [yes/no]: (default=no) + + 在一个snapshotclone服务升级成功后,使用如下命令查看集群集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +3. 再次查看集群状态,查看指定snapshotclone服务是否启动成功: + $ curveadm status + +4. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 如果集群状态ok,则表示升级成功。 +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 管理服务短暂不可用,快照克隆服务不可用 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 回退snapshotclone + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/24-curvebs-controlpanel-downgrade-snapshot.md b/docs/02-CurveBS/07-maintenance/02-administrator-guide/24-curvebs-controlpanel-downgrade-snapshot.md new file mode 100644 index 0000000..793c88a --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/24-curvebs-controlpanel-downgrade-snapshot.md @@ -0,0 +1,90 @@ +# Curve 回退snapshotclone + +1. 适用环境: +2. 版本号: v1.2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的snapshotclone服务 +9. 验收标准: 指定的snapshotclone服务回退到上一个指定版本,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 使用工具查看当前集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群不健康(error/warn状态),请不要回退。 + +2. 提交备份的topology-old.yaml拓扑文件: + $ curveadm config commit topology-old.yaml + +3. 回退指定服务: + $ curveadm upgrade --role snapshotclone + + 注:上述命令默认是会回退集群中的所有的snapshotclone服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 回退指定 id 的服务 + --host: 回退指定主机的所有服务 + --role: 回退指定角色的所有服务 + + 示例 1:回退 id 为 c9570c0d0252 的snapshotclone服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:回退 host1 这台主机上的所有 snapshotclone 服务 + $ curveadm upgrade --host host1 --role snapshotclone + + 示例 3:回退集群中所有snapshotclone服务 + 提示:`curveadm upgrade --role snapshotclone` 默认是滚动回退/升级集群每一个snapshotclone服务,用户在回退一个snapshotclone服务后 需要进入容器内确定集群是否健康。如果集群是健康的话,然后再输入yes开始回退下一个服务。 + + 在执行上述命令之后,需要由用户确认回退页面。 输入 yes 开始回退当前服务: + Upgrade 1/3 service: + + host=server-host1 role=snapshotclone image=quay.io/opencurve/curve/curvebs:latest + Do you want to continue? [yes/no]: (default=no) + + 在一个snapshotclone服务回退成功后,使用如下命令查看集群的健康状态: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +4. 再次查看集群状态,查看指定 snapshotclone 服务是否启动成功(Status为Up状态): + $ curveadm status + +5. 查看集群是否健康: + $ curve bs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 管理服务短暂不可用,快照克隆服务不可用 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/02-CurveBS/07-maintenance/02-administrator-guide/_category_.json b/docs/02-CurveBS/07-maintenance/02-administrator-guide/_category_.json new file mode 100644 index 0000000..4392e7b --- /dev/null +++ b/docs/02-CurveBS/07-maintenance/02-administrator-guide/_category_.json @@ -0,0 +1,6 @@ +{ + "label": "管理员操作指导", + "link": { + "type": "generated-index" + } +} diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide.md deleted file mode 100644 index efb7eed..0000000 --- a/docs/03-CurveFS/07-maintenance/02-administrator-guide.md +++ /dev/null @@ -1,26 +0,0 @@ -# 管理员操作指导 - -## 日常运维操作 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/maintain-curve - -## 版本升级 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/upgrade-curve - -## 迁移服务 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/migrate-curve - -## 扩容集群 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/scale-curve - -## 坏盘更换 - -请参考指导手册:https://github.com/opencurve/curveadm/wiki/change-disk - - -## 更多操作 - -> TBD:如您需要执行暂未列出的操作,请参考本网站下方的联系方式与Curve团队联系确认。 \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/01-curvefs-controlpanel-start-mds.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/01-curvefs-controlpanel-start-mds.md new file mode 100644 index 0000000..47065d0 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/01-curvefs-controlpanel-start-mds.md @@ -0,0 +1,71 @@ +# Curve 启动mds + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 该指定的mds服务启动成功,集群健康 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定节点的mds状态: + $ curveadm status + + 注:如果指定的mds已经处于运行状态(Status为Up状态),则不用再次启动。 + +2. 如果处于Exit状态的话,则使用下述命令启动服务: + + 如果是启动某一个指定的mds,使用--id选项: + $ curveadm start --id + + 如果要启动某一个节点上所有mds服务,使用如下命令: + $ curveadm start --host --role mds + + 如果要启动所有的mds,使用如下命令: + $ curveadm start --role mds + +3. 再次查看集群状态,查看指定mds服务是否启动成功(Status为Up状态): + $ curveadm status + +4. 使用工具查看集群状态是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 停止mds + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/02-curvefs-controlpanel-stop-mds.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/02-curvefs-controlpanel-stop-mds.md new file mode 100644 index 0000000..904da52 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/02-curvefs-controlpanel-stop-mds.md @@ -0,0 +1,97 @@ +# Curve 停止mds + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 具体节点,具体的mds服务 +9. 验收标准: 该节点的mds服务停止成功,并且集群健康 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定节点的mds状态: + $ curveadm status + + 注:如果指定的mds已经处于退出状态(Status为Exited状态),则不用重复操作。 + +2. 如果处于Up状态,则使用下述命令停止服务, + + 如果是停止某个指定的mds,使用--id选项: + $ curveadm stop --id + + 如果要停止某个节点上的所有的mds服务,使用如下命令: + $ curveadm stop --host --role mds + + 如果要停止集群中所有的mds服务,使用如下命令:(一般不会进行操作) + 注意:如果停止所有的mds,则导致集群不可用,请在进行下列操作前仔细确认是否要停掉所有的mds服务 + $ curveadm stop --role mds + +3. 再次查看集群状态,查看指定mds服务是否已经退出(Status为Exited状态): + $ curveadm status + +4. 使用工具使用查看当前集群状态: + $ curve fs status cluster + + 当停止部分mds服务后,上述命令输出提示集群处于warn状态 Cluster health is: warn,符合预期。 + 如果停止部分mds服务后,上述命令输出提示集群处于error状态 Cluster health is: error,则表示集群出错,需要重新拉起刚才停掉的mds。 + (一般不会做此操作)停掉所有的mds服务,集群应该处于error状态 Cluster health is: error。 +``` + +10. 参考影响: + +* 情况1:停止部分mds + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:停掉所有的mds服务 + + * 时间:直至有mds服务启动之前,集群不可用 + + * 业务方:所有使用当前集群的业务方 + + * 影响主题:mds挂掉 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:停止部分mds服务 + + * 数据面: 无 + + * 管控面: 无 + + * 恢复能力: 无需恢复 + +* 情况2:停掉所有mds服务 + + * 数据面: IO暂停 + + * 管控面: 管控面服务不可用 + + * 恢复能力: 无需回复 + +12. 参考回滚策略: 重新拉起mds + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/03-curvefs-controlpanel-restart-mds.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/03-curvefs-controlpanel-restart-mds.md new file mode 100644 index 0000000..f4cf478 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/03-curvefs-controlpanel-restart-mds.md @@ -0,0 +1,103 @@ +# Curve 重启mds + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 指定的mds服重启成功,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 使用工具查看集群是否健康,当前mds是否异常: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望重启恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 使用如下命令重启mds服务: + + 如果是重启某个指定的mds服务,使用--id选项: + $ curveadm restart --id + + 如果要重启某个节点下的所有的mds服务,使用如下命令: + $ curveadm restart --host --role mds + + (一般不会做此操作)如果要重启集群中所有的mds服务,使用如下命令: + 注意:如果重启所有的mds,则导致集群短暂不可用,在重启期间所有IO出错,请谨慎进行下列操作。 + $ curveadm restart --role mds + +3. 再次查看集群状态,查看指定mds服务是否重启成功: + $ curveadm status + +4. 查看集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在重启之前健康,则需要保证重启服务后集群仍是健康状态; + 如果集群在重启之前异常,则有以下两种情况: + 1. 重启之前,是由当前服务导致的集群异常,重启当前服务后不能保证集群仍然是健康的,是符合预期的。 + 2. 重启之前,不是当前服务导致的集群异常,则重启后集群仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:重启部分mds服务 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时重启所有的mds服务 + + * 时间: 在所有的mds重启过程中,集群不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: mds正在重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:重启部分mds服务 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时重启所有的mds服务 + + * 数据面:可能有短暂的IO抖动。如果客户端缓存没有过期,则IO无影响。 + + * 管控面:管理服务暂不可用 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/04-curvefs-controlpanel-config-mds.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/04-curvefs-controlpanel-config-mds.md new file mode 100644 index 0000000..6d8caf4 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/04-curvefs-controlpanel-config-mds.md @@ -0,0 +1,125 @@ +# Curve 修改mds配置 + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 指定的mds服务启动成功,集群健康 +10. 参考步骤: + +```plaintext +1. 需要先确认当前集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是mds异常: + $ curve bs status mds + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望通过修改配置恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 备份本地集群拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:当本地拓扑文件丢失时,我们可以通过如下命令保存当前的集群拓扑来恢复: + $ curveadm config show > topology.yaml + +3. 编辑本地集群拓扑文件,在拓扑文件中增加/删除/修改mds服务的配置项: + $ vim topology.yaml + +4. 提交修改的集群拓扑: + $ curveadm config commit topology.yaml + +5. 重新加载服务: + $ curveadm reload --role mds + + CurveAdm 使用上述命令默认重新加载集群中的所有 mds 服务,如需重新加载指定服务,可通过添加以下 3 个选项来实现: + + --id: 重新加载指定 id 的服务 + --host: 重新加载指定主机的所有服务 + --role: 重新加载指定角色的所有服务 + 以上 3 个选项可任意组合使用,服务对应的 id、host、role 可通过 curveadm status 来查看。 + + 示例 1:重新加载 id 为 c9570c0d0252 的mds服务 + $ curveadm reload --id c9570c0d0252 + + 示例 2:重新加载 server-host1 这台主机上的所有 mds 服务 + $ curveadm reload --host server-host1 --role mds + + 示例 3: 重新加载所有的mds服务(需确认) + 提醒:该操作会重启机器中的所有mds服务,所以在执行下列操作时,可能会导致IO短暂时间的抖动。 + $ curveadm reload --role mds + +6. 再次查看指定的mds服务是否已经启动(Status为Up状态): + $ curveadm status + +7. 查看集群的健康状态: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在修改此mds的配置之前健康,则需要保证修改此服务配置后集群仍是健康状态; + 如果集群在修改此mds服务配置之前异常,则有以下两种情况: + 1. 修改此mds服务配置之前,是由当前mds服务导致的集群异常,则修改当前服务的配置后不能保证集群仍然是健康的,是符合预期的。 + 2. 修改此mds服务配置之前,不是当前mds服务导致的集群异常,则修改当前服务的配置后仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:修改部分mds服务配置 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时修改所有的mds服务配置 + + * 时间: 在所有的mds修改配置及重启过程中,集群不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: mds正在修改配置,服务重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险 + +* 情况1:修改部分mds服务配置 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时修改所有的mds服务配置 + + * 数据面:可能有短暂的IO抖动。如果客户端缓存没有过期,则IO无影响。 + + * 管控面:管控面会短暂不可用 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 回退mds配置到之前的值 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/05-curvefs-controlpanel-upgrade-mds.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/05-curvefs-controlpanel-upgrade-mds.md new file mode 100644 index 0000000..c5d99a1 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/05-curvefs-controlpanel-upgrade-mds.md @@ -0,0 +1,111 @@ +# Curve 升级mds + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 指定mds服务升级到新的版本,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +前置检查:升级前请确认下版本的兼容性,有些版本可能不能直接升级到某些高级版本,需要去做确认。 + +1. 首先需要使用工具查看当前集群是否健康 + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 如果集群健康(ok),则继续后续步骤。 + 2. 如果集群异常(warn/error),不建议升级。 + +2. 备份本地拓扑文件: + $ cp topology.yaml topology.yaml.bak + + 提醒: 如果找不到本地集群拓扑,则使用如下命令导出配置: + $ curveadm config show > topology.yaml + +2. 修改集群拓扑: + 修改集群拓扑文件中的镜像名为需要升级的新镜像名,只需要修改镜像即可: + $ vim topology.yaml + + kind: curvefs + global: + container_image: opencurvedocker/curvefs:v2.6-rc2 # 修改镜像 + ... + +3. 重新提交集群拓扑: + $ curveadm config commit topology.yaml + +4. 升级指定服务: + $ curveadm upgrade --role mds + + 注:上述命令默认是会升级集群中的所有的mds服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 升级指定 id 的服务 + --host: 升级指定主机的所有服务 + --role: 升级指定角色的所有服务 + + 示例 1:升级 id 为 c9570c0d0252 的mds服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:升级 server-host1 这台主机上的所有 mds 服务 + $ curveadm upgrade --host server-host1 --role mds + + 示例 3:升级集群中所有mds服务 + $ curveadm upgrade --role mds + 提示:`curveadm upgrade --role mds` 默认是滚动升级集群每一个mds服务,用户在升级一个mds服务后 需要使用工具确定集群是否健康。如果集群是健康的话,然后再输入yes开始升级下一个服务。 + + 在执行上述命令之后,需要由用户确认升级页面。 输入 yes 开始升级当前服务: + Upgrade 1/3 service: + + host=server-host1 role=mds image=opencurvedocker/curvefs:v2.6-rc2 + Do you want to continue? [yes/no]: (default=no) + + 在一个mds服务升级成功后,使用如下命令查看集群集群的健康状态: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +3. 再次查看集群状态,查看指定mds服务是否启动成功: + $ curveadm status + +4. 查看集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 如果集群状态ok,则表示升级成功。 +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: IO可能有短暂的抖动 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 回退mds + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/06-curvefs-controlpanel-downgrade-mds.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/06-curvefs-controlpanel-downgrade-mds.md new file mode 100644 index 0000000..4049597 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/06-curvefs-controlpanel-downgrade-mds.md @@ -0,0 +1,90 @@ +# Curve 回退mds + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 管控面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的mds服务 +9. 验收标准: 指定的mds服务回退到上一个指定版本,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 使用工具查看当前集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群不健康(error/warn状态),请不要回退。 + +2. 提交备份的topology-old.yaml拓扑文件: + $ curveadm config commit topology-old.yaml + +3. 回退指定服务: + $ curveadm upgrade --role mds + + 注:上述命令默认是会回退集群中的所有的mds服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 回退指定 id 的服务 + --host: 回退指定主机的所有服务 + --role: 回退指定角色的所有服务 + + 示例 1:回退 id 为 c9570c0d0252 的mds服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:回退 host1 这台主机上的所有 mds 服务 + $ curveadm upgrade --host host1 --role mds + + 示例 3:回退集群中所有mds服务 + 提示:`curveadm upgrade --role mds` 默认是滚动回退/升级集群每一个mds服务,用户在回退一个mds服务后 需要进入容器内确定集群是否健康。如果集群是健康的话,然后再输入yes开始回退下一个服务。 + + 在执行上述命令之后,需要由用户确认回退页面。 输入 yes 开始回退当前服务: + Upgrade 1/3 service: + + host=server-host1 role=mds image=opencurvedocker/curvefs:v2.6-rc2 + Do you want to continue? [yes/no]: (default=no) + + 在一个mds服务回退成功后,使用如下命令查看集群的健康状态: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +4. 再次查看集群状态,查看指定 mds 服务是否启动成功(Status为Up状态): + $ curveadm status + +5. 查看集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 影响主题: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/07-curvefs-datapanel-start-metaserver.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/07-curvefs-datapanel-start-metaserver.md new file mode 100644 index 0000000..09b0326 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/07-curvefs-datapanel-start-metaserver.md @@ -0,0 +1,69 @@ +# Curve 启动metaserver + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的metaserver服务 +9. 验收标准: 该指定的metaserver服务启动成功,并且集群健康,可以对外正常提供服务 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定的metaserver服务状态: + $ curveadm status + + 注:如果指定的metaserver已经处于运行状态(Status为Up状态),则不用再次启动。 + +2. 否则使用下述命令启动相应的metaserver服务: + + 如果是启动某一个指定的metaserver,使用--id选项: + $ curveadm start --id + + 如果要启动某一个节点上所有metaserver服务,使用如下命令: + $ curveadm start --host --role metaserver + + 如果要启动所有的metaserver,使用如下命令: + $ curveadm start --role metaserver + +3. 再次查看集群状态,查看指定metaserver服务是否启动成功(Status为Up状态): + $ curveadm status + +4. 使用工具查看集群状态是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: IO可能有短暂时间抖动 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 停止metaserver + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/08-curvefs-datapanel-stop-metaserver.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/08-curvefs-datapanel-stop-metaserver.md new file mode 100644 index 0000000..ae95474 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/08-curvefs-datapanel-stop-metaserver.md @@ -0,0 +1,98 @@ +# Curve 停止metaserver + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的metaserver服务 +9. 验收标准: 该指定的metaserver服务停止成功,并且集群仍然健康 +10. 参考步骤: + +```plaintext +1. 查看集群状态和指定的metaserver状态: + $ curveadm status + + 注:如果指定的metaserver已经处于退出状态(Status为Exited状态),则不用再次执行停止操作。 + +2. 使用如下命令停止metaserver服务: + + 如果是停止某个指定的metaserver,使用--id选项: + $ curveadm stop --id + + 如果要停止某个节点上的所有的metaserver服务,使用如下命令: + $ curveadm stop --host --role metaserver + + 如果要停止集群中所有的metaserver服务,使用如下命令(一般不会做此操作) + 警告:如果要停掉所有的metaserver,则整个集群不可用,请谨慎确认之后再进行操作。 + $ curveadm stop --role metaserver + +3. 再次查看集群状态,查看指定metaserver服务是否已经退出(Status为Exited状态): + $ curveadm status + +4. 使用工具查看当前集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: warn + + 当停掉部分的metaserver的时候,集群状态是warn状态,符合预期。 + 如果停掉部分metaserver,集群状态是error状态,则表示集群出错,需要重新拉取刚才停掉的metaserver。 + (一般不会做此操作)停掉所有的metaserver,集群状态是error状态,符合预期。 +``` + +10. 参考影响: + +* 情况1:停止部分metaserver服务 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时停掉所有的metaserver服务(一般不会做此操作) + + * 时间: 待集群中有metaserver被重新拉取之前,整个集群不可用。 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: metaserver挂掉 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:停止部分metaserver服务 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时停掉所有的metaserver服务(一般不会做此操作) + + * 数据面:集群不可用,IO出错 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 重启metaserver + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/09-curvefs-datapanel-restart-metaserver.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/09-curvefs-datapanel-restart-metaserver.md new file mode 100644 index 0000000..330a403 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/09-curvefs-datapanel-restart-metaserver.md @@ -0,0 +1,123 @@ +# Curve 重启metaserver + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的metaserver服务 +9. 验收标准: 该指定metaserver服务重启成功,并且集群健康 +10. 参考步骤: + +```plaintext +1. 使用工具查看集群是否健康,当前metaserver是否异常 + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是metaserver异常: + $ curve fs status metaserver + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望重启恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 使用如下命令重启metaserver服务: + + 如果是重启指定的metaserver服务,使用--id选项: + $ curveadm restart --id + + 如果要重启某个节点下的所有的metaserver服务,使用如下命令: + $ curveadm restart --host --role metaserver + + 如果要重启集群中所有的metaserver服务,使用如下命令: + 提示:如果重启所有的metaserver,则导致集群短暂不可用,在重启期间所有IO出错,请谨慎进行下列操作。 + $ curveadm restart --role metaserver + +3. 再次查看集群状态,查看指定metaserver服务是否重启成功(Status为Up状态): + $ curveadm status + +4. 使用工具查看集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在重启之前健康,则需要保证重启服务后集群仍是健康状态; + 如果集群在重启之前异常,则有以下两种情况: + 1. 重启之前,是由当前服务导致的集群异常,重启当前服务后不能保证集群仍然是健康的,是符合预期的。 + 2. 重启之前,不是当前服务导致的集群异常,则重启后集群仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:重启某个metaserver服务/副本域的一个metaserver + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:重启某个副本域的所有metaserver + + * 时间: 直至这些metaserver服务重启成功,io会卡住 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: metaserver正在重启 + + * 用户:所有使用当前集群的用户 + +* 情况3:同时重启所有的metaserver服务 + + * 时间: 在所有的metaserver重启过程中,集群不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: metaserver正在重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:重启某一个metaserver/一个副本域的metaserver + + * 数据面:IO可能有短暂时间抖动。如果该metaserver上面的copyset属于leader的话,重启则会造成重新选举,从而发生IO抖动 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:重启某个副本域的所有metaserver + + * 数据面:会导致IO hang + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况3:同时重启所有的metaserver服务 + + * 数据面:IO有可能短暂时间抖动。如果所有的metaserver同一时刻重启,则该时刻IO错误 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/10-curvefs-datapanel-config-metaserver.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/10-curvefs-datapanel-config-metaserver.md new file mode 100644 index 0000000..e04097a --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/10-curvefs-datapanel-config-metaserver.md @@ -0,0 +1,125 @@ +# Curve 修改metaserver配置 + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的metaserver服务 +9. 验收标准: 该指定metaserver配置修改成功,metaserver重启成功并可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 需要先确认当前集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 集群健康(ok):如果集群健康,继续执行后续步骤。重启当前服务后需确保集群仍是健康状态。 + 2. 集群异常(warn/error): + 使用工具查看是否是metaserver异常: + $ curve fs status metaserver + 2.1 如果是当前要重启的服务导致的异常(warn/error)并希望通过修改配置恢复,则继续执行后续步骤。但重启之后不能保证集群是健康状态。 + 2.2 如果当前要重启的服务正常,其他的服务异常导致的集群不健康,则继续执行后续步骤。但是重启当前服务后集群仍然处于不健康状态。 + +2. 备份本地集群拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:当本地拓扑文件丢失时,我们可以通过如下命令保存当前的集群拓扑来恢复: + $ curveadm config show > topology.yaml + +3. 编辑本地集群拓扑文件,在拓扑文件中增加/删除/修改metaserver服务的配置项: + $ vim topology.yaml + +4. 提交修改的集群拓扑: + $ curveadm config commit topology.yaml + +5. 重新加载服务: + $ curveadm reload --role metaserver + + CurveAdm 使用上述命令默认重新加载集群中的所有 metaserver 服务,如需重新加载指定服务,可通过添加以下 3 个选项来实现: + + --id: 重新加载指定 id 的服务 + --host: 重新加载指定主机的所有服务 + --role: 重新加载指定角色的所有服务 + 以上 3 个选项可任意组合使用,服务对应的 id、host、role 可通过 curveadm status 来查看。 + + 示例 1:重新加载 id 为 c9570c0d0252 的metaserver服务 + $ curveadm reload --id c9570c0d0252 + + 示例 2:重新加载 server-host1 这台主机上的所有 metaserver 服务 + $ curveadm reload --host server-host1 --role metaserver + + 示例 3:重新加载集群中所有的metaserver服务 + 提醒:该操作会重启机器中的所有metaserver服务,所以在执行下列操作时,可能会导致IO短暂时间的不可用。 + $ curveadm reload --role metaserver + +6. 再次查看指定的metaserver服务是否已经启动(Status为Up状态): + $ curveadm status + +7. 查看集群的健康状态: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群在修改此metaserver的配置之前健康,则需要保证修改此服务配置后集群仍是健康状态; + 如果集群在修改此metaserver服务配置之前异常,则有以下两种情况: + 1. 修改此metaserver服务配置之前,是由当前metaserver服务导致的集群异常,则修改当前服务的配置后不能保证集群仍然是健康的,是符合预期的。 + 2. 修改此metaserver服务配置之前,不是当前metaserver服务导致的集群异常,则修改当前服务的配置后仍然是不健康的状态,是符合预期的。 +``` + +10. 参考影响: + +* 情况1:修改部分metaserver服务 + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:同时修改所有的metaserver服务配置 + + * 时间: 在所有的metaserver修改配置及重启过程中,集群不可用 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: metaserver正在修改配置,服务重启 + + * 用户:所有使用当前集群的用户 + +11. 参考风险: + +* 情况1:修改部分metaserver服务配置 + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:同时修改所有的metaserver服务配置 + + * 数据面:可能有短暂的IO抖动。如果所有的metaserver在同一时刻进入重启,该时刻读写IO错误 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 回退metaserver配置到之前的值 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/11-curvefs-datapanel-upgrade-metaserver.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/11-curvefs-datapanel-upgrade-metaserver.md new file mode 100644 index 0000000..84ba6dd --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/11-curvefs-datapanel-upgrade-metaserver.md @@ -0,0 +1,152 @@ +# Curve 升级metaserver + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的metaserver服务 +9. 验收标准: 该指定metaserver升级成功,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +前置检查:升级前请确认下版本的兼容性,有些版本可能不能直接升级到某些高级版本,需要去做确认。 + +1. 首先需要使用工具查看当前集群是否健康 + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 如果集群健康(ok),则继续后续步骤。 + 2. 如果集群异常(warn/error),不建议升级。 + +2. 备份本地拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注: 如果找不到本地集群拓扑,则使用如下命令导出配置: + $ curveadm config show > topology.yaml + +3. 修改集群拓扑: + + 修改集群拓扑文件中的镜像名为需要升级的新镜像名,只需要修改镜像即可: + $ vim topology.yaml + + kind: curvefs + global: + container_image: opencurvedocker/curvefs:v2.6-rc2 # 修改镜像 + ... + +4. 重新提交集群拓扑: + $ curveadm config commit topology.yaml + +5. 升级指定 metaserver 服务: + $ curveadm upgrade --role metaserver + + 注:上述命令默认是会升级集群中的所有的 metaserver 服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 升级指定 id 的服务 + --host: 升级指定主机的所有服务 + --role: 升级指定角色的所有服务 + + 示例 1:升级 id 为 c9570c0d0252 的 metaserver 服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:升级 server-host1 这台主机上的所有 metaserver 服务 + $ curveadm upgrade --host server-host1 --role metaserver + + 示例 3:升级集群中的所有的metaserver + $ curveadm upgrade --role metaserver + 提示:`curveadm upgrade --role metaserver` 默认是滚动升级集群每一个metaserver服务,用户在升级完一个metaserver服务后 需要使用工具确定集群是否健康。如果集群是健康的话,再输入yes开始升级下一个服务。 + + 在执行上述命令之后,需要由用户确认升级页面。 输入 yes 开始升级当前服务: + Upgrade 1/3 service: + + host=server-host1 role=metaserver image=opencurvedocker/curvefs:v2.6-rc2 + Do you want to continue? [yes/no]: (default=no) + + 在一个metaserver服务升级成功后,使用如下命令查看集群集群的健康状态: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +6. 再次查看集群状态,查看指定 metaserver 服务是否启动成功(Status为Up状态): + $ curveadm status + +7. 查看集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 如果集群状态ok,则表示升级成功。 +``` + +10. 参考影响: + +* 情况1:升级某一个metaserver/一个副本域的metaserver + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:升级某个副本域的所有metaserver + + * 时间: 直至这些metaserver服务升级成功,并且leader选举成功后恢复正常 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: metaserver正在升级 + + * 用户:所有使用当前集群的用户 + +* 情况3:同时升级所有的metaserver服务(滚动升级,升级之后需确认集群健康然后升级下一个) + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +11. 参考风险: + +* 情况1:升级某一个metaserver/一个副本域的metaserver + + * 数据面:IO可能有短暂时间抖动。如果该metaserver上面的copyset属于leader的话,升级则会造成重新选举,从而发生IO抖动 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:升级某个副本域的所有metaserver + + * 数据面:会导致IO hang + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况3:同时升级所有的metaserver服务(滚动升级,升级之后需确认集群健康然后升级下一个) + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 回退metaserver + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/12-curvefs-datapanel-downgrade-metaserver.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/12-curvefs-datapanel-downgrade-metaserver.md new file mode 100644 index 0000000..90e6a84 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/12-curvefs-datapanel-downgrade-metaserver.md @@ -0,0 +1,131 @@ +# Curve 回退metaserver + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称,具体的metaserver服务 +9. 验收标准: 该指定的metaserver服务回退到上一个版本,集群健康,并且可以正常对外提供服务 +10. 参考步骤: + +```plaintext +1. 使用工具查看当前集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群不健康(error/warn状态),请不要回退 + +2. 提交备份的topology-old.yaml拓扑文件: + $ curveadm config commit topology-old.yaml + +3. 回退指定服务: + $ curveadm upgrade --role metaserver + + 注:上述命令默认是会回退集群中的所有的metaserver服务,如果只需要指定服务,可通过添加以下3个选项来实现: + --id: 回退指定 id 的服务 + --host: 回退指定主机的所有服务 + --role: 回退指定角色的所有服务 + + 示例 1:回退 id 为 c9570c0d0252 的metaserver服务 + $ curveadm upgrade --id c9570c0d0252 + + 示例 2:回退 server-host1 这台主机上的所有 metaserver 服务 + $ curveadm upgrade --host server-host1 --role metaserver + + 示例 3:回退集群中的所有 metaserver 服务 + $ curveadm upgrade --role metaserver + 提示:`curveadm upgrade --role metaserver` 默认是滚动回退/回退集群每一个metaserver服务,用户在回退完一个metaserver服务后 需要进入容器内确定集群是否健康。如果集群是健康的话,再输入yes开始回退下一个服务。 + + 在执行上述命令之后,需要由用户确认回退页面。 输入 yes 开始回退当前服务: + Upgrade 1/3 service: + + host=server-host1 role=metaserver image=opencurvedocker/curvefs:v2.6-rc2 + Do you want to continue? [yes/no]: (default=no) + + 在一个metaserver服务回退成功后,使用如下命令查看集群的健康状态: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +4. 再次查看集群状态,查看指定 metaserver 服务是否启动成功(Status为Up状态): + $ curveadm status + +5. 查看集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 情况1:回退某一个metaserver/一个副本域的metaserver + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +* 情况2:回退某个副本域的所有metaserver + + * 时间: 直至这些metaserver服务回退成功,并且leader选举成功后恢复正常 + + * 业务方: 所有使用当前集群的业务方 + + * 影响主题: metaserver正在回退 + + * 用户:所有使用当前集群的用户 + +* 情况3:同时回退所有的metaserver服务(滚动回退,回退之后需确认集群健康然后回退下一个) + + * 时间: 无 + + * 业务方: 无 + + * 影响主题: 无 + + * 用户:无 + +11. 参考风险: + +* 情况1:回退某一个metaserver/一个副本域的metaserver + + * 数据面:IO可能有短暂时间抖动。如果该metaserver上面的copyset属于leader的话,回退则会造成重新选举,从而发生IO抖动 + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况2:回退某个副本域的所有metaserver + + * 数据面:会导致IO hang + + * 管控面:无 + + * 恢复能力:无需恢复 + +* 情况3:同时回退所有的metaserver服务(滚动回退,回退之后需确认集群健康然后回退下一个) + + * 数据面:无 + + * 管控面:无 + + * 恢复能力:无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/14-curvefs-datapanel-scaleout.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/14-curvefs-datapanel-scaleout.md new file mode 100644 index 0000000..bd56109 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/14-curvefs-datapanel-scaleout.md @@ -0,0 +1,145 @@ +# Curve 集群扩容 + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 扩容完成,且集群正常工作 +10. 参考步骤: + +```plaintext +1. 使用工具查看当前集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:1. 如果集群健康(ok)的话,则继续后续的步骤。 + 2. 如果集群处于warn状态,需要判断是否是因为当前要扩容的服务导致的集群异常。如果不是当前要扩容的服务类型导致的,可以继续执行后续步骤。否则,则不要继续后续操作。 + 3. 如果集群是error状态,则扩容可能是无意义操作,所以不要执行后续步骤。 + +2. 提交主机列表: + + 2.1 添加新增机器至主机列表: + $ vim hosts.yaml + + global: + user: curve + ssh_port: 22 + private_key_file: /home/curve/.ssh/id_rsa + + hosts: + - host: server-host1 + hostname: 10.0.1.1 + - host: server-host2 + hostname: 10.0.1.2 + - host: server-host3 + hostname: 10.0.1.3 + - host: server-host4 # 新增机器 + hostname: 10.0.1.4 + - host: server-host5 # 新增机器 + hostname: 10.0.1.5 + - host: server-host6 # 新增机器 + hostname: 10.0.1.6 + + 2.2 提交主机列表: + $ curveadm hosts commit hosts.yaml + + 注:如果找不到本地hosts.yaml文件,可以通过如下命令导出主机列表: + $ curveadm hosts show > hosts.yaml + +3. 修改集群拓扑: + + 3.1 备份当前拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:如果找不到本地集群拓扑,则使用如下命令导出拓扑配置: + $ curveadm config show > topology.yaml + + 3.2 修改集群拓扑 + $ vim topology.yaml + + kind: curvefs + global: + container_image: opencurvedocker/curvefs:latest + log_dir: ${home}/curvefs/logs/${service_role} + data_dir: ${home}/curvefs/data/${service_role} + variable: + home: /tmp + machine1: server-host1 + machine2: server-host2 + machine3: server-host3 + machine4: server-host4 # 新增机器 + machine5: server-host5 # 新增机器 + machine6: server-host6 # 新增机器 + + # 如下以扩容metaserver为例,将新增机器添加到metaserver_services下 + # 如果要扩容mds,则将新增机器添加到mds_services下即可 + metaserver_services: + config: + listen.ip: ${service_host} + listen.port: 6800 + listen.external_port: 7800 + metaserver.loglevel: 0 + deploy: + - host: ${machine1} + - host: ${machine2} + - host: ${machine3} + - host: ${machine4} # 新增机器 + - host: ${machine5} # 新增机器 + - host: ${machine6} # 新增机器 + config: + metaserver.loglevel: 3 + + 注: + * 每一次只能扩容同一种角色的服务 + * 对于扩容metaserver服务来说,每次扩容都会新增一个逻辑池,新增的服务都位于该逻辑池中,请确保每次扩容至少增加 3 台主机 + +4. 扩容集群: + $ curveadm scale-out topology.yaml + + 提醒:扩容操作属于幂等操作,用户在执行失败后可重复执行,不用担心服务残留问题 + +5. 再次查看集群状态,查看指定扩容服务是否启动成功(Status为Up状态): + $ curveadm status + +6. 查看集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果扩容前集群处于warn状态,但不是当前服务导致的问题。如果当前服务扩容成功,但是集群会仍然处于warn状态,是符合预期的。 +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/15-curvefs-datapanel-change-disk.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/15-curvefs-datapanel-change-disk.md new file mode 100644 index 0000000..430a9c6 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/15-curvefs-datapanel-change-disk.md @@ -0,0 +1,62 @@ +# Curve 坏盘更换 + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 新盘对应的metaserver服务重启成功 +10. 参考步骤: + +```plaintext +1. 剔除坏盘: + 在坏盘情况下,对应的metaserver会退出,集群会自动做迁移,使用如下命令查看故障的metaserver的ID(Status为Exited状态的metaserver) + $ curveadm status -v + +2. 拉起当前服务: + $ curveadm start --id + + 这里的ID为因为坏盘而停止的metaserver服务ID,也就是第1步看到的ID + +5. 再次查看集群当前metaserver状态是否被成功拉起状态(Status为Up状态): + $ curveadm status + +6. 查看集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: IO可能有短暂时间抖动 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/16-curvefs-datapanel-migrate.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/16-curvefs-datapanel-migrate.md new file mode 100644 index 0000000..8863afa --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/16-curvefs-datapanel-migrate.md @@ -0,0 +1,122 @@ +# Curve 迁移服务 + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 迁移完成,且集群正常工作 +10. 参考步骤: + +```plaintext +0. 集群的迁移就是将当前节点的所有服务下线,在另一个节点恢复这些服务。 + +1. 需要先确认当前集群是否健康: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + + 注:如果集群不健康,需要判断是否仍然需要迁移,否则可能导致集群服务不可用。 + +2. 备份本地集群拓扑文件: + $ cp topology.yaml topology-old.yaml + + 注:当本地拓扑文件丢失时,我们可以通过如下命令保存当前的集群拓扑来恢复: + $ curveadm config show > topology.yaml + +3. 添加新增机器至主机列表: + $ vim hosts.yaml + + global: + user: curve + ssh_port: 22 + private_key_file: /home/curve/.ssh/id_rsa + + hosts: + - host: server-host1 + hostname: 10.0.1.1 + - host: server-host2 + hostname: 10.0.1.2 + - host: server-host3 + hostname: 10.0.1.3 + - host: server-host4 # 新增机器 + hostname: 10.0.1.4 + + 注:如果找不到本地的hosts.yaml文件,则使用如下命令重新导出: + $ curveadm hosts show > hosts.yaml + +4. 编辑本地集群拓扑文件,在拓扑文件中添加新机器: + $ vim topology.yaml + + kind: curvefs + global: + variable: + machine1: server-host1 + machine2: server-host2 + machine3: server-host3 + machine4: server-host4 # 新增机器 + + metaserver_services: + config: + listen.ip: ${service_host} + listen.port: 6800 + listen.external_port: 7800 + metaserver.loglevel: 0 + deploy: + - host: ${machine1} + - host: ${machine2} + - host: ${machine4} # 将 ${machine3} 修改为 ${machine4} + config: + metaserver.loglevel: 3 + + 注: + * 每一次只能迁移同一种角色的其中一个服务 + * 每一次只能迁移同一台主机的服务 + +5. 迁移服务: + $ curveadm migrate topology.yaml + +6. 再次查看新节点对应的服务是否已经启动(Status为Up状态): + $ curveadm status + +7. 查看集群的健康状态: + $ curve fs status cluster + 结果输出有下面字样则集群健康:Cluster health is: ok + +8. 如果要继续迁移,请等待当前服务迁移完成,集群健康。 + 重复3-7步骤 +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 在服务迁移过程中,相当于停服然后重启。如果迁移etcd/mds可能没有影响,对于metaserver来说可能会有IO抖动,因为copyset的leader可能重新选举。 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/17-curvefs-client-mount.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/17-curvefs-client-mount.md new file mode 100644 index 0000000..894c286 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/17-curvefs-client-mount.md @@ -0,0 +1,123 @@ +# Curve 挂载文件系统 + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 客户端成功挂载 +10. 参考步骤: + +```plaintext +1. 导入客户端主机。 + 需要先导入客户端所需的主机列表,如果在部署集群时已将客户端主机导入,可直接跳过此步骤。请确保在之后挂载/卸载中指定的主机都已导入。 + + 可以通过curveadm hosts show 查看要挂载的客户端主机是否已经导入: + $ curveadm hosts show + + 如果之前没有导入主机的话,则需要添加: + $ vim hosts.yaml + + global: + user: curve + ssh_port: 22 + private_key_file: /home/curve/.ssh/id_rsa + + hosts: + - host: server-host1 + hostname: 10.0.1.1 + - host: server-host2 + hostname: 10.0.1.2 + - host: server-host3 + hostname: 10.0.1.3 + - host: client-host # 新添加的要挂载的客户端主机 + hostname: 10.0.1.4 + + 使用如下命令提出主机列表: + $ curveadm hosts commit hosts.yaml + +2. 准备客户端配置文件,填写s3相关信息和挂载项配置 + $ vim client.yaml + + kind: curvefs + # s3信息 + s3.ak: <> + s3.sk: <> + s3.endpoint: <> + s3.bucket_name: <> + # 镜像 + container_image: <> + # 后端mds地址 + mdsOpt.rpcRetryOpt.addrs: 10.0.1.1:6700,10.0.1.2:6700,10.0.1.3:6700 + + # 其他的挂载项配置 + log_dir: /home/curve/curvefs/logs/client + data_dir: /data/curvefs + + +3. 挂载CurveFS文件系统 + $ curveadm mount --host -c client.yaml + + * : 文件系统名,用户可自行定义, 但必须为小写字母、数字、连字符组合,即满足正则表达式 ^([a-z0-9]+\\-?)+$ + * : 挂载路径,用户可自行定义,但必须为绝对路径 + * --host: 将卷挂载到指定主机,用户可自行选择,请确保该主机已被导入 + + 挂载示例: + $ curveadm mount test /mnt/test --host client-host -c client.yaml + + Check Kernel Module: [OK] + + host=client-host module=fuse [1/1] [OK] + + Check S3 Configure : [OK] + + Mount FileSystem: [OK] + + mountFSName=test mountFSType=s3 mountPoint=/mnt/test [1/1] [OK] + + Mount test to /mnt/test (client-host) success ^_^ + + 出现如上提示,则表示挂载成功。 + +4. 查看客户端状态是否已经Up状态。如果为up状态则挂载点正常。 + $ curveadm client status + + Get Client Status: [OK] + + Id Kind Host Container Id Status Aux Info + -- ---- ---- ------------ ------ -------- + 462d538778ad curvefs client-host dfa00fd01ae8 Up 36 hours {"fsname":"test","mount_point":"/mnt/test"} +``` + +10. 参考影响: + +* 时间: 无 + +* 业务方: 无 + +* 用户:无 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 无 + +13. 需求发起方: CURVE + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/18-curvefs-client-umount.md b/docs/03-CurveFS/07-maintenance/02-administrator-guide/18-curvefs-client-umount.md new file mode 100644 index 0000000..aef0af2 --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/18-curvefs-client-umount.md @@ -0,0 +1,80 @@ +# Curve 卸载文件系统 + +1. 适用环境: +2. 版本号: v2.6+ +3. CurveAdm版本:v0.2.0+ +4. 最后更新日期: 2023/09/30 +5. 层面: 数据面 +6. 运维级别: P1 +7. 所属产品: 存储 +8. 需求明细: 节点名称 +9. 验收标准: 客户端成功卸载文件系统 +10. 参考步骤: + +```plaintext +提示:卸载操作会导致文件系统不可用,需要业务方发起操作。 + +1. 查看要卸载的文件系统状态: + $ curveadm client status + + Get Client Status: [OK] + + Id Kind Host Container Id Status Aux Info + -- ---- ---- ------------ ------ -------- + 462d538778ad curvefs client-host dfa00fd01ae8 Up 36 hours {"fsname":"test","mount_point":"/mnt/test"} + +2. 卸载CurveFS文件系统 + $ curveadm umount --host + + * : 文件系统名,用户可自行定义, 但必须为小写字母、数字、连字符组合,即满足正则表达式 ^([a-z0-9]+\\-?)+$ + * : 挂载路径,用户可自行定义,但必须为绝对路径 + * --host: 将卷挂载到指定主机,用户可自行选择,请确保该主机已被导入 + + 卸载示例: + $ curveadm umount /mnt/test --host client-host + + Umount FileSystem: [OK] + + host=client-host mountPoint=/mnt/test [1/1] [OK] + + 出现以上提示则表示卸载成功。 + +4. 再次查看客户端状态,则看不到相应的挂载项。 + $ curveadm client status + + Get Client Status: [OK] + + Id Kind Host Container Id Status Aux Info + -- ---- ---- ------------ ------ -------- +``` + +10. 参考影响: + +* 时间: 卸载后文件系统不可用,直至重新挂载 + +* 业务方: 挂载当前fs的业务方 + +* 用户:挂载当前fs的用户 + +11. 参考风险: + +* 数据面: 无 + +* 管控面: 无 + +* 恢复能力: 无需恢复 + +12. 参考回滚策略: 重新挂载 + +13. 需求发起方: 业务方 + +14. 接收方: + +15. 评审责任人: SRE负责人,SA负责人,CURVE负责人 + +16. 用户通知责任人: 技术支持 + +17. 执行责任人: CURVE/SA + +18. 测试回归责任人: CURVE + +19. 执行审核责任人: SA/CURVE/SRE \ No newline at end of file diff --git a/docs/03-CurveFS/07-maintenance/02-administrator-guide/_category_.json b/docs/03-CurveFS/07-maintenance/02-administrator-guide/_category_.json new file mode 100644 index 0000000..4392e7b --- /dev/null +++ b/docs/03-CurveFS/07-maintenance/02-administrator-guide/_category_.json @@ -0,0 +1,6 @@ +{ + "label": "管理员操作指导", + "link": { + "type": "generated-index" + } +}