Ceph入门到精通-Ceph版本升级命令

升级 CEPH

Cephadm 可以安全地将 Ceph 从一个错误修复版本升级到下一个错误修复版本。为 例如,你可以从v15.2.0(第一个八达通版本)升级到下一个 点发布,v15.2.1。

自动升级过程遵循 Ceph 最佳实践。例如:

  • 升级顺序从管理器、监视器开始,然后是其他守护程序。

  • 每个守护程序仅在 Ceph 指示集群后重新启动 将保持可用。

注意

升级期间可能会切换到 Ceph 集群运行状况。HEALTH_WARNING

注意

如果群集的主机处于脱机状态,则升级将暂停。

开始升级

注意

注意

可能需要交错升级 月亮/管理才能访问 到这个新功能。

默认情况下,Cephadm 将max_mds减少到 1。这可能会对大型企业造成破坏 扩展 CephFS 部署,因为集群无法快速减少活动 MDS 到 1 且单个活动 MDS 无法轻松处理所有客户端的负载 即使是很短的时间。因此,要在不降低max_mds的情况下升级 MDS, fail_fs选项可以设置为 true(默认值为 false) 要启动升级:

ceph config set mgr mgr/orchestrator/fail_fs true

这将:

  1. 使 CephFS 文件系统失败,使活动的 MDS 守护程序进入 up:备用状态。

  2. 安全地升级 MDS 守护程序。

  3. 恢复 CephFS 文件系统,使活动状态变为 MDS 守护程序从 up:standby 到 up:active。

在使用 cephadm 升级 Ceph 之前,请运行以下命令来验证所有主机当前是否联机以及集群是否正常运行:

ceph -s

若要升级(或降级)到特定版本,请运行以下命令:

ceph orch upgrade start --ceph-version 

例如,要升级到 v16.2.6,请运行以下命令:

ceph orch upgrade start --ceph-version 16.2.6

注意

从版本 v16.2.6 开始,不再使用 Docker 中心注册表,因此如果使用 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)

在升级期间查看Ceph日志

通过运行以下命令来观察 cephadm 日志:

ceph -W cephadm

取消升级

您可以随时通过运行以下命令停止升级过程:

ceph orch upgrade stop

升级后操作

如果新版本基于 ,一旦完成升级,用户 必须更新软件包(或 ceph-common 软件包,以防用户 不使用 ) 到与新版本兼容的版本。cephadmcephadmcephadm shell

潜在问题

在升级过程中可能会出现一些运行状况警报。

UPGRADE_NO_STANDBY_MGR

此警报 () 表示 Ceph 未检测到 活动备用管理器守护程序。为了继续升级,Ceph 需要一个活动的备用管理器守护程序(您可以在其中想到 上下文作为“第二经理”)。UPGRADE_NO_STANDBY_MGR

您可以通过以下方式确保 Cephadm 配置为运行 2 个(或更多)管理器 运行以下命令:

ceph orch apply mgr 2  # or more

您可以通过运行以下命令来检查现有 mgr 守护程序的状态 命令:

ceph orch ps --daemon-type mgr

如果现有 mgr 守护程序已停止,您可以尝试通过运行 以下命令:

ceph orch daemon restart 

UPGRADE_FAILED_PULL

此警报 () 表示 Ceph 无法拉取 目标版本的容器映像。如果您指定 不存在的版本或容器映像(例如“1.2.3”),或者如果 群集中的一个或多个主机无法访问容器注册表。UPGRADE_FAILED_PULL

要取消现有升级并指定其他目标版本,请运行 以下命令:

ceph orch upgrade stop
ceph orch upgrade start --ceph-version 

使用自定义容器映像

对于大多数用户来说,升级只需要指定 要升级到的 Ceph 版本号。在这种情况下,头孢 定位特定的 通过将配置选项(默认:)与标签 .container_image_basedocker.io/ceph/cephvX.Y.Z

