自定义块存储后端部署指南
在 Red Hat OpenStack Platform Overcloud 中部署自定义块存储后端的指南
摘要
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 部署块存储服务自定义后端简介
Red Hat OpenStack Platform director 使用最少的手动配置来安装和管理完整的企业级 OpenStack 部署。有关 director 的更多信息,请参阅 Director 安装和使用指南。
director 创建的 Openstack 环境称为 overcloud。overcloud 包含为最终用户提供服务的所有组件,包括块存储。本文档提供有关如何在 overcloud 上将自定义后端部署到块存储服务(cinder)的信息。默认情况下,块存储服务安装在 Controller 节点上。
先决条件
- 您已使用 director 部署 overcloud。
- overcloud 具有可正常工作的块存储服务。
- 熟悉块存储概念和配置。有关块存储的更多信息,请参阅存储指南中的块存储和卷。
在有限的用例中,此步骤已被成功测试。请确保您首先在非生产环境中测试您的计划部署。如果您有任何问题,请联系红帽支持。
1.1. 了解自定义后端
自定义后端是一个存储服务器、设备或配置,还没有完全集成到 Red Hat OpenStack Platform director 中。支持的块存储后端已经集成并预先配置了内置 director 文件。例如,Red Hat Ceph 和 Dell EMC PS 系列、Dell Storage Center 和 NetApp 设备的单后端配置。
一些集成存储设备只支持单实例后端。例如,对于 Dell Storage Center 预配置 director 文件,您只能部署单一后端。如果要部署这个设备的多个后端实例,则需要自定义配置。
虽然您可以通过直接编辑块存储服务所在的节点上的 /etc/cinder/cinder.conf
文件来手动配置块存储服务,但 director 在运行 openstack overcloud deploy
命令时会覆盖配置。更多信息请参阅 第 3 章 部署配置的后端。使用 director 部署块存储后端,以确保您的设置在 overcloud 部署和更新中保留。
如果您的后端配置完全集成,您可以编辑并调用打包的环境文件。但是,对于自定义后端,您必须编写自己的环境文件。本文档包括您可以编辑部署的 /home/stack/templates/custom-env.yaml
文件。此示例文件可用于配置块存储服务以使用两个 NetApp 后端。有关环境文件的更多信息,请参阅 Director 安装和使用 指南中的 overcloud 部署中包含环境文件。
1.2. 要求
以下附加条件必须应用到您的环境以配置自定义块存储后端:
- 如果您使用第三方后端设备,您可以将它们配置为存储库。
- 您已使用 director 部署 overcloud,并带有 Director 安装和使用中的说明。
-
您有具有升级权限的帐户的用户名和密码。您可以使用您创建的同一
stack
用户帐户来部署 overcloud。 -
您已计划在
/etc/cinder/cinder.conf
中为 Block Storage 后端进行了生成的配置。
1.3. 了解配置过程
将块存储服务配置为使用自定义后端涉及以下步骤:
- 创建环境文件。更多信息请参阅 第 2 章 创建环境文件。
- 部署已配置的后端。更多信息请参阅 第 3 章 部署配置的后端。
- 测试配置的后端。如需更多信息,请参阅 第 4 章 测试配置的后端。
第 2 章 创建环境文件
您创建的环境文件来配置自定义后端,包含您要定义的每个后端的设置。它还包含与部署自定义后端相关的其他设置。有关环境文件的更多信息,请参阅高级 Overcloud 自定义指南中的环境文件。
以下示例环境文件定义了两个 NetApp 后端,netapp1
和 netapp2
:
/home/stack/templates/custom-env.yaml
parameter_defaults: # 1 CinderEnableIscsiBackend: false CinderEnableRbdBackend: false CinderEnableNfsBackend: false NovaEnableRbdBackend: false GlanceBackend: file # 2 ControllerExtraConfig: # 3 cinder::config::cinder_config: netapp1/volume_driver: # 4 value: cinder.volume.drivers.netapp.common.NetAppDriver netapp1/netapp_storage_family: value: ontap_7mode netapp1/netapp_storage_protocol: value: iscsi netapp1/netapp_server_hostname: value: 10.35.64.11 netapp1/netapp_server_port: value: 80 netapp1/netapp_login: value: root netapp1/netapp_password: value: p@$$w0rd netapp1/volume_backend_name: value: netapp1 netapp2/volume_driver: # 5 value: cinder.volume.drivers.netapp.common.NetAppDriver # 6 netapp2/netapp_storage_family: value: ontap_7mode netapp2/netapp_storage_protocol: value: iscsi netapp2/netapp_server_hostname: value: 10.35.64.11 netapp2/netapp_server_port: value: 80 netapp2/netapp_login: value: root netapp2/netapp_password: value: p@$$w0rd netapp2/volume_backend_name: value: netapp2 cinder_user_enabled_backends: ['netapp1','netapp2'] # 7
- 1
- 以下参数被设置为
false
,它会禁用其他后端类型:-
CinderEnableIscsiBackend
:其他 iSCSI 后端. -
CinderEnableRbdBackend
: Red Hat Ceph。 -
CinderEnableNfsBackend
: NFS。 -
NovaEnableRbdBackend
: 临时 Red Hat Ceph Storage.
-
- 2
- GlanceBackend 参数设置镜像服务用来存储镜像的内容。支持以下值:
-
file
:将镜像存储在每个 Controller 节点上的/var/lib/glance/images
上。 -
swift
:将对象存储服务用于镜像存储。 -
cinder
:使用块存储服务进行镜像存储。
-
- 3
ControllerExtraConfig
定义应用到所有 Controller 节点的自定义设置。cinder::config::cinder_config
类意味着设置必须应用到 Block Storage (cinder)服务。- 4
netapp1/volume_driver
和netapp2/volume_driver
设置遵循 section/setting 语法。使用 Block Storage 服务时,每个后端在/etc/cinder/cinder.conf
中的其自己的部分中定义。使用netapp1
前缀的每个设置在一个新的[netapp1]
后端部分定义。- 5
netapp2
设置在单独的[netapp2]
部分中定义。- 6
value
前缀配置前面的设置。- 7
cinder_user_enabled_backends
类集合并启用自定义后端。仅在启用了用户的后端使用这个类,特别是cinder::config::cinder_config
类中定义的后端。不要使用
cinder_user_enabled_backends
来列出您可以与 director 原生启用的后端。这包括支持的 NetApp 或 Dell 设备的 Red Hat Ceph、NFS 和单一后端。例如,如果您启用了 Red Hat Ceph 后端,请不要在cinder_user_enabled_backends
中列出它,请通过将CinderEnableRbdBackend
设置为true
来启用它。
如需有关为 OpenStack Block Storage 定义 Red Hat Ceph 后端的更多信息,请参阅使用容器化 Red Hat Ceph 部署 Overcloud 指南。
要查看 /home/stack/templates/custom-env.yaml
中生成的 /etc/cinder/cinder.conf
设置,请参阅 附录 A, 附录
第 3 章 部署配置的后端
要部署配置的后端,请完成以下步骤:
-
以
stack
用户身份登录。 运行以下命令来部署自定义后端配置:
$ openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
重要如果您在创建 overcloud 时传递任何额外的环境文件,请使用
-e
选项再次传递它们,以避免对 overcloud 进行不必要的更改。有关更多信息,请参阅 Director 安装和使用指南中的修改 overcloud 环境。
第 4 章 测试配置的后端
将后端部署到 overcloud 后,测试您是否可以在其中成功创建卷。
流程
以
stack
用户身份运行以下命令,以加载home/stack/overcloudrec
中定义的环境变量:$ source /home/stack/overcloudrc
有关更多信息,请参阅 Director 安装和使用 指南中的 访问 overcloud。
为每个后端创建一个卷类型。以
stack
用户身份登录 overcloud 的 Controller 节点,再运行以下命令:$ cinder type-create backend1 $ cinder type-create backend2
这些命令创建卷类型
backend1
和backend2
,每个使用您创建的环境文件的cinder::config::cinder_config
类定义的后端。将每个卷类型映射到使用您创建的环境文件的
cinder_user_enabled_backends
类启用的后端的volume_backend_name
。以下命令可将卷类型backend1
映射到netapp1
,并将backend2
映射到netapp2
:$ cinder type-key backend1 set volume_backend_name=netapp1 $ cinder type-key backend2 set volume_backend_name=netapp2
运行以下命令,通过调用
backend1
卷类型,测试可以在netapp1
上创建后端:$ cinder create --volume-type backend1 --display_name netappvolume_1 1
通过调用
backend2
卷类型,在netapp2
后端中创建类似的卷:$ cinder create --volume-type backend2 --display_name netappvolume_2 1
附录 A. 附录
示例环境文件的配置
您在 第 2 章 创建环境文件 中创建的环境文件将块存储服务配置为使用两个 NetApp 后端。以下片段显示相关的设置:
enabled_backends = netapp1,netapp2 [netapp1] volume_backend_name=netapp_1 volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver netapp_login=root netapp_storage_protocol=iscsi netapp_password=p@$$w0rd netapp_storage_family=ontap_7mode netapp_server_port=80 netapp_server_hostname=10.35.64.11 [netapp2] volume_backend_name=netapp_2 volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver netapp_login=root netapp_storage_protocol=iscsi netapp_password=p@$$w0rd netapp_storage_family=ontap_7mode netapp_server_port=80 netapp_server_hostname=10.35.64.11