NetApp Block Storage 后端指南
在 Red Hat OpenStack Platform 8 中使用 NetApp 设备作为块存储后端的指南
摘要
第 1 章 简介 复制链接链接已复制到粘贴板!
本文档论述了如何使用 Director 将 NetApp 设备部署为 Overcloud 的块存储服务的后端。以下部分假设:
- 您打算将 NetApp 设备和驱动程序用于块存储后端
- OpenStack Overcloud 已通过 Director 部署
- NetApp 设备已经配置,已准备好用作存储库
- 您有连接到 NetApp 存储系统或代理服务器所需的凭证
- 您有具有升级权限的帐户的用户名和密码。您可以使用为部署 Overcloud 而创建的同一帐户;在创建 Director 安装用户 中,我们创建 stack 用户并用于此目的。
当通过 Director 部署 Red Hat OpenStack Platform 时,还必须通过 Director 定义所有主要的 Overcloud 设置(特别是块存储服务后端)。这可确保设置通过任何进一步的 Overcloud 更新保留。
有关将块存储服务配置为使用 NetApp 设备作为后端,请参阅 Chapter 4。OpenStack Block Storage Service (从 NetApp OpenStack Deployment and Operations Guide)。手动配置的块存储设置需要在对 Overcloud 的更新过程中重新应用,因为 Director 将覆盖它没有编配的任何设置。
本文档的目的是说明如何将您所需的 NetApp 后端配置编排到 Overcloud 的块存储服务。本文档不会讨论 NetApp 后端可能的不同部署配置。相反,要了解有关不同可用的 NetApp 部署选项的更多信息,请参阅 操作和部署选择(从 NetApp OpenStack 部署和操作指南)。
熟悉您要部署的后端配置(及其相应的设置)后,请参阅本文档来了解如何通过 Director 编配它。
目前,director 只有一个集成组件来部署 NetApp 后端的一个实例。因此,本文档仅描述了单个后端的部署。
部署 NetApp 后端的多个实例 需要自定义后端配置。具体步骤请查看 自定义块存储后端部署指南。
第 2 章 进程描述 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform 包括块存储服务支持的所有 NetApp 设备所需的所有驱动程序。此外,director 还具有将 NetApp 设备集成为 Overcloud 的后端所需的 puppet 清单、环境文件和编配模板。
将 NetApp 设备配置为后端涉及编辑默认 环境文件,并将它包含在 Overcloud 部署中。此文件在 Undercloud 本地可用,并可编辑以适合您的环境。
编辑完此文件后,通过 Director 调用该文件。这样做可确保其在将来的 Overcloud 更新中保留。以下小节更详细地描述了此过程。
第 3 章 定义后端 复制链接链接已复制到粘贴板!
本节论述了单个后端的部署。部署 NetApp 后端的多个实例 需要自定义后端配置。具体步骤请查看 自定义块存储后端部署指南。
通过 Director 部署,将 NetApp 设备定义为块存储后端的最简单方法是通过集成的 NetApp 环境文件。此文件位于 Undercloud 节点的以下路径中:
/usr/share/openstack-tripleo-heat-templates/environments/cinder-netapp-config.yaml
将此文件复制到可以编辑并稍后调用的本地路径中。例如,将其复制到 ~/templates/ 中:
cp /usr/share/openstack-tripleo-heat-templates/environments/cinder-netapp-config.yaml ~/templates/
$ cp /usr/share/openstack-tripleo-heat-templates/environments/cinder-netapp-config.yaml ~/templates/
之后,打开副本(~/templates/cinder-netapp-config.yaml),并在您看到适合的情况下对其进行编辑。以下片段显示此文件的默认内容:
- 1
- resource_registry 部分中的 OS::TripleO::ControllerExtraConfigPre: 参数引用名为 cinder-netapp.yaml 的 Heat 模板。这是 Director 应使用的模板来加载配置后端所需的资源。默认情况下,参数指定 cinder-netapp.yaml 相对的路径。因此,使用文件的绝对路径更新此参数:
resource_registry: OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/controller/cinder-netapp.yaml
resource_registry: OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/controller/cinder-netapp.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 2
- parameter_defaults 部分包含您的后端定义。具体来说,它包含 Director 应该传递给 cinder-netapp.yaml 中定义的资源的参数。
- 3
- CinderEnableNetappBackend: true 行指示 Director 使用 NetApp 后端默认配置所需的 puppet 清单。这包括定义块存储服务应使用的卷驱动程序(特别是 cinder.volume.drivers.netapp.common.NetAppDriver)。
要定义 NetApp 后端,请在您看到适合的 parameter_defaults 部分中编辑设置。下表解释了每个参数,并列出其对应的 /etc/cinder/cinder.conf 设置。
有关每个变量的更多上下文,请咨询您的 NetApp 设备在配置 (NetApp OpenStack 部署和操作指南中) 中的相应参考。
| 参数 | /etc/cinder/cinder.conf setting | 描述 |
|---|---|---|
| CinderNetappBackendName | volume_backend_name | (必需) 一个任意名称来标识卷后端。cinder-netapp-config.yaml 文件默认使用名称 tripleo_netapp。 |
| CinderNetappLogin | netapp_login | (必需) 用于访问后端或代理服务器的 Administrative 帐户名称。对于此参数,您可以使用具有集群级别管理权限(即 admin)或 集群范围的帐户的帐户 [a] 具有适当的特权。 |
| CinderNetappPassword | netapp_password | (必需) CinderNetappLogin 的对应密码。 |
| CinderNetappServerHostname | netapp_server_hostname | (必需) 存储系统或代理服务器(用于 E-Series)。这个选项的值应该是集群管理逻辑接口(LIF)或 Storage Virtual Machine (SVM) LIF 的 IP 地址或主机名。 |
| CinderNetappServerPort | netapp_server_port | (可选) 块存储服务用来与 NetApp 后端通信的 TCP 端口。如果没有指定,Data ONTAP 驱动程序将为 HTTPS 使用 80,HTTP 和 443;E-Series 会将 8080 用于 HTTP,8443 则用于 HTTPS。 |
| CinderNetappSizeMultiplier | netapp_size_multiplier | (已弃用) 在创建卷时,数量乘以请求的卷大小,以确保 NetApp 后端有足够的空间。 |
| CinderNetappStorageFamily | netapp_storage_family | (可选) 后端设备中使用的存储系列类型。将 ontap_cluster 用于集群的 Data ONTAP,ontap_7mode 用于 Data ONTAP 在 7-Mode 中操作,或 E-Series 的 eseries。 |
| CinderNetappStorageProtocol | netapp_storage_protocol | (必需) 要使用的存储协议。使用 nfs、iscsi 或 fc。 |
| CinderNetappTransportType | netapp_transport_type | (必需) 用于与后端通信的传输协议。有效选项包括 http 和 https。 |
[a]
有关集群范围的帐户的更多信息,请参阅 Data ONTAP Configuration (NetApp OpenStack Deployment and Operations Guide)
| ||
以下设置仅对集群的 Data ONTAP 有效(如,CinderNetappStorageFamily 设置为 ontap_cluster)。
| 参数 | /etc/cinder/cinder.conf setting | 描述 |
|---|---|---|
| CinderNetappVserver | netapp_vserver | (必需) 指定应该发生卷置备的 SVM 名称。这指的是存储集群中的单个 SVM。 |
以下设置只能通过在 7-Mode 中处理的 Data ONTAP 操作(如,CinderNetappStorageFamily 设为 ontap_7mode)。
| 参数 | /etc/cinder/cinder.conf setting | 描述 |
|---|---|---|
| CinderNetappVfiler | netapp_vfiler | (可选) 要在其上置备卷的 vFiler 单元。仅在 NetApp 后端上使用 MultiStore 功能时使用这个选项。 |
| CinderNetappVolumeList | netapp_volume_list | (已弃用) 将置备限制为指定的以逗号分隔的 NetApp 控制器卷列表。这个版本保留这个选项的后向兼容性。 |
| CinderNetappPartnerBackendName [a] | netapp_partner_backend_name | (必需) 这指定了另一个后端,它充当一半高可用性(HA)对。两个后端都必须在其各自后端定义中引用彼此的 volume_backend_name。 |
[a]
这个选项只有在使用光纤通道协议(如 CinderNetappStorageProtocol 设置为 fc 时)有效。如需了解更多详细信息,请参阅 NetApp Unified Driver for Data ONTAP in 7-Mode with Fibre Channel (Net NetApp OpenStack Deployment and Operations Guide)
| ||
以下设置仅对 E-Series 系列设备有效(如,将 CinderNetappStorageFamily 设置为 eseries)。
| 参数 | /etc/cinder/cinder.conf setting | 描述 |
|---|---|---|
| CinderNetappControllerIps | netapp_controller_ip | (必需) 以逗号分隔的控制器管理 IP/主机名列表,应该限制置备。 |
| CinderNetappSaPassword | netapp_sa_password | (可选) 到 NetApp E-Series 存储阵列的密码。 |
| CinderNetappStoragePools | netapp_storage_pools | (删除) 应该限制置备的磁盘池的逗号分隔列表。 不要编辑此参数,因为它现在指的是不可用的驱动程序选项。 |
| CinderNetappEseriesHostType | netapp_eseries_host_type | (删除) 定义可以访问 LUN 的所有发起方的操作系统类型。将 LUN 映射到单个主机或主机组时,会使用此信息。 不要编辑此参数,因为它现在指的是不可用的驱动程序选项。 |
| CinderNetappWebservicePath | netapp_webservice_path | (可选) 指定代理服务器上 E-Series 代理应用程序的路径。要确定用于连接代理应用程序的完整 URL,驱动程序组合了 CinderNetappTransportType、CinderNetappServerHostname 和 CinderNetappServerPort 端口值。 |
以下设置仅在使用 NFS 协议时有效(如将 CinderNetappStorageProtocol 设置为 nfs)。如需更多信息,请参阅 带有 NFS 的 Clustered Data ONTAP 的 NetApp Unified Driver,或 NetApp Unified Driver for Data ONTAP 在 7-Mode 中操作 (包括 NetApp OpenStack Deployment and Operations Guide)。
| 参数 | /etc/cinder/cinder.conf setting | 描述 |
|---|---|---|
| CinderNetappNfsShares | None | (必需) 从 NetApp ONTAP 设备导出的数据 LIFs 列表由 Controller 节点挂载。此列表写入到 CinderNetappNfsSharesConfig 定义的位置。例如: CinderNetappNfsShares: \'192.168.67.1:/cinder1,192.168.67.2:/cinder2,192.168.67.2:/cinder3,192.168.67.2:/archived_data' |
| CinderNetappNfsSharesConfig | nfs_shares_config | (必需) 到 NFS 导出文件 的绝对路径。此文件包含要用作后端的可用 NFS 共享列表。 |
| CinderNetappNfsMountOptions | nfs_mount_options | (可选) 您要传递给 NFS 客户端的挂载选项列表。有关有效选项的更多信息,请参阅 man mount。 |
| CinderNetappCopyOffloadToolPath [a] | netapp_copyoffload_tool_path | (可选) 指定 NetApp copy offload 工具二进制 的路径。此二进制文件( NetApp 支持门户提供)必须设置 Execute 权限,因为 openstack-cinder-volume 进程需要执行此文件。 |
[a]
这个选项只适用于 Clustered Data ONTAP (如,CinderNetappStorageFamily 设置为 ontap_cluster)。如需更多信息,请参阅 NetApp Unified Driver for Clustered Data ONTAP with NFS (NetApp OpenStack Deployment and Operations Guide)。
| ||
第 4 章 部署 Configured 后端 复制链接链接已复制到粘贴板!
Director 安装使用非 root 用户来执行命令,其中包括编排块存储后端的部署。在创建 Director 安装用户 中,我们为此目的创建一个名为 stack 的用户。此用户配置了升级的特权。
以 stack 用户身份登录 Undercloud。然后,运行以下命令部署 NetApp 后端(在编辑的 ~/templates/cinder-netapp-config.yaml 中定义):
openstack overcloud deploy --templates -e ~/templates/cinder-netapp-config.yaml
$ openstack overcloud deploy --templates -e ~/templates/cinder-netapp-config.yaml
如果您在创建 Overcloud 时传递任何额外的环境文件,请使用 -e 选项再次传递这些文件,以避免对 Overcloud 进行不必要的更改。
有关更多信息,请参阅 扩展 Overcloud 和 更新 Overcloud。
Director 完成编排后,测试后端。具体步骤请查看 第 5 章 测试 Configured 后端。
第 5 章 测试 Configured 后端 复制链接链接已复制到粘贴板!
部署后端后,测试您是否能够成功在其上创建卷。这样做需要首先载入必要的环境变量。默认情况下,这些变量在 /home/stack/overcloudrc 中定义。
要载入这些变量,以 stack 用户身份运行以下命令:
source /home/stack/overcloudrc
$ source /home/stack/overcloudrc
有关更多信息,请参阅 访问基本 Overcloud。
现在,您应该登录到 Controller 节点。在这里,您可以创建一个 卷类型,它可以用来指定您要使用的后端(本例中为 第 3 章 定义后端中新定义的后端)。在启用了其他后端(最好通过 Director)时,部署需要这样做。
要创建名为 netapp 的卷类型,请运行:
cinder type-create netapp
$ cinder type-create netapp
接下来,将此卷类型映射到 ] 中定义的后端。根据后端名称 tripleo_netapp (通过 CinderNetappBackendName 参数定义,在 xref:edityaml[)中定义,请运行:
cinder type-key netapp set volume_backend_name=tripleo_netapp
$ cinder type-key netapp set volume_backend_name=tripleo_netapp
现在,您应能够通过调用其卷类型在新定义的后端上创建 2GB 卷。为此,请运行:
cinder create --volume-type netapp 2
$ cinder create --volume-type netapp 2