但是可以升级到任意容器映像,如果这就是 你需要。例如,以下命令升级到开发版本:

ceph orch upgrade start --image quay.io/ceph-ci/ceph:recent-git-branch-name

有关可用容器映像的更多信息,请参阅 Ceph 容器映像。

STAGGERED UPGRADE

某些用户可能更喜欢分阶段升级组件,而不是一次升级所有组件。 从 16.2.11 和 17.2.1 开始的升级命令允许参数 以限制通过单个升级命令升级哪些守护程序。中的选项 包括 、 和 。 采用以逗号分隔的守护程序类型列表,并且只会升级这些守护程序 类型。 与 互斥,仅接受服务 一次一种类型(例如,不能同时提供 OSD 和 RGW 服务),以及 将仅升级属于这些服务的守护程序。 可以组合 单独提供或单独提供。参数 遵循与守护程序放置的命令行选项相同的格式。 取一个整数> 0 并提供对 守护进程 cephadm 将升级。 可以与任何其他组合 参数。例如,如果指定升级主机上 osd 类型的守护程序 主机 1 设置为 3,cephadm 将升级(最多)3 个 osd 守护进程 主机1.daemon_typesserviceshostslimitdaemon_typesservicesdaemon_typeshostsdaemon_typesserviceshostslimitlimitlimit

示例:指定守护程序类型和主机:

ceph orch upgrade start --image  --daemon-types mgr,mon --hosts host1,host2

示例:指定服务和使用限制:

ceph orch upgrade start --image  --services rgw.example1,rgw.example2 --limit 2

注意

Cephadm 严格执行升级仍然存在的守护进程的命令 在交错升级方案中。当前升级顺序为 。 如果指定了将无序升级守护程序的参数,则升级 命令将阻止并注意如果继续,将错过哪些守护程序。mgr -> mon -> crash -> osd -> mds -> rgw -> rbd-mirror -> cephfs-mirror -> iscsi -> nfs

注意

具有限制参数的升级命令将在开始之前验证选项 升级,这可能需要拉取新的容器映像。不要感到惊讶 如果在提供限制参数时,升级启动命令需要一段时间才能返回。

注意

在交错升级方案中(提供限制参数时)监视 包括 Prometheus 和节点导出器在内的堆栈守护进程在管理器后刷新 守护程序已升级。如果管理器升级需要更长的时间,请不要感到惊讶 比预期的。请注意,监控堆栈守护程序的版本可能不会在 Ceph 版本,在这种情况下,它们只会重新部署。

从不支持交错升级的版本升级到支持交错升级的版本

从已支持交错升级的版本升级时,该过程 只需要提供必要的参数。但是,如果您想升级 对于支持从不支持交错升级的版本,有一个 解决方法。它需要首先手动升级管理器守护进程,然后传递 像往常一样限制参数。

警告

在尝试此过程之前,请确保您有多个正在运行的 mgr 守护程序。

首先,确定哪个管理器是您的活动管理器,哪些是备用管理器。这 可以通过多种方式完成,例如查看输出。然后 使用以下命令手动升级每个备用 MGR 守护程序:ceph -s

ceph orch daemon redeploy mgr.example1.abcdef --image 

注意

如果您使用的是 cephadm(早期章鱼)的早期版本,则该命令可能没有标志。在这种情况下,您必须手动设置 管理器容器映像,然后 重新部署管理器orch daemon redeploy--imageceph config set mgr container_image ceph orch daemon redeploy mgr.example1.abcdef

此时,管理器故障转移应该允许我们让活动管理器成为一个 运行新版本。

ceph mgr fail

验证活动管理器现在是否正在运行新版本。完成管理器 升级:

ceph orch upgrade start --image  --daemon-types mgr

您现在应该在新版本上拥有所有管理器守护进程,并且能够 为升级的其余部分指定限制参数。

 Previous Next 

你可能感兴趣的:(Ceph入门到精通,docker,容器,运维)