1.5. 转换为容器化部署
非容器化集群需要这个过程。如果存储集群是一个非容器化集群,这个过程会将集群转换为容器化版本。
Red Hat Ceph Storage 5 仅支持基于容器的部署。在升级到 RHCS 5.x 之前,需要容器化集群。
如果您的 Red Hat Ceph Storage 4 存储集群已经容器化,请跳过本节。
这个过程将停止并重启守护进程。如果 playbook 在此过程中停止执行,请务必在重启前分析集群的状态。
先决条件
- 正在运行的 Red Hat Ceph Storage 非容器化 4 集群。
- 对存储集群中所有节点的根级别访问权限。
- 有效的客户订阅。
- 对 Ansible 管理节点的根级别访问权限.
- 用于 Ansible 应用的 Ansible 用户帐户。
流程
-
如果您正在运行多站点设置,请在
all.yml
中设置rgw_multisite: false
。 确保
group_vars/all.yml
具有以下配置参数默认值:ceph_docker_image_tag: "latest" ceph_docker_registry: "registry.redhat.io" ceph_docker_image: rhceph/rhceph-4-rhel8 containerized_deployment: true
注意如果您使用本地 registry 和自定义镜像名称,这些值会有所不同。
可选:对于使用裸机存储集群中使用命令行界面配置的双向 RBD 镜像功能,集群不会迁移 RBD 镜像。对于这样的配置,请在将非容器化存储集群迁移到容器化部署前按照以下步骤操作:
在 Ceph 客户端节点上创建一个用户:
语法
ceph auth get client.PRIMARY_CLUSTER_NAME -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring
示例
[root@rbd-client-site-a ~]# ceph auth get client.rbd-mirror.site-a -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring
更改
/etc/ceph
目录中的auth
文件中的用户名:示例
[client.rbd-mirror.rbd-client-site-a] key = AQCbKbVg+E7POBAA7COSZCodvOrg2LWIFc9+3g== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *"
导入
auth
文件以添加相关权限:语法
ceph auth import -i PATH_TO_KEYRING
示例
[root@rbd-client-site-a ~]# ceph auth import -i /etc/ceph/ceph.client.rbd-mirror.rbd-client-site-a.keyring
检查 RBD 镜像节点的服务名称:
示例
[root@rbd-client-site-a ~]# systemctl list-units --all systemctl stop ceph-rbd-mirror@rbd-client-site-a.service systemctl disable ceph-rbd-mirror@rbd-client-site-a.service systemctl reset-failed ceph-rbd-mirror@rbd-client-site-a.service systemctl start ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service systemctl enable ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service systemctl status ceph-rbd-mirror@rbd-mirror.rbd-client-site-a.service
将 rbd-mirror 节点添加到
/etc/ansible/hosts
文件中:示例
[rbdmirrors] ceph.client.rbd-mirror.rbd-client-site-a
如果您使用的守护进程不是容器化的,请将它们转换为容器化格式:
语法
ansible-playbook -vvvv -i INVENTORY_FILE infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
vvvv
选项收集转换过程的详细日志。示例
[ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv -i hosts infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
Playbook 成功完成后,编辑
all.yml
文件中的rgw_multisite: true
的值,并确保containerized_deployment
的值为true
。注意确保从管理节点中删除
ceph-iscsi
、libtcmu
和tcmu-runner
软件包。