2.2. 通过 NFS 和自定义 network_data 文件安装 CephFS 的 OpenStack
通过 NFS 安装 CephFS 包括:
- 安装 ceph-ansible 软件包。
-
使用
openstack overcloud image prepare
命令准备 overcloud 容器镜像。 -
生成自定义角色文件(
roles_data.yaml
)和network_data.yaml
文件。 -
使用带有自定义角色和环境的
openstack overcloud deploy
命令,部署 Ceph、共享文件系统服务(manila)和 CephFS。 - 配置隔离的 StorageNFS 网络并创建默认共享类型。
示例在 OpenStack 环境中使用标准 stack
用户。
任务应当与 OpenStack 安装或环境更新结合使用。
2.2.1. 安装 ceph-ansible 软件包 复制链接链接已复制到粘贴板!
OpenStack director 需要安装 ceph-ansible
软件包,才能在 undercloud 节点上部署容器化 Ceph。
流程
- 登录 undercloud 节点。
使用具有提升权限的
yum install
安装 ceph-ansible 软件包。sudo yum install -y ceph-ansible sudo yum list ceph-ansible
[stack@undercloud-0 ~]$ sudo yum install -y ceph-ansible [stack@undercloud-0 ~]$ sudo yum list ceph-ansible ... Installed Packages ceph-ansible.noarch 3.1.0-0.1.el7 rhelosp-13.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. 准备 overcloud 容器镜像 复制链接链接已复制到粘贴板!
由于所有服务在 OpenStack 中都是容器化的,因此必须使用 openstack overcloud image prepare
命令准备 overcloud。使用附加选项运行这个命令,将 ceph 和 manila 服务的默认镜像添加到 docker 注册表。Ceph MDS 和 NFS-Ganesha 服务使用相同的 Ceph 基础容器镜像。
如需有关容器镜像的更多信息,请参阅 Director 安装和使用指南中的 额外服务 容器镜像 部分。
流程
从 undercloud 中,使用
-e
运行openstack overcloud image prepare
命令,使其包含这些环境文件:openstack overcloud container image prepare \ ...
$ openstack overcloud container image prepare \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/manila.yaml \ ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 grep 验证 ceph 和 manila 服务的默认镜像在
containers-default-parameters.yaml
文件中可用。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2.1. 生成自定义角色文件 复制链接链接已复制到粘贴板!
ControllerStorageNFS 自定义角色用于设置隔离的 StorageNFS 网络。此角色类似于默认的 Controller.yaml
角色文件,其添加 StorageNFS 网络和 CephNfs 服务(由 OS::TripleO::Services:CephNfs
表示)。
如需有关 openstack overcloud 角色 generate
命令的信息,请参阅高级 Overcloud 自定义指南中的 Roles 部分。
流程
openstack overcloud roles generate
命令创建自定义 roles_data.yaml
文件,包括 -o
后指定的服务。在以下示例中,创建的 roles_data.yaml
文件具有 ControllerStorageNfs、Compute 和 CephStorage 的服务。
如果您有一个现有的 roles_data.yaml
文件,请进行修改,以将 ControllerStorageNfs、Compute 和 CephStorage 服务添加到配置文件。请参考 高级 Overcloud 自定义指南中的 角色 部分。
- 登录 undercloud 节点。
使用
openstack overcloud 角色 generate
命令创建roles_data.yaml
文件:openstack overcloud roles generate --roles-path /usr/share/openstack-tripleo-heat-templates/roles -o /home/stack/roles_data.yaml ControllerStorageNfs Compute CephStorage
[stack@undercloud ~]$ openstack overcloud roles generate --roles-path /usr/share/openstack-tripleo-heat-templates/roles -o /home/stack/roles_data.yaml ControllerStorageNfs Compute CephStorage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.3. 部署更新的环境 复制链接链接已复制到粘贴板!
当您准备好部署环境时,请使用 openstack overcloud deploy
命令以及利用 NFS-Ganesha 运行 CephFS 所需的自定义环境和角色。这些环境和角色如下所述。
除了其他所需选项外,overcloud deploy 命令还具有以下选项。
操作 | Option | 其它信息 |
---|---|---|
从 |
| |
使用 |
| |
添加上一节中的 |
| |
使用 |
| |
使用 |
| |
通过 NFS 后端使用 CephFS 部署 manila 服务。通过 director 配置 NFS-Ganesha。 |
|
以下示例显示 openstack overcloud deploy 命令整合了
通过 NFS-Ganesha、Ceph 集群、Ceph MDS 和 isolated StorageNFS 网络部署 CephFS 的选项:
如需有关 openstack overcloud deploy 命令的更多信息,请参阅 Director 安装和使用 指南中的使用 CLI 工具创建 Overcloud 部分。
2.2.3.1. StorageNFS 和 network_data_ganesha.yaml 文件 复制链接链接已复制到粘贴板!
可组合网络允许您定义自定义网络,并将它们分配给任何角色。StorageNFS 可组合网络使用 network_data_ganesha.yaml
文件来配置 StorageNFS 可组合网络,而不是使用标准 network_data.yaml
文件。这两个角色都位于 /usr/share/openstack-tripleo-heat-templates
目录中。
network_data_ganesha.yaml
文件包含定义隔离的 StorageNFS 网络的额外部分。虽然默认设置适用于大多数安装,但您仍需要编辑 YAML 文件来添加网络设置,包括 VLAN ID、子网等。
如需有关可组合网络的更多信息,请参阅高级 Overcloud 自定义指南中的 使用 可组合网络章节。
2.2.3.2. manila-cephfsganesha-config.yaml 复制链接链接已复制到粘贴板!
用于定义 CephFS 后端的集成式环境文件位于 undercloud 节点的以下路径中:
/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
manila-cephfsganesha-config.yaml
环境文件包含与共享文件系统服务部署相关的设置。后端默认设置可用于大多数环境。这个示例显示了部署共享文件系统服务时 director 使用的默认值:
parameter_defaults 标头表示配置的开头。具体来说,此标题下的设置可让您覆盖 resource_registry 中设置的默认值。这包括 OS::Tripleo::Services::ManilaBackendCephFs 设置的值,后者为 CephFS 后端设置默认值。
- 1
ManilaCephFSBackendName
设置 CephFS 后端的 manila 配置的名称。在本例中,默认的后端名称是 cephfs。- 2
ManilaCephFSDriverHandlesShareServers
控制共享服务器的生命周期。当设置为 false 时,驱动程序不会处理生命周期。这是唯一支持的选项。- 3
ManilaCephFSCephFSAuthId
定义了 director 为 manila 服务创建的 Ceph auth ID,以访问 Ceph 集群。- 4
ManilaCephFSEnableSnapshots
控制快照激活。false 值表示没有启用快照。当前不支持这个功能。
有关环境文件的更多信息, 请参阅高级 Overcloud 自定义指南中的 环境文件。
2.2.4. 完成部署后配置 复制链接链接已复制到粘贴板!
在允许用户访问前需要完成两个部署后配置项目:
- neutron StorageNFS 网络必须映射到隔离的数据中心 NFS 网络,以及
- 必须创建 default 共享类型。
完成这些步骤后,租户计算实例可以创建、允许访问以及挂载 NFS 共享。
2.2.4.1. 配置隔离网络 复制链接链接已复制到粘贴板!
新的 isolated StorageNFS 网络必须映射到 neutron-shared 提供商网络。Compute 虚拟机将附加到此 neutron 网络,以访问由 NFS-Ganesha 网关提供的共享导出位置。
有关使用共享文件系统服务网络安全的一般信息,请参阅《 安全和强化指南》中强化 共享文件系统服务 的章节。
流程
openstack network create 命令定义 StorageNFS neutron 网络的配置。使用以下选项运行这个命令:
- 对于 --provider-physical-network,请使用默认值 datacentre,除非您通过 tripleo-heat-templates 中的 NeutronBridgeMappings 为 br-isolated 网桥设置另一个标签。
- 对于 --provider-segment 的值,使用在 Heat 模板中为 StorageNFS 隔离网络设置的 vlan 值 /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml。除非部署器已修改隔离网络定义,否则该值为 70。
- 对于 --provider-network-type,请使用值 vlan。
要使用这个命令:
从 undercloud 节点:
source ~/overcloudrc
[stack@undercloud ~]$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 undercloud 节点上,运行 openstack network create 命令创建 StorageNFS 网络:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.4.2. 设置共享供应商 StorageNFS 网络 复制链接链接已复制到粘贴板!
在 neutron 共享提供商网络上创建对应的 StorageNFSSubnet。确保子网与 undercloud 中的 storage_nfs_subnet 相同,但请确保此子网的分配范围和对应的 undercloud 子网没有重叠。不需要网关,因为此子网专用于提供 NFS 共享。
要求
- 分配池的开头和结束 IP 范围
- 子网 IP 范围
流程
- 登录 overcloud 节点。
使用 sample 命令调配网络,更新需要的值。
-
将
start=172.16.4.150,end=172.16.4.250
IP 值替换为您的网络。 -
将
172.16.4.0/24
子网范围替换为您的网络的正确范围。
-
将