使用 Cephadm 升级 CEPH
Cephadm 可以安全地将 Ceph 从一个错误修复版本升级到下一个版本。例如,您可以从 v15.2.0(第一个 Octopus 版本)升级到下一个版本 v15.2.1。
自动升级过程遵循 Ceph 最佳实践。例如:
- 升级顺序从管理器、监视器开始,然后是其他守护程序。
- 只有在 Ceph 指示集群将保持可用时,才会重新启动每个守护进程。
笔记: Ceph 集群健康状态可能会在升级期间切换到HEALTH_WARNING。
笔记: 如果集群的主机离线,升级会暂停。
开始升级
在使用 cephadm 升级 Ceph 之前,通过运行以下命令验证所有主机当前都在线并且您的集群健康:
ceph -s
要升级(或降级)到特定版本,请运行以下命令:
ceph orch upgrade start --ceph-version <version>
例如,要升级到 v16.2.6,请运行以下命令:
ceph orch upgrade start --ceph-version 16.2.6
笔记: 从 v16.2.6 版本开始不再使用 Docker Hub 仓库,因此如果您使用 Docker,您必须将其指向 quay.io 仓库中的镜像:
ceph orch upgrade start --image quay.io/ceph/ceph:v16.2.6
监控升级
通过运行以下命令确定 (1) 是否正在进行升级以及 (2) 集群正在升级到哪个版本:
ceph orch upgrade status
在 CEPH 升级期间查看进度条
在升级过程中,ceph 状态输出中会显示一个进度条。它看起来像这样:
# ceph -s
[...]
progress:
Upgrade to docker.io/ceph/ceph:v15.2.1 (00h 20m 12s)
[=======.....................] (time remaining: 01h 43m 31s)
在升级期间查看 CEPHADM 日志
通过运行以下命令查看 cephadm 日志:
ceph -W cephadm
取消升级
您可以通过运行以下命令随时停止升级过程:
ceph orch upgrade stop
潜在问题
在升级过程中可能会出现一些运行状况警报。
UPGRADE_NO_STANDBY_MGR
此警报 ( UPGRADE_NO_STANDBY_MGR) 表示 Ceph 未检测到活动备用管理器守护程序。为了继续升级,Ceph 需要一个活动备用管理器守护程序(在这种情况下,您可以将其视为“第二个管理器”)。
您可以通过运行以下命令确保 Cephadm 配置为运行 2 个(或更多)管理器:
ceph orch apply mgr 2 # or more
您可以通过运行以下命令检查现有管理器守护程序的状态:
ceph orch ps --daemon-type mgr
如果现有的 mgr 守护程序已停止,您可以尝试通过运行以下命令重新启动它:
ceph orch daemon restart <name>
UPGRADE_FAILED_PULL
此警报 ( UPGRADE_FAILED_PULL) 表示 Ceph 无法拉取目标版本的容器镜像。如果您指定不存在的版本或容器镜像(例如“1.2.3”),或者集群中的一个或多个主机无法访问容器仓库,则可能会发生这种情况。
要取消现有升级并指定不同的目标版本,请运行以下命令:
ceph orch upgrade stop
ceph orch upgrade start --ceph-version <version>
使用自定义容器镜像
对于大多数用户来说,升级只需要指定要升级到的 Ceph 版本号就可以了。在这种情况下,cephadm 将使用container_image_base配置选项(默认值:docker.io/ceph/ceph与 vX.Y.Z)
但是,如果您需要的话,可以升级到任意容器镜像。例如,以下命令升级到开发版本:
ceph orch upgrade start --image quay.io/ceph-ci/ceph:recent-git-branch-name
有关可用容器镜像的更多信息,请参阅Ceph容器镜像。