Dell EMC PS 系列后端指南
在 Red Hat OpenStack Platform Overcloud 中使用 Dell EMC PS 系列存储指南
摘要
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 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/
$ cp /usr/share/openstack-tripleo-heat-templates/environments/cinder-dellps-config.yaml ~/templates/
之后,打开副本(~/templates/cinder-dellps-config.yaml),并根据需要进行编辑。以下片段显示此文件的默认内容:
- 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
resource_registry: OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/services/cinder-backend-dellps.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 设置。
| 参数 | /etc/cinder/cinder.conf setting | Description |
|---|---|---|
| CinderDellPsBackendName | volume_backend_name | 用于标识卷后端的任意名称。 |
| CinderDellPsSanIp | san_ip | 用于通过 SSH 访问 Dell EMC PS 系列组的 IP 地址。 |
| CinderDellPsSanLogin | san_login |
通过 SSH 在 Cinder DellPsSanIp 登录组管理器的用户名。默认名为 |
| CinderDellPsSanPassword | san_password |
CinderDellPsSanLogin 的对应密码。默认 |
| CinderDellPsSanThinProvision | san_thin_provision |
设置此设置时是否需要启用 SAN 卷的精简配置( |
| CinderDellPsGroupname | eqlx_group_name |
要用于块存储服务创建卷和快照的池的组。默认组为 |
| CinderDellPsPool | eqlx_pool |
块存储服务将在其中创建卷和快照的池。这个选项不能用于单个 Dell EMC PS 系列组上块存储服务使用的多个池。 |
| CinderDellPsChapLogin | eqlx_chap_login |
池中每个卷的 CHAP 登录帐户。默认帐户名称为 |
| CinderDellPsChapPassword | eqlx_chap_password | Cinder DellPsChapLogin 的对应密码。默认密码是在十六进制中随机生成的,因此您必须手动设置这个密码。 |
| CinderDellPsUseChap | eqlx_use_chap |
设置 CHAP 验证是否被禁用(默认为 |
第 4 章 部署配置后端 复制链接链接已复制到粘贴板!
Director 安装使用非 root 用户执行命令,其中包括编配块存储后端的部署。在创建 Director 安装用户 中,会为此目的创建了名为 stack 的用户。此用户使用升级的特权配置。
要部署在 第 3 章 定义单一后端 中配置的 lone 后端,首先以 stack 用户身份登录 Undercloud。然后,通过运行以下命令部署后端(在编辑的 ~/templates/cinder-dellps-config.yaml中定义):
openstack overcloud deploy --templates -e ~/templates/cinder-dellps-config.yaml
$ openstack overcloud deploy --templates -e ~/templates/cinder-dellps-config.yaml
如果您在创建 overcloud 时传递任何额外的环境文件,请使用 -e 选项再次传递它们,以避免对 overcloud 进行不必要的更改。有关更多信息,请参阅 Director 安装和使用 指南中的 修改 Overcloud 环境。
在 director 编排完成后测试后端。请参阅 第 5 章 测试配置后端。
第 5 章 测试配置后端 复制链接链接已复制到粘贴板!
部署后端后,测试您是否可以在其中成功创建卷。这样做需要首先载入必要的环境变量。这些变量默认在 /home/stack/overcloudrc 中定义。
要加载这些变量,请以 stack 用户身份运行以下命令:
source /home/stack/overcloudrc
$ source /home/stack/overcloudrc
如需更多信息,请参阅 访问 Overcloud。
现在,您应该登录到 Controller 节点。在这里,您可以创建一个 卷类型,它可以用来指定您要使用的后端(本例中为 第 3 章 定义单一后端中的新定义后端)。在启用了其他后端的 OpenStack 部署中是必需的(可能是通过 Director)。
要创建名为 dellps 的卷类型,请运行:
cinder type-create dellps
$ cinder type-create dellps
接下来,将此卷类型映射到 ] 中定义的后端。根据后端名称 tripleo_dellps (如通过 CinderDellPsBackendName 参数定义的),在 xref:edityaml[)中运行:
cinder type-key dellps set volume_backend_name=tripleo_dellps
$ cinder type-key dellps set volume_backend_name=tripleo_dellps
现在,您应能够通过调用其卷类型,在新定义的后端上创建一个 2GB 卷。为此,请运行:
cinder create --volume-type dellps 2
$ cinder create --volume-type dellps 2
第 6 章 使用 Dell EqualLogic 后端处理卷大小 Discrepancies 复制链接链接已复制到粘贴板!
报告卷大小时,Dell EqualLogic (EQL)后端也考虑用于内部卷元数据的额外存储。这个大小比块存储服务报告的卷大小稍高。但是,EQL 后端报告的卷大小与镜像服务使用的卷大小相同。
因此,当在 EQL 后端上创建镜像支持卷时,首先检查镜像的大小。如果镜像最初由卷提供支持,那么 EQL (根据扩展,镜像服务)将报告卷的大小比块存储服务报告稍高。
如果 EQL 报告的镜像大小稍大,则在创建由此镜像支持的卷时,您需要考虑大小差异。
6.1. Example 复制链接链接已复制到粘贴板!
为了说明这一点,当您创建 1GB 卷时:
# cinder create --display-name vol1 1
块存储服务将报告大小为 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 ...
_______________________________ Volume Information ______...
Name: volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4
Size: 1GB
VolReserve: 1.01GB
...
从这个卷创建新镜像时,cinder 将报告正确的卷大小为 1GB:
# cinder upload-to-image --disk-format raw --container-format bare vol1 image_vol1
但是,镜像服务会报告一个比较更大的大小:
# glance image-list
...+------------+-------------+------------------+------------+--------+ ...| Name | Disk Format | Container Format | Size | Status | ...+------------+-------------+------------------+------------+--------+ ...| image_vol1 | raw | bare | 1085276160 | active | ...+------------+-------------+------------------+------------+--------+
...+------------+-------------+------------------+------------+--------+
...| Name | Disk Format | Container Format | Size | Status |
...+------------+-------------+------------------+------------+--------+
...| image_vol1 | raw | bare | 1085276160 | active |
...+------------+-------------+------------------+------------+--------+
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
ERROR: Invalid input received: Size of specified image 2 is larger than volume size 1
6.2. 临时解决方案 复制链接链接已复制到粘贴板!
如前文所述,您需要在指定镜像支持卷的大小时考虑镜像报告的卷大小与块存储服务之间的差别。这意味着,在指定镜像支持卷的大小时,请在 glance 报告的镜像大小后使用下一个整数。
使用前面的示例,glance 报告了一个镜像大小为 1.01GB。这意味着,当您创建卷时,您需要指定大小为 2GB 而不是 1GB:
# cinder create --display-name vol2 --image-id c65f7eae-e2c1-44ba-8af1-e33695897559 2