自定义块存储后端部署指南


Red Hat OpenStack Platform 16.1

在 Red Hat OpenStack Platform Overcloud 中部署自定义块存储后端的指南

OpenStack Documentation Team

摘要

本文档论述了如何在 Red Hat OpenStack Platform 16.1 overcloud 中为块存储服务(cinder)部署自定义、非集成后端。

使开源包含更多

红帽致力于替换我们的代码、文档和 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 章 创建环境文件

您创建的环境文件来配置自定义后端,包含您要定义的每个后端的设置。它还包含与部署自定义后端相关的其他设置。有关环境文件的更多信息,请参阅高级 Overcloud 自定义指南中的环境文件

以下示例环境文件定义了两个 NetApp 后端,netapp1netapp2

/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_drivernetapp2/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 章 部署配置的后端

要部署配置的后端,请完成以下步骤:

  1. stack 用户身份登录。
  2. 运行以下命令来部署自定义后端配置:

    $ openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
    重要

    如果您在创建 overcloud 时传递任何额外的环境文件,请使用 -e 选项再次传递它们,以避免对 overcloud 进行不必要的更改。有关更多信息,请参阅 Director 安装和使用指南中的修改 overcloud 环境

第 4 章 测试配置的后端

将后端部署到 overcloud 后,测试您是否可以在其中成功创建卷。

流程

  1. stack 用户身份运行以下命令,以加载 home/stack/overcloudrec 中定义的环境变量:

    $ source /home/stack/overcloudrc

有关更多信息,请参阅 Director 安装和使用 指南中的 访问 overcloud

  1. 为每个后端创建一个卷类型。以 stack 用户身份登录 overcloud 的 Controller 节点,再运行以下命令:

    $ cinder type-create backend1
    $ cinder type-create backend2

    这些命令创建卷类型 backend1backend2,每个使用您创建的环境文件的 cinder::config::cinder_config 类定义的后端。

  2. 将每个卷类型映射到使用您创建的环境文件的 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
  3. 运行以下命令,通过调用 backend1 卷类型,测试可以在 netapp1 上创建后端:

    $ cinder create --volume-type backend1 --display_name netappvolume_1 1
  4. 通过调用 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

法律通告

Copyright © 2023 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.