4.2. 升级在容器中运行的 Red Hat Ceph Storage 集群
本节论述了如何升级到 Red Hat Ceph Storage 容器镜像的较新次要版本或主要版本。
- 要升级存储集群,请参阅 第 4.3 节 “升级存储集群”。
- 要升级 Red Hat Ceph Storage 仪表板,请参阅 第 4.4 节 “升级 Red Hat Ceph Storage 仪表板”。
使用位于管理节点的 /usr/share/ceph-ansible/infrastructure-playbooks/
目录中的 Ansible rolling_update.yml
playbook,以便在 Red Hat Ceph Storage 的两个主版本或次要版本之间升级。
Ansible 按照以下顺序升级 Ceph 节点:
- 监控节点
- MGR 节点
- OSD 节点
- MDS 节点
- Ceph 对象网关节点
- 所有其他 Ceph 客户端节点
Red Hat Ceph Storage 3 在位于 /usr/share/ceph-ansible/group_vars/
目录中的 Ansible 配置文件中引入了几个更改;某些参数已重命名或删除。因此,请在升级到版本 3 后从
和 osds.sample 文件创建新副本前,进行 all all.yml
.sample.yml 和
.yml 文件的备份副本。有关更改的详情,请参考 附录 A, 版本 2 和 3 之间的 Ansible 变量更改。
osds.
yml
Red Hat Ceph Storage 3.1 及更高版本引入了新的 Ansible playbook,以便在使用对象网关和基于 NVMe SSD(和 SATA SSD)时优化性能的存储。playbook 通过将日志和存储桶索引放在 SSD 上,这可以提高与在一个设备上的所有日志不同的性能。这些 playbook 设计为在安装 Ceph 时使用。现有的 OSD 继续工作,升级期间不需要额外的步骤。无法升级 Ceph 集群,同时重新配置 OSD 以优化存储。若要将不同的设备用于日志或 bucket 索引,需要重新调配 OSD。有关更多信息,请参阅在 Ceph 对象网关 中 对生产环境使用 NVMe 及 LVM。
rolling_update.yml
playbook 包含 serial
变量,用于调整要同时更新的节点数量。红帽强烈建议使用默认值 (1
),以确保 Ansible 逐一升级集群节点。
当使用 rolling_update.yml
playbook 升级到任何 Red Hat Ceph Storage 3.x 版本时,使用 Ceph 文件系统(CephFS)集群的用户必须手动更新元数据服务器(MDS)集群。这是因为一个已知问题。
在使用 ceph-ansible
rolling_update.yml
升级整个集群之前,请注释掉 /etc/ansible/hosts
中的 MDS 主机,然后手动升级 MDS。在 /etc/ansible/hosts
文件中:
#[mdss] #host-abc
有关此已知问题的更多详细信息,包括如何更新 MDS 集群,请参阅 Red Hat Ceph Storage 3.0 发行注记。
当将 Red Hat Ceph Storage 集群从以前的版本升级到 3.2 时,Ceph Ansible 配置将对象存储类型默认为 BlueStore。如果您仍然希望将 FileStore 用作 OSD 对象存储,则明确将 Ceph Ansible 配置设置为 FileStore。这可确保新部署和替换的 OSD 使用 FileStore。
当使用 rolling_update.yml
playbook 来升级到任何 Red Hat Ceph Storage 3.x 版本时,如果使用多站点 Ceph 对象网关配置,则不必手动更新 all.yml
文件来指定多站点配置。
先决条件
-
以
root
用户身份登录存储集群中的所有节点。 在存储集群中的所有节点上,启用
rhel-7-server-extras-rpms
存储库。# subscription-manager repos --enable=rhel-7-server-extras-rpms
如果从 Red Hat Ceph Storage 2.x 升级到 3.x,在 Ansible 管理节点和 RBD 镜像节点上,启用 Red Hat Ceph Storage 3 Tools 软件仓库:
# subscription-manager repos --enable=rhel-7-server-rhceph-3-tools-els-rpms
在 Ansible 管理的节点上启用 Ansible 存储库:
[root@admin ~]# subscription-manager repos --enable=rhel-7-server-ansible-2.6-rpms
在 Ansible 管理节点上,确保安装了最新版本的
ansible
和ceph-ansible
软件包。[root@admin ~]# yum update ansible ceph-ansible