Dell EMC PS 系列后端指南


Red Hat OpenStack Platform 13

在 Red Hat OpenStack Platform Overcloud 中使用 Dell EMC PS 系列存储指南

OpenStack Documentation Team

摘要

本文档论述了如何将单个 Dell EMC PS 系列设备部署为 Red Hat OpenStack Platform 13 Overcloud 的后端。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息

第 1 章 简介

本文档论述了如何将 OpenStack 配置为使用一个或多个 Dell EMC PS 系列后端。它还包括有关 Dell EMC PS 系列设备和 OpenStack 块存储服务之间的寻址卷大小差异的说明。

以下小节假设:

  • 您要只对块存储后端使用 Dell EMC PS 系列设备和驱动程序
  • OpenStack Overcloud 已经通过 Director 部署,具有可正常工作的块存储服务
  • Dell 存储设备已经部署并配置为存储存储库
  • 已部署并可通过 SSH 访问 Dell EMC PS 系列组
  • 您有连接到可用的 Dell EMC PS 系列组的组经理(即 CHAP 和 Group Manager 凭证)所需的凭证。
  • 您有具有升级权限的帐户的用户名和密码。您可以使用为部署 Overcloud 创建的相同帐户;在创建堆栈 用户 中,我们创建并使用 stack 用户来实现这一目的。

通过 director 部署 Red Hat OpenStack Platform (RHOSP)时,还必须通过 director (特别是块存储服务后端)定义并编配所有主要 overcloud 设置。这样可确保通过任何进一步的 overcloud 更新保留设置。有关通过 Director 部署 OpenStack 的更多信息,请参阅 Director 安装和使用

本文档的目的是说明如何将 Dell EqualLogic 后端配置编排到 overcloud 块存储服务。本文档不会讨论后端可能的不同部署配置。要了解更多有关不同可用部署配置的信息,请参阅设备的产品文档。

当您熟悉要部署的最终配置及其对应的设置时,请参阅此文档,了解如何通过 director 编排它。

注意

目前,director 仅具有部署 Dell EqualLogic 后端的单一实例的集成组件。因此,本文档只描述了单个后端的部署。

部署 Dell EqualLogic 后端的多个实例 需要自定义后端配置。具体步骤请查看 自定义块存储后端部署指南

在使用 Dell Storage Center 后端部署 Red Hat OpenStack Platform (RHOSP)前,请查看以下限制:

  • 对于 Dell EMC SC 系列,不支持空附加卷的快照。在进行快照前,您必须填充卷或附加卷。如需更多信息,请参阅 https://bugs.launchpad.net/cinder/+bug/1616630
  • 对于 Dell EMC SC 系列,不支持 cinder 备份。

第 2 章 进程描述

Red Hat OpenStack Platform (RHOSP)包括块存储服务支持的所有 Dell 设备所需的驱动程序。此外,director 还具有将设备集成为 overcloud 的后端所需的 puppet 清单、环境文件和编配模板。

单个 Dell 设备配置为后端 涉及编辑默认环境文件,并在 overcloud 部署中包括它。此文件可以在 undercloud 上本地可用,并可进行编辑以适合您的环境。

编辑此文件后,通过 director 调用该文件。这样做可确保通过将来的 overcloud 更新持续。以下小节更详细地描述了此过程。另外,默认的环境文件已包含足够的信息,可用于调用配置其余所需块存储设置所需的 puppet 清单和 Orchestration (heat)模板。

第 3 章 定义单一后端

重要

这部分论述了部署单一后端。部署 Dell EqualLogic 后端的多个实例 需要自定义后端配置。具体步骤请查看 自定义块存储后端部署指南

通过 Director 部署,定义 单一 Dell EMC PS 系列后端的最简单方式是通过集成的环境文件。此文件位于 Undercloud 节点的以下路径中:

/usr/share/openstack-tripleo-heat-templates/environments/cinder-dellps-config.yaml

将此文件复制到本地路径,以便稍后进行编辑并调用该路径。例如,将其复制到 ~/templates/

$ cp /usr/share/openstack-tripleo-heat-templates/environments/cinder-dellps-config.yaml ~/templates/
Copy to Clipboard Toggle word wrap

之后,打开副本(~/templates/cinder-dellps-config.yaml),并根据需要进行编辑。以下片段显示此文件的默认内容:

# A Heat environment file which can be used to enable a
# a Cinder EMC PS Series backend, configured via puppet
resource_registry:
  OS::TripleO::Services::CinderBackendDellPs: ../puppet/services/cinder-backend-dellps.yaml # 
