1.3. 准备升级
作为存储管理员,您可以将 Ceph 存储集群升级到 Red Hat Ceph Storage 5。但是,在进行升级前,存储集群的一些组件必须运行特定的软件版本。以下列表显示在存储集群中安装的最低软件版本,然后才能升级到 Red Hat Ceph Storage 5。
- Red Hat Ceph Storage 4.3 或更高版本。
- Ansible 2.9.
- 最新版本的 Red Hat Ceph Storage 提供的 ceph-ansible。
- Red Hat Enterprise Linux 8.4 EUS 或更高版本。
- FileStore OSD 必须迁移到 BlueStore。有关将 OSD 从 FileStore 转换为 BlueStore 的更多信息,请参阅 BlueStore。
对于早于 Red Hat Ceph Storage 4.3 的 Red Hat Ceph Storage 版本,没有直接的升级路径。如果您要从 Red Hat Ceph Storage 3 升级,您必须首先升级到 Red Hat Ceph Storage 4.3 或更高版本,然后再升级到 Red Hat Ceph Storage 5。
您只能升级到最新版本的 Red Hat Ceph Storage 5。例如,如果版本 5.1 可用,则无法从 4 升级到 5.0;您必须直接升级到 5.1。
在 Red Hat Enterprise Linux-8.7 (或更高)上的 Red Hat Ceph Storage-4.3.z1 的新部署,或将 Red Hat Ceph Storage-4.3.z1 升级到 5.X,主机 OS 为 Red Hat Enterprise Linux-8.7 (或更高)在 TASK [ceph-mgr : : 等待所有 mgr 变为 up]
。Red Hat Enterprise Linux 8.7 发布的 podman
的行为已根据 SELinux 重新标记而有所变化。因此,根据启动顺序,一些 Ceph 容器将无法启动,因为它们无法访问所需的文件。
作为临时解决方案,请参阅知识库文章 RHCS 4.3 安装失败,同时执行命令 'ceph mgr dump'。
要将存储集群升级到 Red Hat Ceph Storage 5,红帽建议您集群运行 Red Hat Ceph Storage 4.3 或更高版本。请参阅知识库文章 Red Hat Ceph Storage 发行版本是什么?本文包含到 Ceph 软件包和 ceph-ansible 最新版本的下载链接。
升级过程使用 Ansible playbook 将 Red Hat Ceph Storage 4 存储集群升级到 Red Hat Ceph Storage 5。如果您的 Red Hat Ceph Storage 4 集群是一个非容器化集群,升级过程包括将集群转换为容器化版本的步骤。Red Hat Ceph Storage 5 不在非容器化集群中运行。
如果您有镜像或多站点配置,一次升级一个集群。在升级另一个集群前,请确保每个升级的集群都正常运行。
leapp
不支持对具有加密分区的加密 OSD 或 OSD 进行升级。如果您的 OSD 已加密,并且您要升级主机操作系统,请在升级操作系统前在 ceph-ansible 中
禁用 dmcrypt
。有关使用 leapp
的详情,请参考 从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。
只有在存储集群尚未运行最新版本的 Red Hat Ceph Storage 4 时,才执行此流程中的前三个步骤。Red Hat Ceph Storage 4 的最新版本应该是 4.3 或更高版本。
先决条件
- 正在运行的 Red Hat Ceph Storage 4 集群。
- 对存储集群中所有节点的 sudo 级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
- 启用 Red Hat Ceph Storage 工具和 Ansible 存储库。
流程
在 Ansible 管理节点上启用 Ceph 和 Ansible 存储库:
示例
[root@admin ceph-ansible]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms
更新 Ansible:
示例
[root@admin ceph-ansible]# dnf update ansible ceph-ansible
如果要升级的存储集群包含使用
exclusive-lock
功能的 Ceph 块设备镜像,请确保所有 Ceph 块设备用户都有为客户端创建 denylist 的权限:语法
ceph auth caps client.ID mon 'profile rbd' osd 'profile rbd pool=POOL_NAME_1, profile rbd pool=POOL_NAME_2'
如果存储集群最初使用 Cockpit 安装,请在
/usr/share/ceph-ansible
目录中创建一个符号链接到 Cockpit 创建它的清单文件,位于/usr/share/ansible-runner-service/inventory/hosts
:进入
/usr/share/ceph-ansible
目录:# cd /usr/share/ceph-ansible
创建符号链接:
# ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
要使用
ceph-ansible
升级集群,请在etc/ansible/hosts
目录中创建符号链接到hosts
清单文件:# ln -s /etc/ansible/hosts hosts
如果存储集群最初使用 Cockpit 安装,请将 Cockpit 生成的 SSH 密钥复制到 Ansible 用户的
~/.ssh
目录中:复制密钥:
语法
cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsa
将 ANSIBLE_USERNAME 替换为 Ansible 的用户名。常见的默认用户名是
admin
。示例
# cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub # cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsa
在密钥文件中设置适当的所有者、组群和权限:
语法
# chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chown ANSIBLE_USERNAME:ANSIBLE_USERNAME /home/ANSIBLE_USERNAME/.ssh/id_rsa # chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsa
将 ANSIBLE_USERNAME 替换为 Ansible 的用户名。常见的默认用户名是
admin
。示例
# chown admin:admin /home/admin/.ssh/id_rsa.pub # chown admin:admin /home/admin/.ssh/id_rsa # chmod 644 /home/admin/.ssh/id_rsa.pub # chmod 600 /home/admin/.ssh/id_rsa
其它资源
- Red Hat Ceph Storage 版本是什么?
- 有关从 FileStore 转换为 BlueStore 的更多信息,请参阅 BlueStore。