注意
本文档适用于 Ceph 的开发版本。
主机维护
所有支持 Ceph 守护程序的主机(无论是物理主机还是虚拟主机)都需要支持维护活动。这意味着管理工作流程应提供一种简单且一致的方法来支持此操作要求。本文档定义了可在 cephadm 和 mgr/cephadm 中实现的维护策略。
高层设计
将主机置于维护状态时,采用以下工作流程:
确认移除主机不会影响数据可用性(以下步骤假定可以安全地继续操作)
orch host ok-to-stop <host>将在此处使用
如果主机具有 osd 守护程序,则对主机子树应用 noout 以防止在计划的维护时段内触发数据迁移。
停止 ceph 目标(所有守护程序停止)
在该主机上禁用 ceph 目标,以防止重新启动自动再次启动 ceph 服务)
退出维护,基本上是上述序列的反向操作
管理员交互
将扩展 ceph orch 命令以支持维护。
ceph orch host maintenance enter <host> [ --force ]
ceph orch host maintenance exit <host>
注意
此外,应更新主机的状态以反映其是否处于维护状态。
“check”选项
orch host ok-to-stop 命令侧重于 ceph 守护程序(mon、osd、mds),它提供了第一次检查。但是,ceph 集群还使用其他类型的守护程序进行监控、管理和非原生协议支持,这意味着逻辑需要考虑服务影响。‘check’ 选项提供了这个附加层,用于向用户发出辅助守护程序的服务影响警报。
下面的列表显示了一些这些额外的守护程序。
mgr(不包括在 ok-to-stop 检查中)
prometheus、grafana、alertmanager
rgw
haproxy
iscsi 网关
ganesha 网关
通过首先使用 --check 选项,管理员可以选择是否继续。此工作流程对于 CLI 用户显然是可选的,但可以集成到 UI 工作流程中,以帮助经验不足的管理员管理集群。
通过采用这种两阶段方法,基于 UI 的工作流程将如下所示。
用户选择要置于维护状态的主机
编排器检查数据和服务影响
如果显示潜在影响,下一步取决于影响类型
数据可用性:拒绝维护,通知用户问题所在
服务可用性:向用户提供受影响服务的列表并要求确认
受影响的组件
实现此功能需要对以下各项进行更改:
cephadm
添加带有以下“动词”的维护子命令:enter、exit、check
mgr/cephadm
为 CephadmOrchestrator 添加 enter/exit 和 check 方法
将跳过处于维护状态的主机的数据收集
mgr/orchestrator
将 CLI 命令添加到 OrchestratorCli,用于公开 enter/exit 和 check 交互
未来工作的想法
将主机置于维护状态时,可以持久化事件时间。这将允许编排器层为任务建立维护窗口,并在维护窗口超出时发出警报。
维护过程可以支持插件,以允许在转换到和退出维护时启动其他集成任务。此插件功能可以支持以下操作:
将警报抑制到第三方监控框架
服务级别报告,记录停机窗口