1


parameter_defaults: # 
2

  CinderEnableDellPsBackend: true # 
3

  CinderDellPsBackendName: 'tripleo_dellps'
  CinderDellPsSanIp: ''
  CinderDellPsSanLogin: ''
  CinderDellPsSanPassword: ''
  CinderDellPsSanThinProvision: true
  CinderDellPsGroupname: 'group-0'
  CinderDellPsPool: 'default'
  CinderDellPsChapLogin: ''
  CinderDellPsChapPassword: ''
  CinderDellPsUseChap: false
Copy to Clipboard Toggle word wrap
1
resource_registry 部分中的 OS::TripleO::Services::CinderBackendDellPs 参数引用名为 cinder-backend-dellps.yaml 的可组合服务模板。director 使用此模板来加载配置后端所需的资源。默认情况下,参数指定 cinder-backend-dellps.yaml 相对的路径。因此,使用文件的绝对路径更新这个参数:
resource_registry:
  OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/services/cinder-backend-dellps.yaml
Copy to Clipboard Toggle word wrap
2
parameter_defaults 部分包含您的后端定义。具体来说,它包含 Director 应该传递给 cinder-backend-dellps.yaml 中定义的资源的参数。
3
CinderEnableDellPsBackend: true 行指示 Director 使用 Dell EMC PS Series 后端默认配置所需的 puppet 清单。这包括定义块存储服务应使用的卷驱动程序(特别是 cinder.volume.drivers.dell_emc.ps.PSSeriesISCSIDriver)。

要定义您的 Dell EMC PS 系列后端,请在您看到的 parameter_defaults 部分中编辑设置。下表说明了每个参数,还列出其对应的 /etc/cinder/cinder.conf 设置。

Expand
表 3.1. Dell EMC PS 系列设置
参数/etc/cinder/cinder.conf settingDescription

CinderDellPsBackendName

volume_backend_name

用于标识卷后端的任意名称。

CinderDellPsSanIp

san_ip

用于通过 SSH 访问 Dell EMC PS 系列组的 IP 地址。

CinderDellPsSanLogin

san_login

通过 SSH 在 Cinder DellPsSanIp 登录组管理器的用户名。默认名为 grpadmin

CinderDellPsSanPassword

san_password

CinderDellPsSanLogin 的对应密码。默认 密码为

CinderDellPsSanThinProvision

san_thin_provision

设置此设置时是否需要启用 SAN 卷的精简配置(true)。

CinderDellPsGroupname

eqlx_group_name

要用于块存储服务创建卷和快照的池的组。默认组为 group-0

CinderDellPsPool

eqlx_pool

块存储服务将在其中创建卷和快照的池。这个选项不能用于单个 Dell EMC PS 系列组上块存储服务使用的多个池。默认池 为。

CinderDellPsChapLogin

eqlx_chap_login

池中每个卷的 CHAP 登录帐户。默认帐户名称为 chapadmin

CinderDellPsChapPassword

eqlx_chap_password

Cinder DellPsChapLogin 的对应密码。默认密码是在十六进制中随机生成的,因此您必须手动设置这个密码。

CinderDellPsUseChap

eqlx_use_chap

设置 CHAP 验证是否被禁用(默认为false )还是启用(true)。

第 4 章 部署配置后端

Director 安装使用非 root 用户执行命令,其中包括编配块存储后端的部署。在创建 Director 安装用户 中,会为此目的创建了名为 stack 的用户。此用户使用升级的特权配置。

要部署在 第 3 章 定义单一后端 中配置的 lone 后端,首先以 stack 用户身份登录 Undercloud。然后,通过运行以下命令部署后端(在编辑的 ~/templates/cinder-dellps-config.yaml中定义):

$ openstack overcloud deploy --templates -e ~/templates/cinder-dellps-config.yaml
Copy to Clipboard Toggle word wrap
重要

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

在 director 编排完成后测试后端。请参阅 第 5 章 测试配置后端

第 5 章 测试配置后端

部署后端后,测试您是否可以在其中成功创建卷。这样做需要首先载入必要的环境变量。这些变量默认在 /home/stack/overcloudrc 中定义。

要加载这些变量,请以 stack 用户身份运行以下命令:

$ source /home/stack/overcloudrc
Copy to Clipboard Toggle word wrap
注意

如需更多信息,请参阅 访问 Overcloud

现在,您应该登录到 Controller 节点。在这里,您可以创建一个 卷类型,它可以用来指定您要使用的后端(本例中为 第 3 章 定义单一后端中的新定义后端)。在启用了其他后端的 OpenStack 部署中是必需的(可能是通过 Director)。

要创建名为 dellps 的卷类型,请运行:

$ cinder type-create dellps
Copy to Clipboard Toggle word wrap

接下来,将此卷类型映射到 ] 中定义的后端。根据后端名称 tripleo_dellps (如通过 CinderDellPsBackendName 参数定义的),在 xref:edityaml[)中运行:

$ cinder type-key dellps set volume_backend_name=tripleo_dellps
Copy to Clipboard Toggle word wrap

现在,您应能够通过调用其卷类型,在新定义的后端上创建一个 2GB 卷。为此,请运行:

$ cinder create --volume-type dellps 2
Copy to Clipboard Toggle word wrap

报告卷大小时,Dell EqualLogic (EQL)后端也考虑用于内部卷元数据的额外存储。这个大小比块存储服务报告的卷大小稍高。但是,EQL 后端报告的卷大小与镜像服务使用的卷大小相同。

因此,当在 EQL 后端上创建镜像支持卷时,首先检查镜像的大小。如果镜像最初由卷提供支持,那么 EQL (根据扩展,镜像服务)将报告卷的大小比块存储服务报告稍高。

如果 EQL 报告的镜像大小稍大,则在创建由此镜像支持的卷时,您需要考虑大小差异。

6.1. Example

为了说明这一点,当您创建 1GB 卷时:

# cinder create --display-name vol1 1

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2014-12-19T03:57:47.730359      |
| display_description |                 None                 |
|     display_name    |                 vol1                 |
|      encrypted      |                False                 |
|          id         | 6bdace69-bd41-42fc-a63a-f834fb65a2e4 |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+
Copy to Clipboard Toggle word wrap

块存储服务将报告大小为 1GB 的卷,但在 EQL 阵列上,大小(VolReserve)会稍大:

eql> volume select volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4

eql (volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4)> show

_______________________________ Volume Information ______...
Name: volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4
Size: 1GB
VolReserve: 1.01GB
...
Copy to Clipboard Toggle word wrap

从这个卷创建新镜像时,cinder 将报告正确的卷大小为 1GB:

# cinder upload-to-image --disk-format raw --container-format bare vol1 image_vol1

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|   container_format  |                 bare                 |
|     disk_format     |                 raw                  |
| display_description |                 None                 |
|          id         | 6bdace69-bd41-42fc-a63a-f834fb65a2e4 |
|       image_id      | c65f7eae-e2c1-44ba-8af1-e33695897559 |
|      image_name     |              image_vol1              |
|         size        |                  1                   |
|        status       |              uploading               |
|      updated_at     |      2014-12-19T03:57:48.000000      |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+
Copy to Clipboard Toggle word wrap

但是,镜像服务会报告一个比较更大的大小:

# glance image-list

...+------------+-------------+------------------+------------+--------+
...| Name       | Disk Format | Container Format | Size       | Status |
...+------------+-------------+------------------+------------+--------+
...| image_vol1 | raw         | bare             | 1085276160 | active |
...+------------+-------------+------------------+------------+--------+
Copy to Clipboard Toggle word wrap

glance 工具报告约 1.01GB 的镜像大小。因此,创建由该镜像支持的 1GB 卷将失败:

# cinder create --display-name vol2 --image-id c65f7eae-e2c1-44ba-8af1-e33695897559 1

ERROR: Invalid input received: Size of specified image 2 is larger than volume size 1
Copy to Clipboard Toggle word wrap

6.2. 临时解决方案

如前文所述,您需要在指定镜像支持卷的大小时考虑镜像报告的卷大小与块存储服务之间的差别。这意味着,在指定镜像支持卷的大小时,请在 glance 报告的镜像大小后使用下一个整数

使用前面的示例,glance 报告了一个镜像大小为 1.01GB。这意味着,当您创建卷时,您需要指定大小为 2GB 而不是 1GB:

# cinder create --display-name vol2 --image-id c65f7eae-e2c1-44ba-8af1-e33695897559 2

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2014-12-19T04:54:07.036260      |
| display_description |                 None                 |
|     display_name    |                 vol2                 |
|      encrypted      |                False                 |
|          id         | fcf49715-094d-4bba-9f05-8b7fa6deffce |
|       image_id      | c65f7eae-e2c1-44ba-8af1-e33695897559 |
|       metadata      |                  {}                  |
|         size        |                  2                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+
Copy to Clipboard Toggle word wrap

法律通告

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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat