1.6. 更新主机操作系统


Red Hat Ceph Storage 5 支持 Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0 和 9.1。

此流程允许您在存储集群的节点上安装 Red Hat Ceph Storage 5 和 Red Hat Enterprise Linux 8。如果您已在存储集群中运行 Red Hat Enterprise Linux 8,请跳过这个步骤。

您必须手动升级集群中的所有节点,以运行最新版本的 Red Hat Enterprise Linux 和 Red Hat Ceph Storage。

先决条件

  • 正在运行的 Red Hat Ceph Storage 4 存储群集.
  • 对存储集群中所有节点的 sudo 级别访问权限。
  • 有效的客户订阅。
  • 对 Ansible 管理节点的根级别访问权限.
  • 用于 Ansible 应用的 Ansible 用户帐户。
  • 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。

流程

  1. 使用 docker-to-podman playbook 将 docker 转换为 podman:

    示例

    [ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/
    docker-to-podman.yml

1.6.1. 手动升级 Ceph 监控节点及其操作系统

作为系统管理员,您可以手动将 Red Hat Ceph Storage 集群节点上的 Ceph 监控软件和 Red Hat Enterprise Linux 操作系统同时升级到新的主版本。

重要

一次仅在一个 monitor 节点上执行该步骤。要防止集群访问问题,在继续处理下一个节点,请确保当前升级的 monitor 节点已恢复到正常操作状态。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点正在运行 Red Hat Enterprise Linux 7 7.9。
  • 节点使用 Red Hat Ceph Storage 版本 4.3 或更高版本。
  • Red Hat Enterprise Linux 8.4 EUS 或更高版本可以访问安装源。
重要

如果您要从 Red Hat Enterprise Linux 7.9 上的 Red Hat Ceph Storage 4.3 升级到 Red Hat Enterprise Linux 9 上的 Red Hat Ceph Storage 5,首先将主机操作系统从 Red Hat Enterprise Linux 7.9 升级到 Red Hat Enterprise Linux 8.x,然后升级到 Red Hat Ceph Storage,然后升级到 Red Hat Enterprise Linux 9.x。

流程

  1. 停止 monitor 服务:

    语法

    systemctl stop ceph-mon@MONITOR_ID

    MONITOR_ID 替换为 monitor 节点的 ID 号。

  2. 如果使用 Red Hat Ceph Storage 4,请禁用 Red Hat Ceph Storage 4 存储库。

    1. 禁用工具存储库:

      # subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
    2. 禁用 mon 存储库:

      # subscription-manager repos --disable=rhel-7-server-rhceph-4-mon-rpms
  3. 使用 leapp 实用程序升级存储集群后,会删除许多 Ceph 软件包。在升级前记录 Ceph 软件包:

    示例

    [root@host01 ~]# rpm -qa | grep ceph
    
    python-ceph-argparse-14.2.22-128.el7cp.x86_64
    ceph-selinux-14.2.22-128.el7cp.x86_64
    python-cephfs-14.2.22-128.el7cp.x86_64
    ceph-base-14.2.22-128.el7cp.x86_64
    ceph-mon-14.2.22-128.el7cp.x86_64
    ceph-mgr-diskprediction-local-14.2.22-128.el7cp.noarch
    ceph-ansible-4.0.70.18-1.el7cp.noarch
    libcephfs2-14.2.22-128.el7cp.x86_64
    ceph-common-14.2.22-128.el7cp.x86_64
    ceph-osd-14.2.22-128.el7cp.x86_64
    ceph-mgr-14.2.22-128.el7cp.x86_64

  4. 安装 leapp 实用程序。

  5. 通过 leapp 预升级检查运行。请参阅从命令行评估可升级性
  6. 升级到 Red Hat Enterprise Linux 8.6 后,安装 Ceph-Ansible 软件包并运行 Ansible playbook:

    1. 安装 Ceph-Ansible,它将安装所有 Ceph 软件包:

      [root@admin ~]# dnf install ceph-ansible
    2. ansible 用户身份,在所有升级节点上运行 Ansible playbook:

      • 裸机部署:

        [user@admin ceph-ansible]$ ansible-playbook -vvvv -i INVENTORY site.yml --limit osds|rgws|clients|mdss|nfss|iscsigw -i hosts
      • 容器部署:

        [ansible@admin ceph-ansible]$ ansible-playbook -vvvv -i INVENTORY site-container.yml --limit osds|rgws|clients|mdss|nfss|iscsigw -i hosts
  7. 升级到 Red Hat Enterprise Linux 9.x 后,将 podman-auth.json 文件从其他节点复制到 /etc/ceph/' 中的升级节点,然后重启每个服务。

    # systemctl restart _SERVICE NAME_
  8. /etc/ssh/sshd_config 中设置 PermitRootLogin yes
  9. 重启 OpenSSH SSH 守护进程:

    # systemctl restart sshd.service
  10. 从 Linux 内核中删除 iSCSI 模块:

    # modprobe -r iscsi
  11. 重新引导节点。
  12. 为 Red Hat Ceph Storage 5 启用软件仓库:

    1. 启用工具存储库:

      Red Hat Enterprise Linux 8

      subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms

      Red Hat Enterprise Linux 9

      subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

  13. 从尚未升级的 monitor 节点或已经恢复这些文件的节点恢复 ceph-client-admin.keyringceph.conf 文件。
  14. 重启 Ceph Monitor 服务:

    示例

    [root@host01 ~]# systemctl restart ceph-mon@host01.service
    [root@host01 ~]# systemctl status ceph-mon@host01.service

  15. 验证监控器和管理器服务是否已恢复,并且 monitor 是否在仲裁中。

    语法

    ceph -s

    services: 下的 mon: 行中,确保该节点被列为 quorum(仲裁) 而不是 out of quorum(未仲裁)

    示例

    # ceph -s
    mon: 3 daemons, quorum node0,node1,node2 (age 2h)
    mgr: node0(active, since 2h), standbys: node1, node2

  16. 在所有 monitor 节点上重复上述步骤,直到它们都已升级。

其它资源

1.6.2. 升级 OSD 节点

作为系统管理员,您可以手动将 Red Hat Ceph Storage 集群节点上的 Ceph OSD 软件和 Red Hat Enterprise Linux 操作系统同时升级到新的主版本。

重要

对 Ceph 集群中的每一 OSD 节点执行此步骤,但通常一次仅针对一个 OSD 节点进行。可以并行执行最多一个故障域的 OSD 节点值。例如,如果正在使用每个机架复制,可以并行升级整个机架的 OSD 节点。为防止数据访问问题,在继续下一 OSD ,请确保当前 OSD 节点的 OSD 已恢复正常运作,所有集群 PG 都处于 active+clean 状态。

重要

如果您要从 Red Hat Enterprise Linux 7.9 上的 Red Hat Ceph Storage 4.3 升级到在 Red Hat Enterprise Linux 9 上运行的 Red Hat Ceph Storage 5.2 ,请先将主机的操作系统从 Red Hat Enterprise Linux 7.9 升级到 Red Hat Enterprise Linux 8.x,然后升级 Red Hat Ceph Storage,然后再升级到 Red Hat Enterprise Linux 9.x。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点正在运行 Red Hat Enterprise Linux 7 7.9。
  • 节点使用 Red Hat Ceph Storage 版本 4.3 或更高版本。
  • 访问 Red Hat Enterprise Linux 8.4 EUS 或更高版本的安装源。
  • FileStore OSD 必须迁移到 BlueStore。

流程

  1. 如果您的 FileStore OSD 尚未迁移到 BlueStore,请运行 filestore-to-bluestore playbook。有关将 OSD 从 FileStore 转换为 BlueStore 的更多信息,请参阅 BlueStore
  2. 设置 OSD noout 标志,以防止 OSD 在迁移期间被标记为 down:

    语法

    ceph osd set noout

  3. 设置 OSD nobackfillnorecovernorrebalancenoscrubnodeep-scrub 标志,以避免集群出现不必要的负载,并在节点停机时避免任何数据被重新创建:

    语法

    ceph osd set nobackfill
    ceph osd set norecover
    ceph osd set norebalance
    ceph osd set noscrub
    ceph osd set nodeep-scrub

  4. 正常关闭节点上的所有 OSD 进程:

    语法

    systemctl stop ceph-osd.target

  5. 如果使用 Red Hat Ceph Storage 4,请禁用 Red Hat Ceph Storage 4 存储库。

    1. 禁用工具存储库:

      语法

      subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms

    2. 禁用 osd 存储库:

      语法

      subscription-manager repos --disable=rhel-7-server-rhceph-4-osd-rpms

  6. 安装 leapp 实用程序。请参阅 从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8
  7. 通过 leapp 预升级检查运行。请参阅从命令行评估可升级性
  8. /etc/ssh/sshd_config 中设置 PermitRootLogin yes
  9. 重启 OpenSSH SSH 守护进程:

    语法

    systemctl restart sshd.service

  10. 从 Linux 内核中删除 iSCSI 模块:

    语法

    modprobe -r iscsi

  11. 根据执行从 Red Hat Enterprise Linux 7 到 Red Hat Enterprise Linux 8 的升级以及执行从 Red Hat Enterprise Linux 8 到 Red Hat Enterprise Linux 9 的升级中的内容进行升级。

    1. 启用工具存储库:

      Red Hat Enterprise Linux 8

      subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms

      Red Hat Enterprise Linux 9

      subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

  12. 恢复 ceph.conf 文件。
  13. 取消设置 nooutnobackfillnorecovernorebalancenoscrubnodeep-scrub 标志:

    语法

    ceph osd unset noout
    ceph osd unset nobackfill
    ceph osd unset norecover
    ceph osd unset norebalance
    ceph osd unset noscrub
    ceph osd unset nodeep-scrub

  14. 验证 OSDs 为 upin,它们处于 active+clean 状态。

    语法

    ceph -s

    services: 下的 osd: 行中,确定所有 OSDs 都为 upin

    示例

    # ceph -s
    osd: 3 osds: 3 up (since 8s), 3 in (since 3M)

  15. 在所有 OSD 节点上重复这个过程,直到它们都已升级。

其它资源

1.6.3. 升级 Ceph 对象网关节点

作为系统管理员,您可以手动将 Red Hat Ceph Storage 集群节点上的 Ceph Object Gateway (RGW) 软件和 Red Hat Enterprise Linux 操作系统同时升级到新的主版本。

重要

对 Ceph 集群中的每个 RGW 节点执行此步骤,但一次仅针对一个 RGW 节点。要防止客户端访问问题,请确保当前升级的 RGW 已恢复正常操作,然后再继续升级下一个节点。

注意

升级时,请确保 radosgw-admin 工具和 Ceph 对象网关存储集群具有相同的版本。当存储集群升级时,同时升级 radosgw-admin 工具非常重要。支持使用不匹配的版本。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点正在运行 Red Hat Enterprise Linux 7 7.9。
  • 节点使用 Red Hat Ceph Storage 版本 4.3 或更高版本。
  • 访问 Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0 和 9.1 的安装源。

流程

  1. 停止 Ceph 对象网关服务:

    语法

    # systemctl stop ceph-radosgw.target

  2. 禁用 Red Hat Ceph Storage 4 工具存储库:

    # subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
  3. 安装 leapp 实用程序。

  4. 运行 leapp 进行升级前的检查:

  5. /etc/ssh/sshd_config 中设置 PermitRootLogin yes
  6. 如果创建存储桶或具有 num_shards = 0, 请在规划升级到 Red Hat Ceph Storage 5.3 前手动重新划分存储桶:

    警告

    bucket_index_max_shards0 时,从旧版本升级到 Red Hat Ceph Storage 5.3 可能会导致 Ceph 对象网关存储桶的元数据丢失,从而导致存储桶在尝试访问它时不可用。因此,请确保 bucket_index_max_shards 设置为 11 个分片。如果没有,在 zonegroup 级别修改此配置。

    语法

    radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAME

    示例

    [ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket

  7. 重启 OpenSSH SSH 守护进程:

    # systemctl restart sshd.service
  8. 从 Linux 内核中删除 iSCSI 模块:

    # modprobe -r iscsi
  9. 根据从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8 的内容来执行升级。
  10. 启用工具存储库:

    Red Hat Enterprise Linux 8

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms

    Red Hat Enterprise Linux 9

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

  11. 恢复 ceph-client-admin.keyringceph.conf 文件。
  12. 验证守护进程是否活跃:

    语法

    ceph -s

    查看 services: 下的 rgw: 行 以确保 RGW 守护进程处于活动状态。

    示例

    rgw: 1 daemon active (node4.rgw0)

  13. 在所有 Ceph 对象网关节点上重复上述步骤,直到它们都已升级。

其它资源

1.6.4. 升级 CephFS 元数据服务器节点

作为存储管理员,您可以手动将 Red Hat Ceph Storage 集群中的 Ceph 文件系统 (CephFS) 元数据服务器 (MDS) 软件同时升级到新的主版本。

重要

在升级存储集群前,请将活跃 MDS 的数量减少为每个文件系统一个。这消除了多个 MDS 之间可能存在的版本冲突。另外,在升级前关闭所有待机节点。

这是因为 MDS 集群没有内置的版本或文件系统标志。如果没有这些功能,多个 MDS 可能会使用不同版本的 MDS 软件进行通信,并可能导致断言或其他故障发生。

先决条件

  • 正在运行的 Red Hat Ceph Storage 集群。
  • 节点正在运行 Red Hat Enterprise Linux 7.9。
  • 节点使用 Red Hat Ceph Storage 版本 4.3 或更高版本。
  • 访问 Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0 和 9.1 的安装源。
  • 对存储集群中所有节点的根级别访问权限。

流程

  1. 将活跃 MDS 的数量减少到 1:

    语法

    ceph fs set FILE_SYSTEM_NAME max_mds 1

    示例

    [root@mds ~]# ceph fs set fs1 max_mds 1

  2. 等待集群停止所有 MDS 等级。当所有 MDS 停止后,仅排名 0 才处于活动状态。剩余的操作应处于待机模式。检查文件系统的状态:

    [root@mds ~]# ceph status
  3. 使用 systemctl 关闭所有备用 MDS:

    [root@mds ~]# systemctl stop ceph-mds.target
  4. 确认只有一个 MDS 是在线的,并且它已在文件系统中排名为 0:

    [ceph: root@host01 /]# ceph status
  5. 禁用 Red Hat Ceph Storage 4 工具存储库:

    [root@mds ~]# subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
  6. 安装 leapp 实用程序。

  7. 运行 leapp 进行升级前的检查:

  8. 编辑 /etc/ssh/sshd_config,并将 PermitRootLogin 设置为 yes
  9. 重启 OpenSSH SSH 守护进程:

    [root@mds ~]# systemctl restart sshd.service
  10. 从 Linux 内核中删除 iSCSI 模块:

    [root@mds ~]# modprobe -r iscsi
  11. 执行升级:

  12. 启用工具存储库:

    Red Hat Enterprise Linux 8

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms

    Red Hat Enterprise Linux 9

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

  13. 恢复 ceph-client-admin.keyringceph.conf 文件。
  14. 验证守护进程是否活跃:

    [root@mds ~]# ceph -s
  15. 为待机守护进程跟踪相同的进程。
  16. 当您完成重启所有待机 MDS 后,请恢复集群中的 max_mds 的值:

    语法

    ceph fs set FILE_SYSTEM_NAME max_mds ORIGINAL_VALUE

    示例

    [root@mds ~]# ceph fs set fs1 max_mds 5

其它资源

1.6.5. 手动升级 Ceph 控制面板节点及其操作系统

作为系统管理员,您可以手动将 Red Hat Ceph Storage 集群节点上的 Ceph Dashboard 软件和 Red Hat Enterprise Linux 操作系统同时升级到新的主版本。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 该节点正在运行 Red Hat Enterprise Linux 7.9。
  • 节点运行 Red Hat Ceph Storage 版本 4.3 或更高版本。
  • Red Hat Enterprise Linux 8.4 EUS、8.5、8.6、9.0 或 9.1 的安装源可访问。

流程

  1. 禁用 Red Hat Ceph Storage 4 工具存储库:

    # subscription-manager repos --disable=rhel-7-server-rhceph-4-tools-rpms
  2. 安装 leapp 实用程序。

  3. 运行 leapp 进行升级前的检查:

  4. /etc/ssh/sshd_config 中设置 PermitRootLogin yes
  5. 重启 OpenSSH SSH 守护进程:

    # systemctl restart sshd.service
  6. 从 Linux 内核中删除 iSCSI 模块:

    # modprobe -r iscsi
  7. 执行升级:

  8. 为 Red Hat Ceph Storage 5 启用工具软件仓库:

    Red Hat Enterprise Linux 8

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms

    Red Hat Enterprise Linux 9

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

其它资源

1.6.6. 手动升级 Ceph Ansible 节点并重新配置设置

将 Red Hat Ceph Storage 集群节点上的 Ceph Ansible 软件和 Red Hat Enterprise Linux 操作系统手动升级到新的主要版本。

重要

在升级 Ceph Ansible 节点上的主机操作系统之前,备份 group_varshosts 文件。在重新配置 Ceph Ansible 节点之前,使用创建的备份。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 该节点正在运行 Red Hat Enterprise Linux 7.9。
  • 节点运行 Red Hat Ceph Storage 版本 4.2z2 或更高版本。
  • 访问 Red Hat Enterprise Linux 8.4 EUS 或 Red Hat Enterprise Linux 8.5。

流程

  1. 为 Red Hat Enterprise Linux 8 禁用 Red Hat Ceph Storage 4 的工具存储库:

    [root@ansible ~]# subscription-manager repos --disable=rhceph-4-tools-for-rhel-8-x86_64-rpms
    [root@ansible ~]# subscription-manager repos --disable=ansible-2.9-for-rhel-8-x86_64-rpms
  2. 安装 leapp 实用程序。

  3. 运行 leapp 进行升级前的检查:

  4. 编辑 /etc/ssh/sshd_config,并将 PermitRootLogin 设置为 yes
  5. 重启 OpenSSH SSH 守护进程:

    [root@mds ~]# systemctl restart sshd.service
  6. 从 Linux 内核中删除 iSCSI 模块:

    [root@mds ~]# modprobe -r iscsi
  7. 执行升级:

  8. 为 Red Hat Ceph Storage 5 启用工具软件仓库:

    Red Hat Enterprise Linux 8

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms

    Red Hat Enterprise Linux 9

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

  9. 恢复 ceph-client-admin.keyringceph.conf 文件。

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.