将 Overcloud 与现有 Red Hat Ceph Storage 集群集成
配置 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 参数(
ManilaCephFSDataPoolName
和ManilaCephFSMetadataPoolName
)。有关此配置的更多信息,请参阅 创建自定义环境文件。
外部 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 命令行客户端的计算机执行命令。
流程
- 登录到外部 Ceph 管理节点。
打开交互式 shell 以访问 Ceph 命令:
[user@ceph ~]$ sudo cephadm shell
在 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>
- 如果您的 overcloud 使用 Red Hat Ceph 5 (Ceph 软件包 16)部署共享文件系统服务(manila),则不需要为 CephFS 创建数据和元数据池。您可以创建文件系统卷。有关更多信息,请参阅 Red Hat Ceph Storage 操作指南中的使用 Ceph Orchestrator 管理 MDS 服务。
在 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'
-
cap_mgr:
注意为
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 客户端密钥。
-
示例中的
如果您的 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'
-
cap_mgr:
如果您通过 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'
-
cap_mgr:
注意在 overcloud 部署模板中使用的 manila 客户端名称和键值:
$ ceph auth get-key client.manila <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
记下 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 在部署过程中调用这些环境文件。
流程
创建自定义环境文件:
/home/stack/templates/ceph-config.yaml
在文件中添加
parameter_defaults:
部分:parameter_defaults:
使用
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>
-
可选: 您可以覆盖 Red Hat OpenStack Platform (RHOSP)客户端用户名和以下默认池名称以匹配 Ceph Storage 集群:
-
CephClientUserName: <openstack>
-
NovaRbdPoolName: <vms>
-
CinderRbdPoolName: <volumes>
-
GlanceRbdPoolName: <images>
-
CinderBackupRbdPoolName: <backups>
-
可选:如果您使用 CephFS 部署共享文件系统服务,您可以覆盖以下默认数据和元数据池名称:
ManilaCephFSDataPoolName: <manila_data> ManilaCephFSMetadataPoolName: <manila_metadata>
注意确保这些名称与您创建的池的名称匹配。
设置您为共享文件系统服务创建的客户端密钥。您可以覆盖该密钥的默认 Ceph 客户端用户名:
ManilaCephFSCephFSAuthId: <manila> CephManilaClientKey: <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
注意默认客户端用户名
ManilaCephFSCephFSAuthId
是manila
,除非您覆盖它。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,您必须添加额外的环境文件。
流程
创建并添加额外环境文件:
-
如果您部署使用原生 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 角色。
-
如果您部署使用原生 CephFS 后端驱动程序的 overcloud,请添加
根据您使用的 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.yaml
和manila-cephfsnative-config.yaml
或manila-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>
的值。
-
根据您的具体环境,替换
其他资源
- 有关生成自定义角色文件的更多信息,请参阅通过 NFS 使用 CephFS 部署共享文件系统服务。
3.3.2. 为对象存储添加外部 Ceph 对象网关(RGW)的额外环境文件
如果部署使用已存在的 RGW 服务进行对象存储的 overcloud,您必须添加额外的环境文件。
流程
将以下
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 服务进行身份验证。
-
远程 RGW 实例的默认端口为
将以下代码添加到 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
使用与部署相关的任何其他环境文件部署 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。
流程
有关如何创建文件共享并列出共享的导出路径的更多信息,请参阅存储指南中的 使用共享文件系统服务(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)文件共享。
流程
以
stack
用户身份登录 undercloud,再提供stackrc
凭证文件:$ source ~/stackrc
列出可用的服务器以检索系统中节点的 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 |
使用 SSH 登录到任何 Compute 节点:
$ ssh tripleo-admin@192.168.24.31
确认 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
输入以下命令强制
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
要验证共享文件系统服务共享是否存在,您必须登录到 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 存储池中读取、写入和删除。
流程
要缩短此流程中必须执行的输入数量,请登录 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"
确认您可以作为新对象将测试数据写入池:
$ rbd create --size 1024 vms/foo
确认您可以看到测试数据:
$ rbd ls vms | grep foo
删除测试数据:
$ rbd rm vms/foo
如果此步骤失败,请联系您的 Ceph Storage 管理员以获得帮助。如果此过程成功,但您无法创建 Compute (nova)实例、镜像服务(glance)镜像、块存储(cinder)卷或共享文件系统服务(manila)共享,请联系红帽支持。