使用 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容器镜像。

posted @ 2022-03-04 21:37  Varden  阅读(886)  评论(0编辑  收藏  举报