1.5. 转换为容器化部署


非容器化集群需要这个过程。如果存储集群是一个非容器化集群,这个过程会将集群转换为容器化版本。

Red Hat Ceph Storage 5 仅支持基于容器的部署。在升级到 RHCS 5.x 之前,需要容器化集群。

如果您的 Red Hat Ceph Storage 4 存储集群已经容器化,请跳过本节。

重要

这个过程将停止并重启守护进程。如果 playbook 在此过程中停止执行,请务必在重启前分析集群的状态。

先决条件

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

流程

  1. 如果您正在运行多站点设置,请在 all.yml 中设置 rgw_multisite: false
  2. 确保 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 和自定义镜像名称,这些值会有所不同。

  3. 可选:对于使用裸机存储集群中使用命令行界面配置的双向 RBD 镜像功能,集群不会迁移 RBD 镜像。对于这样的配置,请在将非容器化存储集群迁移到容器化部署前按照以下步骤操作:

    1. 在 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

    2. 更改 /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 *"

    3. 导入 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

    4. 检查 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

    5. 将 rbd-mirror 节点添加到 /etc/ansible/hosts 文件中:

      示例

      [rbdmirrors]
      ceph.client.rbd-mirror.rbd-client-site-a

  4. 如果您使用的守护进程不是容器化的,请将它们转换为容器化格式:

    语法

    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

  5. Playbook 成功完成后,编辑 all.yml 文件中的 rgw_multisite: true 的值,并确保 containerized_deployment 的值为 true

    注意

    确保从管理节点中删除 ceph-iscsilibtcmutcmu-runner 软件包。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.