自定义块存储后端部署指南
在 Red Hat OpenStack Platform Overcloud 中部署自定义块存储后端的指南
摘要
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 简介 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform (RHOSP) director是一个安装和管理完整的 RHOSP 环境的工具组。它主要基于上游 TripleO (OpenStack-on-OpenStack)项目。director 的主要目标是通过最少的手动配置来完全编排功能的企业级 RHOSP 部署。它有助于解决手动配置各个 OpenStack 组件固有的许多问题。
director 提供的 end-result RHOSP 部署称为 overcloud。overcloud 包含为最终用户提供服务的所有组件,包括块存储。本文档提供了有关如何将自定义后端部署到 overcloud 的块存储服务的指导。
本文档介绍了与手动块存储配置相关的现有概念。在测试 OpenStack 部署(例如通过 Packstack)进行配置时,此服务涉及编辑其主机节点的 /etc/cinder/cinder.conf。该文件中的大多数块存储设置在其他位置进行了更详细的记录;本文档描述了如何将相同的设置应用到 overcloud 以附加自定义后端。
在有限的用例中,此步骤已被成功测试。请确保您首先在非生产环境中测试您的计划部署。如果您有任何问题,请联系红帽支持。
1.1. 自定义后端 复制链接链接已复制到粘贴板!
出于本文档的目的,自定义后端被定义为存储服务器,设备或配置已完全集成到 Red Hat OpenStack Platform director 中。某些支持的块存储后端已经集成到 director 中,这意味着已经提供了预先配置的 director 文件。可以通过这些文件将集成的后端配置和部署到 overcloud。集成后端的示例包括 Red Hat Ceph 和 Dell EMC PS 系列、Dell Storage Center 和 NetApp 设备的单后端配置。
此外,一些存储设备已经集成到 director 中,仅支持单实例后端。例如,Dell Storage Center 的预配置 director 文件只支持部署单一后端。如本文档中所示,部署此设备的多个后端实例需要自定义配置。
虽然您可以通过直接编辑其节点的 /etc/cinder/cinder.conf 文件来手动配置块存储服务,但 director 在运行 openstack overcloud deploy 命令时会覆盖配置。因此,部署块存储后端的建议方法是通过 director,这样可确保您的设置保留在 overcloud 部署和更新中。
如果后端配置已经完全集成,您可以编辑并调用其打包环境文件。但是,使用自定义后端,您必须编写自己的环境文件。有关更多信息,请参阅 Director 安装和使用 指南中的在 Overcloud 创建 中包含环境文件。本文档包括了一个注解的示例,您可以为您自己的部署编辑: /home/stack/templates/custom-env.yaml。此示例文件可用于配置块存储服务以使用两个 NetApp 后端。
1.2. 要求 复制链接链接已复制到粘贴板!
前提条件
- 除手动配置块存储和您想要部署的后端的信息外。
- 如果您使用第三方后端设备,则它们必须正确配置为存储库。
- overcloud 已经通过 director 部署。请参阅 Director 安装和使用 指南。
-
您有具有升级权限的帐户的用户名和密码。您可以使用您创建的帐户来部署 overcloud。请参阅 Director 安装和使用 指南中的 创建 stack 用户。为满足此目的创建了
stack用户。 -
您已映射了
/etc/cinder/cinder.conf中 Block Storage 后端生成的配置。
第 2 章 进程描述 复制链接链接已复制到粘贴板!
块存储服务的设置存储在 /etc/cinder/cinder.conf 中,这些设置包括 后端定义。大部分第三方后端可用于(或甚至受支持)块存储服务提供涉及编辑 /etc/cinder/cinder.conf 设置的设置说明。如 第 1 章 简介 中所述,这样做将配置块存储服务;但是,这些设置将在以后被 Overcloud 更新中覆盖。
无论如何,任何与通过 /etc/cinder/cinder.conf 进行手动配置的文档对于 Overcloud 部署仍很有用。毕竟 Director 会将相同的配置应用到 /etc/cinder/cinder.conf,通过 heat 将 albeit 应用到 /etc/cinder/cinder.conf。因此,规划后端配置需要您:
- 全面规划您想要的块存储后端配置,
-
为此配置映射生成的
/etc/cinder/cinder.conf文件。
在映射生成的 /etc/cinder/cinder.conf 文件后,创建可编排后端设置的环境文件。环境文件 使用示例文件 /home/stack/templates/custom-env.yaml 更详细地描述这一步。使环境文件手动设置将有助于确保后端设置在将来的 Overcloud 更新中保留。
第 3 章 创建环境文件 复制链接链接已复制到粘贴板!
环境文件包含您要定义的每个后端的设置,以及其他相关设置。有关环境文件的更多信息, 请参阅高级 Overcloud 自定义指南中的 环境文件。
以下示例环境文件定义了两个 NetApp 后端: netapp1 和 netapp2 :
/home/stack/templates/custom-env.yaml
- 1
- 以下参数被设置为
false,因此禁用其他后端类型:-
CinderEnableIscsiBackend:其他 iSCSI 后端. -
CinderEnableRbdBackend: Red Hat Ceph。 -
CinderEnableNfsBackend: NFS. -
NovaEnableRbdBackend: ephemeral Red Hat Ceph Storage.
-
- 2
- GlanceBackend 参数设置镜像服务应该用来存储镜像的内容。支持以下值:
-
文件:将镜像存储在每个 Controller 节点上的/var/lib/glance/images上。 -
Swift:将对象存储服务用于镜像存储。 -
Cinder:使用块存储服务进行镜像存储。
-
- 3
ControllerExtraConfig定义应用到所有 Controller 节点的自定义设置。cinder::config::cinder_config类意味着设置应应用到块存储(cinder)服务。反过来,这意味着后端设置最终将在每个 Controller 节点的/etc/cinder/cinder.conf文件中结束。- 4
netapp1/volume_driver和netapp2/volume_driver设置遵循 部分/设置 语法。使用 Block Storage 服务时,每个后端在/etc/cinder/cinder.conf中的其自己的部分中定义。使用netapp1前缀的每个设置将在一个新的[netapp1]后端部分定义。- 5
- 同样,
netapp2设置在单独的[netapp2]部分中定义。 - 6
值前缀配置前面的设置。- 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。
部署 Configured Back Ends 描述了如何使用环境文件 /home/stack/templates/custom-env.yaml 编配自定义后端部署。要查看 /home/stack/templates/custom-env.yaml 中生成的 /etc/cinder/cinder.conf 设置,请参阅 第 A.2 节 “从示例环境文件生成的配置”。
第 4 章 部署配置后端 复制链接链接已复制到粘贴板!
在 /home/stack/templates/ 中创建 custom-env.yaml 文件后,以 stack 用户身份登录。然后,运行以下命令部署自定义后端配置:
openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
$ openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
如果您在创建 overcloud 时传递任何额外的环境文件,请使用 -e 选项再次传递它们,以避免对 overcloud 进行不必要的更改。有关更多信息,请参阅 Director 安装和使用 指南中的 修改 Overcloud 环境。
在 director 编排完成后测试后端。请参阅 第 5 章 测试配置后端。
第 5 章 测试配置后端 复制链接链接已复制到粘贴板!
将后端部署到 overcloud 后,测试您是否可以在其中成功创建卷。您必须首先加载必要的环境变量。默认情况下,这些变量在 /home/stack/overcloudrc 中定义。
-
要载入变量,以
stack用户身份运行以下命令:
source /home/stack/overcloudrc
$ source /home/stack/overcloudrc
有关更多信息,请参阅 Director 安装和使用 指南中的 访问 overcloud。
-
为每个后端创建一个 卷类型。以
stack用户身份登录 overcloud 的 Controller 节点,再运行以下命令:
cinder type-create backend1 cinder type-create backend2
$ cinder type-create backend1
$ cinder type-create backend2
这些命令创建卷类型 backend1 和 backend2,每个后端通过 envfile 的 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
$ cinder type-key backend1 set volume_backend_name=netapp1
$ cinder type-key backend2 set volume_backend_name=netapp2
-
现在,您可以测试每个后端。通过调用
backend1卷类型,在netapp1后端上创建一个名为netapp_volume_1的 1GB 卷:
cinder create --volume-type backend1 --display_name netappvolume_1 1
$ cinder create --volume-type backend1 --display_name netappvolume_1 1
-
通过调用
backend2卷类型,在netapp2后端中创建类似的卷:
cinder create --volume-type backend2 --display_name netappvolume_2 1
$ cinder create --volume-type backend2 --display_name netappvolume_2 1
附录 A. 附录 复制链接链接已复制到粘贴板!
A.1. stack 用户 复制链接链接已复制到粘贴板!
您可以使用 stack 用户帐户来运行需要提升权限的命令,如部署后端或加载用于访问 overcloud 的环境变量。有关 stack 用户的更多信息,请参阅 Director 安装和使用 指南中的 创建 stack 用户。
A.2. 从示例环境文件生成的配置 复制链接链接已复制到粘贴板!
第 3 章 创建环境文件 中的 环境文件,将块存储服务配置为使用两个 NetApp 后端。以下片段显示相关的设置: