搜索

将 Overcloud 与现有 Red Hat Ceph Storage 集群集成

download PDF
Red Hat OpenStack Platform 17.0

配置 overcloud 以使用独立 Red Hat Ceph Storage

OpenStack Documentation Team

摘要

您可以使用 Red Hat OpenStack Platform (RHOSP) director 将 overcloud 与现有的独立 Red Hat Ceph Storage 集群集成。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

第 1 章 将 overcloud 与 Ceph Storage 集成

Red Hat OpenStack Platform director 创建名为 overcloud 的云环境。您可以使用 director 为 overcloud 配置额外功能,如与 Red Hat Ceph Storage 集成。您可以将 overcloud 与创建 director 或现有 Ceph Storage 集群的 Ceph Storage 集群集成。与 Ceph 的默认集成配置镜像服务(glance)、块存储服务(cinder)和计算服务(nova),以通过 Rados 块设备(RBD)协议使用块存储。也可能会包含文件和对象存储的其他集成选项。

有关 Red Hat Ceph Storage 的更多信息,请参阅 Red Hat Ceph Storage 架构指南

1.1. 使用外部 CephFS 部署共享文件系统服务

您可以使用 Red Hat OpenStack Platform (RHOSP) director 使用 CephFS 部署共享文件系统服务(manila)。您可以将共享文件系统服务与 NFS 协议或原生 CephFS 协议一起使用。

重要

您不能将共享文件系统服务与 CephFS 原生驱动程序一起使用,以通过 Manila CSI 为 Red Hat OpenShift Container Platform 提供共享。红帽不支持这类部署。如需更多信息,请联系红帽支持团队。

通过 NFS 使用 CephFS 的共享文件系统服务完全支持通过 Manila CSI 向 Red Hat OpenShift Container Platform 提供共享。这个解决方案不适用于大规模部署。有关 CSI 工作负载建议的详情请参考 https://access.redhat.com/articles/6667651

若要使用原生 CephFS 共享文件系统,客户端需要访问 Ceph 公共网络。当您将 overcloud 与现有 Ceph Storage 集群集成时,director 不会创建隔离存储网络来指定为 Ceph 公共网络。假定此网络已存在。不要提供对 Ceph 公共网络的直接访问,而是允许租户创建路由器来连接 Ceph 公共网络。

NFS-Ganesha 网关

通过 NFS 协议使用 CephFS 时,director 在由 Pacemaker (PCS)管理的 Controller 节点上部署 NFS-Ganesha 网关。PCS 通过一个主动 - 被动(active-passive)配置来管理集群可用性。

Red Hat Ceph Storage 4.x (Ceph 软件包 14.x)和 Red Hat Ceph Storage 5.x (Ceph 软件包 16.x)支持 NFS-Ganesha 网关。有关如何确定系统上安装的 Ceph Storage 版本的详情,请查看 Red Hat Ceph Storage 发行版本和对应的 Ceph 软件包版本

先决条件

在使用外部 Ceph Storage 集群配置共享文件系统服务前,请完成以下先决条件:

  • 验证外部 Ceph 存储集群是否具有活跃的元数据服务器(MDS):

    $ ceph -s
  • 外部 Ceph Storage 集群必须具有 CephFS 数据和元数据池支持的 CephFS 文件系统。

    • 验证 CephFS 文件系统中的池:

      $ ceph fs ls
    • 记录这些池的名称来配置 director 参数( ManilaCephFSDataPoolNameManilaCephFSMetadataPoolName )。有关此配置的更多信息,请参阅 创建自定义环境文件
  • 外部 Ceph 存储集群必须具有共享文件系统服务的 cephx 客户端名称和密钥。

    • 验证密钥环:

      $ ceph auth get client.<client name>
      • <client name > 替换为您的 cephx 客户端名称。

1.2. 配置 Ceph 对象存储以使用外部 Ceph 对象网关

Red Hat OpenStack Platform (RHOSP) director 支持将外部 Ceph 对象网关(RGW)配置为对象存储服务。若要通过外部 RGW 服务进行身份验证,您必须配置 RGW,以验证身份服务(keystone)中的用户及其角色。

有关如何配置外部 Ceph 对象网关的更多信息,请参阅 Using Keystone with the Ceph Object Gateway Guide 中的 Configuring the Ceph Object Gateway to use Keystone authentication

第 2 章 准备 overcloud 节点

用于演示如何与 Red Hat Ceph Storage 集群集成的 overcloud 部署由 Controller 节点(具有高可用性和计算节点)组成,以托管工作负载。Red Hat Ceph Storage 集群使用 Ceph 管理工具而不是 director 从 overcloud 独立管理自己的节点。有关 Red Hat Ceph Storage 的更多信息,请参阅 Red Hat Ceph Storage 产品文档。

2.1. 配置现有的 Red Hat Ceph Storage 集群

要配置 Red Hat Ceph Storage 集群,您可以创建对象存储守护进程(OSD)池,定义功能,并直接在 Ceph Storage 集群中创建密钥和 ID。您可以从任何可访问 Ceph Storage 集群并安装了 Ceph 命令行客户端的计算机执行命令。

流程

  1. 登录到外部 Ceph 管理节点。
  2. 打开交互式 shell 以访问 Ceph 命令:

    [user@ceph ~]$ sudo cephadm shell
  3. 在 Ceph 存储集群中创建与您的环境相关的以下 RADOS 块设备(RBD)池:

    • OpenStack Block Storage (cinder)的存储:

      $ ceph osd pool create volumes <pgnum>
    • OpenStack Image Storage (glance)的存储:

      $ ceph osd pool create images <pgnum>
    • 实例存储:

      $ ceph osd pool create vms <pgnum>
    • OpenStack Block Storage Backup (cinder-backup)的存储:

      $ ceph osd pool create backups <pgnum>
  4. 如果您的 overcloud 使用 Red Hat Ceph 5 (Ceph 软件包 16)部署共享文件系统服务(manila),则不需要为 CephFS 创建数据和元数据池。您可以创建文件系统卷。有关更多信息,请参阅 Red Hat Ceph Storage 操作指南中的使用 Ceph Orchestrator 管理 MDS 服务
  5. 在 Ceph Storage 集群中创建 client.openstack 用户,其功能如下:

    • cap_mgr: allow *
    • cap_mon: profile rbd
    • cap_osd: profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups

      $ ceph auth add client.openstack mgr 'allow *' mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups'
  6. 注意为 client.openstack 用户创建的 Ceph 客户端密钥:

    $ ceph auth list
    ...
    [client.openstack]
    	key = <AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw==>
    	caps mgr = "allow *"
    	caps mon = "profile rbd"
    	caps osd = "profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups"
    ...
    • 示例中的 键值 AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw== 是您的 Ceph 客户端密钥。
  7. 如果您的 overcloud 使用 CephFS 部署共享文件系统服务,请在 Ceph 存储集群中创建 client.manila 用户。client.manila 用户所需的功能取决于您的部署是否通过原生 CephFS 协议或 NFS 协议公开 CephFS 共享。

    • 如果您通过原生 CephFS 协议公开 CephFS 共享,则需要以下功能:

      • cap_mgr: allow rw
      • cap_mon: allow r

        $ ceph auth add client.manila mgr 'allow rw' mon 'allow r'
    • 如果您通过 NFS 协议公开 CephFS 共享,则需要以下功能:

      • cap_mgr: allow rw
      • cap_mon: allow r
      • cap_osd: allow rw pool=manila_data

        指定池名称必须是 ManilaCephFSDataPoolName 参数设置的值,默认为 manila_data

        $ ceph auth add client.manila  mgr 'allow rw' mon 'allow r' osd 'allow rw pool=manila_data'
  8. 注意在 overcloud 部署模板中使用的 manila 客户端名称和键值:

    $ ceph auth get-key client.manila
         <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
  9. 记下 Ceph Storage 集群的文件系统 ID。此值在 fsid 字段中指定,位于集群的配置文件的 [global] 部分下:

    [global]
    fsid = 4b5c8c0a-ff60-454b-a1b4-9747aa737d19
    ...
注意

在创建自定义环境文件时,使用 Ceph 客户端密钥和文件系统 ID,以及共享文件系统服务客户端 ID 和密钥。

第 3 章 与现有 Red Hat Ceph Storage 集群集成

使用本节中的流程和信息将 Red Hat OpenStack Platform (RHOSP)与现有 Red Hat Ceph Storage 集群集成。您可以创建自定义环境文件来覆盖和提供 OpenStack 组件内配置选项的值。

3.1. 创建自定义环境文件

director 通过环境文件为 tripleo-ansible 提供参数,以与外部 Red Hat Ceph Storage 集群集成:

  • /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml

如果您使用外部 CephFS 部署共享文件系统服务(manila),则单独的环境文件会提供额外的参数。

  • 对于原生 CephFS,环境文件为 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml
  • 对于 CephFS through NFS,环境文件为 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml

要配置现有 Ceph Storage 集群与 overcloud 的集成,您必须使用自定义环境文件向 director 提供 Ceph Storage 集群的详细信息。director 在部署过程中调用这些环境文件。

流程

  1. 创建自定义环境文件:

    /home/stack/templates/ceph-config.yaml

  2. 在文件中添加 parameter_defaults: 部分:

    parameter_defaults:
  3. 使用 parameter_defaults 设置要在 /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml 中覆盖的所有参数。您必须至少设置以下参数:

    • CephClientKey : Ceph Storage 集群中 client.openstack 用户的 Ceph 客户端密钥。这是您在 配置现有 Ceph Storage 集群 中检索的键值。例如,AQ DLOh1VgEp6FRAAFzT7Zw+Y9V6JExQAsRnRQ==
    • CephClusterFSID: Ceph Storage 集群的文件系统 ID。这是 Ceph Storage 集群配置文件中的 fsid 值,您在配置 现有 Ceph Storage 集群 中检索该文件。例如,4b5c8c0a-ff60-454b-a1b4-9747aa737d19
    • CephExternalMonHost : Ceph Storage 集群中所有 MON 主机的 IP IP 列表,如 172.16.1.7, 172.16.1.8

      例如:

      parameter_defaults:
        CephClientKey: <AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ==>
        CephClusterFSID: <4b5c8c0a-ff60-454b-a1b4-9747aa737d19>
        CephExternalMonHost: <172.16.1.7, 172.16.1.8, 172.16.1.9>
  4. 可选: 您可以覆盖 Red Hat OpenStack Platform (RHOSP)客户端用户名和以下默认池名称以匹配 Ceph Storage 集群:

    • CephClientUserName: <openstack>
    • NovaRbdPoolName: <vms>
    • CinderRbdPoolName: <volumes>
    • GlanceRbdPoolName: <images>
    • CinderBackupRbdPoolName: <backups>
  5. 可选:如果您使用 CephFS 部署共享文件系统服务,您可以覆盖以下默认数据和元数据池名称:

      ManilaCephFSDataPoolName: <manila_data>
      ManilaCephFSMetadataPoolName: <manila_metadata>
    注意

    确保这些名称与您创建的池的名称匹配。

  6. 设置您为共享文件系统服务创建的客户端密钥。您可以覆盖该密钥的默认 Ceph 客户端用户名:

      ManilaCephFSCephFSAuthId: <manila>
      CephManilaClientKey: <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
    注意

    默认客户端用户名 ManilaCephFSCephFSAuthIdmanila,除非您覆盖它。CephManilaClientKey 始终是必需的。

创建自定义环境文件后,您必须在部署 overcloud 时包含该文件。

其他资源

3.2. Red Hat OpenStack Platform with Red Hat Ceph Storage 的 Ceph 容器

您必须具有 Ceph Storage 容器,才能将 Red Hat Openstack Platform (RHOSP)配置为使用带有 NFS Ganesha 的 Red Hat Ceph Storage。如果外部 Ceph 存储集群仅提供块(通过 RBD)、对象(通过 RGW)或文件(通过原生 CephFS)存储,则不需要 Ceph Storage 容器。

RHOSP 17.0 需要 Red Hat Ceph Storage 5.x (Ceph 软件包 16.x)或更新版本与 Red Hat Enterprise Linux 9 兼容。Ceph Storage 5.x 容器托管在 registry.redhat.io 上,这是需要身份验证的 registry。如需更多信息,请参阅 容器镜像准备参数

3.3. 部署 overcloud

使用您创建的环境文件部署 overcloud。

