HPE 3PAR、HPE Primera、HPE Alletra 9k 和 HPE Alletra MP 驱动程序¶
基于 Block Storage 服务 (Cinder) 插件架构的 HPE3PARFCDriver 和 HPE3PARISCSIDriver 驱动程序,通过 HTTP、HTTPS 和 SSH 连接与 HPE 3PAR、HPE Primera 和 HPE Alletra 9k 存储系统通信来运行卷操作。HTTP 和 HTTPS 通信使用 python-3parclient,它是 PyPi 的一部分。
有关 HPE 存储系统的信息,请参阅 Alletra Storage 产品页面。
系统要求¶
要使用 HPE 3PAR、HPE Primera、HPE Alletra 9k 和 HPE Alletra MP 驱动程序,请在 HPE 3PAR 存储系统上安装以下软件和组件
HPE 3PAR 操作系统软件版本 3.1.3 MU1 或更高版本。
重复数据删除配置需要 SSD 磁盘和 HPE 3PAR 操作系统软件版本 3.2.1 MU1 或更高版本。
启用 Flash Cache 策略需要以下条件
阵列必须包含 SSD 磁盘。
HPE 3PAR 操作系统软件版本 3.2.1 MU2 或更高版本。
python-3parclient 版本 4.2.0 或更新版本。
Flash Cache 必须使用 CLI 命令 createflashcache SIZE 在阵列上启用,其中大小必须以 16 GB 为增量。例如,createflashcache 128g 将为阵列中的每个节点对创建 128 GB 的 Flash Cache。
动态优化是支持导致卷更改配置类型或 CPG 的任何功能所必需的。这可能适用于卷 migrate、retype 和 manage 命令。
虚拟卷功能支持涉及卷快照的任何操作。这适用于卷 snapshot-* 命令。
启用卷压缩需要以下条件
阵列必须包含 SSD 磁盘。
HPE 3PAR 操作系统软件版本 3.3.1 MU1 或更高版本。
HPE 3PAR 存储系统,配备 8k 或 20k 系列
必须启用并运行 HPE 3PAR Web Services API 服务器。
一个通用配置组 (CPG)。
此外,您必须从 PyPi 在启用 Block Storage 服务卷驱动程序的系统上安装
python-3parclient版本 4.2.0 或更新版本。
要使用 HPE Primera、Alletra 9k 和 Alletra MP 后端,请在 HPE 存储系统上安装以下软件和组件
操作系统软件
HPE Primera:版本 4.4.0 或更高版本。
HPE Alletra 9k:版本 9.4.0 或更高版本。
HPE Alletra MP:版本 10.4.2.23 或更高版本。
在 HPE Primera/Alletra 9k/Alletra MP 存储系统上,重复数据删除和压缩合并为单个选项“deco”。因此,只能创建“thin”卷或“deco”卷。
此外,端口号 443 代替 8080。这仅影响 cinder 配置。
此外,您必须从 PyPi 在启用 Block Storage 服务卷驱动程序的系统上安装
python-3parclient版本 4.2.14 或更新版本。
支持的操作¶
创建、删除、附加和分离卷。
创建、列出和删除卷快照。
从快照创建卷。
将镜像复制到卷。
将卷复制到镜像。
克隆卷。
扩展卷。
迁移带有后端协助的卷。
重新类型化卷。
管理和取消管理卷。
管理和取消管理快照。
复制主机卷。
故障转移主机卷。
故障恢复主机卷。
重新配置复制的卷。
创建、删除、更新、快照和克隆通用卷组。
创建和删除通用卷组快照。
从组快照或另一个组创建通用卷组。
卷压缩。
具有更高粒度的组复制 (Tiramisu)。
卷恢复到快照。
其他后端功能。
在服务列表中报告后端状态。
同时将卷附加到多个服务器(多重附加)。
对等持久性。
HPE 3PAR 驱动程序都支持的卷类型包括在 OpenStack Block Storage API cinder.api.contrib.types_extra_specs 卷类型附加规格扩展模块中设置以下功能的能力
hpe3par:snap_cpghpe3par:provisioninghpe3par:personahpe3par:vvshpe3par:flash_cachehpe3par:compression
要使用默认筛选器调度器,键值区分大小写,并以 hpe3par: 为范围。有关如何设置键值对并将它们与卷类型关联的信息,请运行以下命令
$ openstack help volume type
注意
仅克隆的卷支持附加规格键 cpg、snap_cpg、provisioning 和 vvs。其他键将被忽略。此外,克隆卷的评论部分在 HPE 3PAR / Primera / Alletra 9k / Alletra MP 阵列中不会被填充。
如果未使用卷类型,或者未为卷类型设置特定键,则使用以下默认值
hpe3par:cpg- 默认为cinder.conf文件中的hpe3par_cpg设置。hpe3par:snap_cpg- 默认为cinder.conf文件中的hpe3par_snap设置。如果未设置hpe3par_snap,则默认为hpe3par_cpg设置。hpe3par:provisioning- 默认为thin配置,有效值为thin、full和dedup。hpe3par:persona- 默认为2 - Generic-ALUA人格。有效值为1 - Generic2 - Generic-ALUA3 - Generic-legacy4 - HPUX-legacy5 - AIX-legacy6 - EGENERA7 - ONTAP-legacy8 - VMware9 - OpenVMS10 - HPUX11 - WindowsServer
hpe3par:flash_cache- 默认为false,有效值为true和false。
HPE 3PAR 驱动程序都支持的 QoS 支持包括在 OpenStack Block Storage API cinder.api.contrib.qos_specs_manage qos 规格扩展模块中设置以下功能的能力
minBWSmaxBWSminIOPSmaxIOPSlatencypriority
上述 qos 键不再需要范围,但必须创建并与卷类型关联。有关如何设置键值对并将它们与卷类型关联的信息,请运行以下命令
$ openstack help volume qos
以下键要求 HPE 3PAR/Primera/Alletra 9k/ Alletra MP 阵列已启用优先级优化。
hpe3par:vvs虚拟卷集名称由管理员预定义,并与质量服务 (QoS) 规则相关联。如果指定附加规格
hpe3par:vvs,qos_specsminIOPS、maxIOPS、minBWS和maxBWS设置将被忽略。minBWSQoS I/O 问题带宽最小目标(MB)。如果未设置,则 I/O 问题带宽速率没有最小目标。
maxBWSQoS I/O 问题带宽速率限制(MB)。如果未设置,则 I/O 问题带宽速率没有限制。
minIOPSQoS I/O 问题计数最小目标。如果未设置,则 I/O 问题计数没有最小目标。
maxIOPSQoS I/O 问题计数速率限制。如果未设置,则 I/O 问题计数速率没有限制。
latency延迟目标(毫秒)。
priorityQoS 规则相对于其他规则的优先级。如果未设置,则优先级为
normal,有效值为low、normal和high。
注意
自 Icehouse 版本发布以来,必须一起使用 minIOPS 和 maxIOPS 以设置 I/O 限制。同样,必须一起使用 minBWS 和 maxBWS。如果仅设置一个,则另一个将被设置为相同的值。
以下键要求 HPE 3PAR/Primera/Alletra 9k/Alletra MP 阵列已启用自适应 Flash Cache。
hpe3par:flash_cache- Flash 缓存策略,可以通过将值设置为true或false来启用和禁用。hpe3par:compression- 卷压缩,可以通过将值设置为true或false来启用和禁用。
关于 hpe3par:compression 的其他限制和注意事项
对于压缩卷,所需的最小卷大小为 16 GB;否则,结果卷将成功创建,但不会是压缩卷。
如果请求的配置类型为 full,则无法压缩完全配置的卷。如果启用了压缩,则结果卷默认为稀疏配置的压缩卷。
在 HPE Primera/Alletra 9k/Alletra MP 存储系统上创建卷时,仅支持以下两种组合。如果使用任何其他组合,则不会创建卷。
thin 卷:provisioning =
thin且 compression =falsedeco 卷:provisioning =
dedup且 compression =true
现在支持在 HPE 3PAR 驱动程序中 LDAP 和 AD 身份验证。
在配置卷驱动程序之前,必须正确配置 3PAR 后端以进行 LDAP 和 AD 身份验证。有关设置 3PAR 中 LDAP 的详细信息,请参阅 3PAR 用户指南。
配置完成后,cinder.conf 中的 hpe3par_username 和 hpe3par_password 参数可与 LDAP 和 AD 凭据一起使用。
启用 HPE 3PAR Fibre Channel 和 iSCSI 驱动程序¶
与 OpenStack 软件一起安装 HPE3PARFCDriver 和 HPE3PARISCSIDriver。
在 OpenStack Block Storage 系统上安装
python-3parclientPython 包。$ pip install 'python-3parclient>=4.0,<5.0'
验证 HPE 3PAR Web Services API 服务器是否已在 HPE 3PAR / Primera / Alletra 9k / Alletra MP 存储系统上启用并正在运行。
以管理员权限登录 HPE 3PAR / Primera / Alletra 9k / Alletra MP 存储系统。
$ ssh 3paradm@<HPE storage system IP Address>
查看 Web Services API 服务器的当前状态。
$ showwsapi -Service- -State- -HTTP_State- HTTP_Port -HTTPS_State- HTTPS_Port -Version- Enabled Active Enabled 8008 Enabled 8080 1.1
如果禁用了 Web Services API 服务器,请启动它。
$ startwsapi
如果 HTTP 或 HTTPS 状态已禁用,请启用其中之一。
$ setwsapi -http enable
或者
$ setwsapi -https enable
注意
要停止 Web Services API 服务器,请使用 stopwsapi 命令。有关其他选项,请运行 setwsapi -h 命令。
如果您没有使用现有的 CPG,请在 HPE 3PAR / Primera / Alletra 9k / Alletra MP 存储系统上创建一个 CPG,用作创建卷的默认位置。
在
/etc/cinder/cinder.conf文件中进行以下更改。# WSAPI Server URL. # This setting applies to all: 3PAR, Primera, Alletra 9k and Alletra MP. # Example 1: for 3PAR, URL is: https://<3par ip>:8080/api/v1 # Example 2: for Primera/Alletra 9k/Alletra MP, URL is: https://<primera/alletra_9k/alletra_mp ip>:443/api/v1 # 3PAR / Primera / Alletra 9k / Alletra MP username with the 'edit' role hpe3par_username=edit3par # 3PAR / Primera / Alletra 9k / Alletra MP password for the user specified in hpe3par_username hpe3par_password=3parpass # 3PAR / Primera / Alletra 9k / Alletra MP CPG to use for volume creation hpe3par_cpg=OpenStackCPG_RAID5_NL # IP address of SAN controller for SSH access to the array san_ip=10.10.22.241 # Username for SAN controller for SSH access to the array san_login=3paradm # Password for SAN controller for SSH access to the array san_password=3parpass # FIBRE CHANNEL DRIVER # (uncomment the next line to enable the FC driver) #volume_driver=cinder.volume.drivers.hpe.hpe_3par_fc.HPE3PARFCDriver # iSCSI DRIVER # If you enable the iSCSI driver, you must also set values # for hpe3par_iscsi_ips or iscsi_ip_address in this file. # Note: The iSCSI driver is supported with 3PAR (all versions) # and Primera (version 4.2 or higher). If you configure iSCSI # with Primera 4.0 or 4.1, the driver will fail to start. # (uncomment the next line to enable the iSCSI driver) #volume_driver=cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver # iSCSI multiple port configuration # hpe3par_iscsi_ips=10.10.220.253:3261,10.10.222.234 # Still available for single port iSCSI configuration #iscsi_ip_address=10.10.220.253 # Enable HTTP debugging to 3PAR / Primera / Alletra 9k / Alletra MP hpe3par_debug=False # Enable CHAP authentication for iSCSI connections. hpe3par_iscsi_chap_enabled=false # The CPG to use for Snapshots for volumes. If empty hpe3par_cpg will be # used. hpe3par_cpg_snap=OpenStackSNAP_CPG # Time in hours to retain a snapshot. You can't delete it before this # expires. hpe3par_snapshot_retention=48 # Time in hours when a snapshot expires and is deleted. This must be # larger than retention. hpe3par_snapshot_expiration=72 # The ratio of oversubscription when thin provisioned volumes are # involved. Default ratio is 20.0, this means that a provisioned # capacity can be 20 times of the total physical capacity. max_over_subscription_ratio=20.0 # This flag represents the percentage of reserved back-end capacity. reserved_percentage=15
注意
您只能在每个 cinder 实例上启用一个驱动程序,除非您启用多个后端支持。请参阅 Cinder 多个后端支持说明以启用此功能。
注意
您可以使用
hpe3par_iscsi_ips选项配置一个或多个 iSCSI 地址。用逗号 (,) 分隔多个 IP 地址。当您配置多个地址时,驱动程序会在附加时选择活动卷最少的 iSCSI 端口。3PAR 阵列不允许更改默认端口 3260,因此无需指定 IP 端口。保存对
cinder.conf文件的更改,并重新启动 cinder-volume 服务。
现在已在您的 OpenStack 系统上启用了 HPE 3PAR Fibre Channel 和 iSCSI 驱动程序。如果您遇到问题,请查看 Block Storage 服务日志文件是否有错误。
下表包含 HPE 3PAR Fibre Channel 和 iSCSI 驱动程序支持的所有配置选项。
配置选项 = 默认值 |
描述 |
|---|---|
|
(字符串) WSAPI 服务器 URL。此设置适用于:3PAR、Primera、Alletra 9k 和 Alletra MP 示例 1:对于 3PAR,URL 为:https://<3par ip>:8080/api/v1 示例 2:对于 Primera/Alletra 9k/Alletra MP,URL 为:https://<primera ip>:443/api/v1 |
|
(字符串列表) 用于卷创建的 3PAR/Primera/Alletra 9k/Alletra MP CPG 列表 |
|
(字符串) 用于卷快照的 3PAR/Primera/Alletra 9k/Alletra MP CPG。如果为空,将使用 userCPG |
|
(布尔值) 启用到 3PAR/Primera/Alletra 9k/Alletra MP 的 HTTP 调试 |
|
(布尔值) 启用 iSCSI 连接的 CHAP 身份验证。 |
|
(字符串列表) 要使用的目标 iSCSI 地址列表。 |
|
(字符串) hpe3par_username 中指定的用户的 3PAR/Primera/Alletra 9k/Alletra MP 密码 |
|
(String) 快照在小时数后过期并被删除的时间。此值必须大于过期时间。 |
|
(String) 保留快照的小时数。在此时间过期之前,无法删除它。 |
|
(String) 在以下情况下要使用的 3PAR/Primera/Alletra 9k/Alletra MP 后端的 NSP:(1)在 cinder.conf 中未启用多路径。(2)未使用光纤通道区域管理器。(3)后端仅使用此特定的 NSP 进行预分区。例如,如果 NSP 为 2 1 2,则选项值的格式为 2:1:2 |
|
(String) 具有“编辑”角色的 3PAR/Primera/Alletra 9k/Alletra MP 用户名 |
为 FC 可启动卷指定 NSP¶
给定一个通过 FC 连接到 HPE 3PAR 的系统,并且 cinder.conf 中未使用多路径设置。当用户尝试创建可启动卷时,由于以下错误而间歇性失败:未找到光纤通道卷设备
当使用 3PAR 后端的第二个或后续目标创建区域时,会发生这种情况。在这种情况下,HPE 3PAR 客户端代码仅拾取第一个目标来形成发起程序目标映射。可以通过以下示例说明。
showport 命令的示例输出
$ showport -sortcol 6
N:S:P Mode State ----Node_WWN---- -Port_WWN/HW_Addr- Type Protocol Partner FailoverState
0:1:1 target ready 2FF70002AC002DB6 20110002AC002DB6 host FC - -
0:1:2 target ready 2FF70002AC002DB6 20120002AC002DB6 host FC 1:1:2 none
1:1:1 initiator ready 2FF70002AC002DB6 21110002AC002DB6 rcfc FC - -
1:1:2 target ready 2FF70002AC002DB6 21120002AC002DB6 host FC 0:1:2 none
2:1:1 initiator ready 2FF70002AC002DB6 22110002AC002DB6 rcfc FC - -
2:1:2 target ready 2FF70002AC002DB6 22120002AC002DB6 host FC 3:1:2 none
3:1:1 target ready 2FF70002AC002DB6 23110002AC002DB6 host FC - -
3:1:2 target ready 2FF70002AC002DB6 23120002AC002DB6 host FC 2:1:2 none
假设区域使用来自上述输出的“2:1:2”和“3:1:2”目标创建。然后,发起程序目标映射仅使用目标“0:1:1”创建。在这种情况下,找不到路径,并且可启动卷的创建失败。
为了避免上述故障,用户可以在 cinder.conf 的 3PAR 后端部分中指定目标,如下所示
hpe3par_target_nsp = 3:1:2
使用上述 NSP,将获取相应的 WWN 信息。稍后使用 WWN 信息创建发起程序目标映射,并成功创建可启动卷。
注意:如果在 cinder.conf 中未指定上述选项(NSP),则将执行原始流程,即仅拾取第一个目标,并且可启动卷的创建可能会失败。
对等持久性支持¶
给定配置了复制设置的 3PAR/Primera 后端,目前 OpenStack 中 3PAR/Primera 仅支持主动/被动复制。当发生故障转移时,nova 不支持卷强制分离(来自死掉的主后端)/重新连接到辅助后端。需要存储工程师的手动干预。
为了克服上述场景,添加了对等持久性支持。给定一个配置了对等持久性的系统并创建了复制的卷。当此卷附加到实例时,除了主后端之外,还在辅助后端自动创建 VLUN。因此,当发生故障转移时,它是无缝的。
对于对等持久性支持,请执行以下步骤:1] 启用多路径 2] 将复制模式设置为“同步” 3] 配置一个仲裁见证服务器
在 /etc/cinder/cinder.conf [在后端部分内] 中指定仲裁见证服务器的 IP 地址,如下所示
[3pariscsirep]
hpe3par_api_url = http://10.50.3.7:8008/api/v1
hpe3par_username = <user_name>
hpe3par_password = <password>
...
<other parameters>
...
replication_device = backend_id:CSIM-EOS12_1611702,
replication_mode:sync,
quorum_witness_ip:10.50.3.192,
hpe3par_api_url:http://10.50.3.22:8008/api/v1,
...
<other parameters>
...
支持网络中重复的 FQDN¶
3PAR 驱动程序使用执行附加的节点的 FQDN 作为唯一标识符来映射卷。
问题在于 FQDN 并不总是唯一的,在某些环境中,相同的 FQDN 可以在不同的系统中找到,并且在这些情况下,如果两者都尝试附加卷,则第二个系统将失败。
发生这种情况的一个示例是在 QA 环境中,您正在创建 VM,它们都具有像 controller-0.localdomain 和 compute-0.localdomain 这样的名称。
为了支持这些类型的环境,用户可以在 cinder.conf 的 backend_defaults 部分或特定的 cinder 驱动程序部分中指定以下标志,如下所示
unique_fqdn_network = False
当使用此标志时,在将卷附加到实例期间,将使用 iSCSI 发起程序名称而不是 FQDN。
如果在 cinder.conf 中未指定上述标志,则其值将被视为 True(默认)并使用 FQDN(现有行为)。