流程

  • 创建 overcloud 需要额外的参数来用于 openstack overcloud deploy 命令:

    $ openstack overcloud deploy --templates \
      -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \
      -e /home/stack/templates/ceph-config.yaml \
      -e --ntp-server pool.ntp.org \
      ...

    这个示例命令使用以下选项:

  • --templates - 从默认的 heat 模板集合 /usr/share/openstack-tripleo-heat-templates/ 创建 overcloud。

    • -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml - 设置 director 以将现有的 Ceph Storage 集群集成到 overcloud。
    • -e /home/stack/templates/ceph-config.yaml - 添加自定义环境文件来覆盖由 -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml 设置的默认值。
    • --ntp-server pool.ntp.org - 设置 NTP 服务器。

3.3.1. 使用 CephFS 为共享文件系统服务添加环境文件

如果部署使用带有 CephFS 的共享文件系统服务(manila)的 overcloud,您必须添加额外的环境文件。

流程

  1. 创建并添加额外环境文件:

    • 如果您部署使用原生 CephFS 后端驱动程序的 overcloud,请添加 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml
    • 如果您部署通过 NFS 使用 CephFS 的 overcloud,请添加 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml

      红帽建议您使用导出共享的隔离存储NFS 网络部署 Ceph-through-NFS 驱动程序。您必须将隔离网络部署到 overcloud Controller 节点。要启用此部署,director 包含以下文件和角色:

      • 包含 StorageNFS 网络(/usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml)的自定义网络配置文件示例。根据需要检查和自定义此文件。
      • ControllerStorageNFS 角色。
  2. 根据您使用的 CephFS 后端,修改 openstack overcloud deploy 命令。

    • 对于原生 CephFS:

       $ openstack overcloud deploy --templates \
         -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \
         -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml \
         -e /home/stack/templates/ceph-config.yaml \
         -e --ntp-server pool.ntp.org
         ...
    • 对于 CephFS through NFS:

       $ openstack overcloud deploy --templates \
           -n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml \
           -r /home/stack/custom_roles.yaml \
           -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \
           -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml \
           -e /home/stack/templates/ceph-config.yaml \
           -e --ntp-server pool.ntp.org
           ...
      注意

      自定义 ceph-config.yaml 环境文件会覆盖 external-ceph.yaml 文件中的参数,以及 manila-cephfsnative-config.yaml 文件或 manila-cephfsganesha-config.yaml 文件中的参数。因此,在 external-ceph.yamlmanila-cephfsnative-config.yamlmanila-cephfsganesha-config.yaml 后,将自定义的 ceph-config.yaml 环境文件包含在部署命令中。

      环境文件示例

      parameter_defaults:
          CinderEnableIscsiBackend: false
          CinderEnableRbdBackend: true
          CinderEnableNfsBackend: false
          NovaEnableRbdBackend: true
          GlanceBackend: rbd
          CinderRbdPoolName: "volumes"
          NovaRbdPoolName: "vms"
          GlanceRbdPoolName: "images"
          CinderBackupRbdPoolName: "backups"
          CephClusterFSID: <cluster_ID>
          CephExternalMonHost: <IP_address>,<IP_address>,<IP_address>
          CephClientKey: "<client_key>"
          CephClientUserName: "openstack"
          ManilaCephFSDataPoolName: manila_data
          ManilaCephFSMetadataPoolName: manila_metadata
          ManilaCephFSCephFSAuthId: 'manila'
          CephManilaClientKey: '<client_key>'
          ExtraConfig:

      • 根据您的具体环境,替换 <cluster_ID>, <IP_address>, 和 <client_key> 的值。

其他资源

3.3.2. 为对象存储添加外部 Ceph 对象网关(RGW)的额外环境文件

如果部署使用已存在的 RGW 服务进行对象存储的 overcloud,您必须添加额外的环境文件。

流程

  1. 将以下 parameter_defaults 添加到自定义环境文件中,如 swift-external-params.yaml,并调整值以适合您的部署:

    parameter_defaults:
       ExternalSwiftPublicUrl: 'http://<Public RGW endpoint or loadbalancer>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftInternalUrl: 'http://<Internal RGW endpoint>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftAdminUrl: 'http://<Admin RGW endpoint>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftUserTenant: 'service'
       SwiftPassword: 'choose_a_random_password'
    注意

    示例代码片段包含的参数值可能与您在环境中使用的值不同:

    • 远程 RGW 实例的默认端口为 8080。根据外部 RGW 的配置方式,端口可能会有所不同。
    • overcloud 中创建的 swift 用户使用 SwiftPassword 参数定义的密码。您必须使用 rgw_keystone_admin_password 将外部 RGW 实例配置为使用同一密码与 Identity 服务进行身份验证。
  2. 将以下代码添加到 Ceph 配置文件中,将 RGW 配置为使用 Identity 服务。替换要适合您的环境的变量值:

        rgw_keystone_api_version = 3
        rgw_keystone_url = http://<public Keystone endpoint>:5000/
        rgw_keystone_accepted_roles = member, Member, admin
        rgw_keystone_accepted_admin_roles = ResellerAdmin, swiftoperator
        rgw_keystone_admin_domain = default
        rgw_keystone_admin_project = service
        rgw_keystone_admin_user = swift
        rgw_keystone_admin_password = <password_as_defined_in_the_environment_parameters>
        rgw_keystone_implicit_tenants = true
        rgw_keystone_revocation_interval = 0
        rgw_s3_auth_use_keystone = true
        rgw_swift_versioning_enabled = true
        rgw_swift_account_in_url = true
        rgw_max_attr_name_len = 128
        rgw_max_attrs_num_in_req = 90
        rgw_max_attr_size = 256
        rgw_keystone_verify_ssl = false
    注意

    director 默认在 Identity 服务中创建以下角色和用户:

    • rgw_keystone_accepted_admin_roles: ResellerAdmin, swiftoperator
    • rgw_keystone_admin_domain: default
    • rgw_keystone_admin_project: service
    • rgw_keystone_admin_user: swift
  3. 使用与部署相关的任何其他环境文件部署 overcloud:

    openstack overcloud deploy --templates \
    -e <your_environment_files>
    -e /usr/share/openstack-tripleo-heat-templates/environments/swift-external.yaml
    -e swift-external-params.yaml

第 4 章 验证外部 Ceph Storage 集群集成

部署 overcloud 后,确认 Red Hat OpenStack Platform (RHOSP)服务可以写入 Red Hat Ceph Storage 集群。

4.1. 收集 ID

若要验证您是否集成了 Red Hat Ceph Storage 集群,您必须首先创建镜像、Compute 实例、块存储卷和一个文件共享并收集其各自的 ID。

流程

  1. 使用 Image 服务(glance)创建镜像。有关如何创建镜像的更多信息,请参阅创建和管理镜像中的导入镜像
  2. 记录镜像 ID 以供以后使用。
  3. 创建计算(nova)实例。有关如何创建实例的更多信息,请参阅创建和管理实例指南中的创建实例
  4. 记录实例 ID 以供以后使用。
  5. 创建 Block Storage (cinder)卷。FFor 如何创建块存储卷的更多信息,请参阅存储指南中的创建块存储卷
  6. 记录卷 ID 以供以后使用。
  7. 使用共享文件系统服务(manila)创建文件共享。
  8. 列出共享的导出路径,并在后缀中记录 UUID 以供以后使用。

有关如何创建文件共享并列出共享的导出路径的更多信息,请参阅存储指南中的 使用共享文件系统服务(manila) 执行操作

4.2. 验证 Red Hat Ceph Storage 集群

配置外部 Red Hat Ceph Storage 集群时,您可以创建一个池和 client.openstack 用户来访问这些池。部署 overcloud 后,您可以使用包含 client.openstack 用户凭证的文件列出 Red Hat OpenStack Platform (RHOSP)池的内容。

列出池的内容,并确认 Ceph Storage 集群上存在镜像服务(glance)镜像的 ID、计算(nova)实例、块存储(cinder)卷和共享文件系统服务(manila)文件共享。

流程

  1. stack 用户身份登录 undercloud,再提供 stackrc 凭证文件:

    $ source ~/stackrc
  2. 列出可用的服务器以检索系统中节点的 IP 地址:

    $ metalsmith list
    
    +---------------+----------------+---------------+
    | ID | Name | Status | Networks | Image | Flavor |
    +---------------+----------------+---------------+
    | d5a621bd-d109-41ae-a381-a42414397802 | compute-0 | ACTIVE | ctlplane=192.168.24.31 | overcloud-full | compute |
    | 496ab196-d6cb-447d-a118-5bafc5166cf2 | controller-0 | ACTIVE | ctlplane=192.168.24.37 | overcloud-full | controller |
    | c01e730d-62f2-426a-a964-b31448f250b3 | controller-2 | ACTIVE | ctlplane=192.168.24.55 | overcloud-full | controller |
    | 36df59b3-66f3-452e-9aec-b7e7f7c54b86 | controller-1 | ACTIVE | ctlplane=192.168.24.39 | overcloud-full | controller |
    | f8f00497-246d-4e40-8a6a-b5a60fa66483 | compute-1 | ACTIVE | ctlplane=192.168.24.10 | overcloud-full | compute |
  3. 使用 SSH 登录到任何 Compute 节点:

    $ ssh tripleo-admin@192.168.24.31
  4. 确认 director 提供的 CephConfigPath 中是否存在 ceph.conf/ceph.client.openstack.keyring 文件。此路径默认为 /var/lib/tripleo-config/ceph,但可能会存在覆盖。

    [tripleo-admin@compute-0 ~]$ sudo ls -l /var/lib/tripleo-config/ceph/ceph.conf
    
    -rw-r--r--. 1 root root 1170 Sep 29 23:25 /var/lib/tripleo-config/ceph/ceph.conf
    
    [tripleo-admin@compute-0 ~]$ sudo ls -l /var/lib/tripleo-config/ceph/ceph.client.openstack.keyring
    
    -rw-------. 1 ceph ceph 253 Sep 29 23:25 /var/lib/tripleo-config/ceph/ceph.client.openstack.keyring
  5. 输入以下命令强制 nova_compute 容器使用 rbd 命令列出相应池的内容。

    $ sudo podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls vms

    池名称必须与配置 Ceph Storage 集群时创建的镜像、虚拟机、卷和共享的池名称匹配。镜像、计算实例、卷和共享的 ID 必须与您在 收集 ID 中记录的 ID 匹配。

    注意

    example 命令的前缀为 podman exec nova_compute,因为 /usr/bin/rbd (由 ceph-common 软件包提供 )默认不会在 overcloud 节点上安装。但是,它位于 nova_compute 容器中。命令列出块设备镜像。有关列出块设备镜像的更多信息,请参阅 Red Hat Ceph Storage 块设备指南中的列出块设备镜像https://access.redhat.com/documentation/zh-cn/red_hat_ceph_storage/5/html/block_device_guide/ceph-block-devices#listing-the-block-device-images_block

    以下示例演示了如何使用 Gathering ID 从 Gathering ID 来确认每个服务的 ID 是否存在。

    $ sudo podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls images | grep 4485d4c0-24c3-42ec-a158-4d3950fa020b
    $ sudo podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls vms | grep 64bcb731-e7a4-4dd5-a807-ee26c669482f
    $ sudo podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls volumes | grep aeac15e8-b67f-454f-9486-46b3d75daff4
  6. 要验证共享文件系统服务共享是否存在,您必须登录到 Controller 节点:

    $ sudo podman exec openstack-manila-share-podman-0 ceph -n client.manila fs subvolume ls cephfs | grep ec99db3c-0077-40b7-b09e-8a110e3f73c1

4.3. 对失败的验证进行故障排除

如果验证过程失败,请验证 openstack.client 用户的 Ceph 密钥以及 Red Hat Ceph Storage 监控 IP 或主机名是否可以一起使用,从您为 Red Hat OpenStack Platform (RHOSP)创建的 Ceph 存储池中读取、写入和删除。

流程

  1. 要缩短此流程中必须执行的输入数量,请登录 Compute 节点并为 rbd 命令创建一个别名:

    $ alias rbd="podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack"
  2. 确认您可以作为新对象将测试数据写入池:

    $ rbd create --size 1024 vms/foo
  3. 确认您可以看到测试数据:

    $ rbd ls vms | grep foo
  4. 删除测试数据:

    $ rbd rm vms/foo
注意

如果此步骤失败,请联系您的 Ceph Storage 管理员以获得帮助。如果此过程成功,但您无法创建 Compute (nova)实例、镜像服务(glance)镜像、块存储(cinder)卷或共享文件系统服务(manila)共享,请联系红帽支持。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.