Nimble & Alletra 6k 存储卷驱动¶
Nimble Storage 与 OpenStack 平台完全集成,通过 Nimble Cinder 驱动程序,允许主机通过块存储接口配置和管理 Nimble 和 Alletra 6k 存储阵列的功能。
支持 iSCSI 存储协议,使用 NimbleISCSIDriver 卷驱动程序类,支持光纤通道,使用 NimbleFCDriver。
从 Nimble OS 2.3.8 或更高版本开始,支持 Liberty 版本及更高版本。
从 Nimble OS 3.6 或更高版本开始,支持 Ocata 版本及更高版本。
对于 Xena 版本,使用 Nimble OS 5.3 或更高版本,以及 Alletra OS 6.0 或更高版本。
由于 os-brick 中存在的限制,Nimble 和 Alletra 6k 存储 Cinder 驱动程序不支持在同一子网上的多个接口上的端口绑定。这在 bug https://bugs.launchpad.net/os-brick/+bug/1722432 中有部分提及,但并未解决多个软件 iSCSI 接口的问题。
支持的操作¶
创建、删除、克隆、附加和分离卷
创建和删除卷快照
从快照创建卷
将镜像复制到卷
将卷复制到镜像
扩展卷
获取卷统计信息
管理和取消管理卷
为卷类型 extra-specs 启用加密和默认性能策略
强制备份正在使用的卷
重新类型化卷
创建一个稀疏配置卷
同时将卷附加到多个服务器(多重附加)
卷恢复到快照
创建、列出、更新和删除一致性组
创建、列出和删除一致性组快照
一致性组复制
Nimble 和 Alletra 6k 存储驱动程序配置¶
使用给定的配置更新文件 /etc/cinder/cinder.conf。注意:这些参数也适用于 Alletra 6k 存储。
在基本(单个后端)配置的情况下,将参数添加到 [default] 部分,如下所示。
[default]
san_ip = NIMBLE_MGMT_IP
san_login = NIMBLE_USER
san_password = NIMBLE_PASSWORD
use_multipath_for_image_xfer = True
volume_driver = NIMBLE_VOLUME_DRIVER
san_thin_provision = True
在多个后端配置的情况下,例如,支持多个 Nimble Storage 阵列或单个 Nimble Storage 阵列与其他供应商的阵列的配置,使用以下参数。
[default]
enabled_backends = Nimble-Cinder
[Nimble-Cinder]
san_ip = NIMBLE_MGMT_IP
san_login = NIMBLE_USER
san_password = NIMBLE_PASSWORD
use_multipath_for_image_xfer = True
volume_driver = NIMBLE_VOLUME_DRIVER
volume_backend_name = NIMBLE_BACKEND_NAME
在多个后端配置的情况下,创建 Nimble 卷类型并将其与后端名称关联,如下所示。
注意
单后端配置用户无需创建卷类型。
$ openstack volume type create NIMBLE_VOLUME_TYPE
$ openstack volume type set --property volume_backend_name=NIMBLE_BACKEND_NAME NIMBLE_VOLUME_TYPE
本节解释了上述变量
- NIMBLE_MGMT_IP
Nimble/Alletra 6k 存储阵列/组的管理 IP 地址。
- NIMBLE_USER
Nimble/Alletra 6k 存储帐户登录,具有最低
power user(admin)权限,如果使用 RBAC。- NIMBLE_PASSWORD
Nimble/Alletra 6k 阵列的 admin 帐户密码。
- NIMBLE_VOLUME_DRIVER
对于 iSCSI,使用 cinder.volume.drivers.hpe.nimble.NimbleISCSIDriver,对于光纤通道,使用 cinder.volume.drivers.hpe.nimble.NimbleFCDriver。
- NIMBLE_BACKEND_NAME
在
cinder.conf文件中指定的卷后端名称。这也在将后端名称分配给 Nimble 卷类型时使用。- NIMBLE_VOLUME_TYPE
从 CLI 创建并与
NIMBLE_BACKEND_NAME关联的 Nimble 卷类型。注意
更新
cinder.conf文件后,重新启动cinder-api、cinder-scheduler和cinder-volume服务。
Nimble 驱动程序 extra spec 选项¶
Nimble 卷驱动程序还支持以下 extra spec 选项
- ‘nimble:encryption’=’yes’
用于为卷类型启用加密。
- ‘nimble:perfpol-name’=PERF_POL_NAME
PERF_POL_NAME 是 Nimble/Alletra 6k 阵列上存在的性能策略的名称,应为卷类型中的每个卷启用。
注意
升级到 OpenStack 部署到 Victoria 或更高版本时,请取消设置 nimble:multi-initiator extra-spec 并设置 multiattach='<is> True'。
- nimble:dedupe’=’true’
用于为卷类型启用去重支持。
- ‘nimble:iops-limit’=IOPS_LIMIT
用于为为此卷类型创建的所有卷设置 IOPS_LIMIT,介于 256 和 4294967294 之间。
- ‘nimble:folder’=FOLDER_NAME
FOLDER_NAME 是 Nimble/Alletra 6k 阵列上存在的文件夹的名称,应为卷类型中的每个卷启用
可以使用以下命令启用这些 extra-specs
$ openstack volume type set --property KEY=VALUE VOLUME_TYPE
VOLUME_TYPE 是 Nimble 卷类型,KEY 和 VALUE 是上述选项。
配置选项¶
Nimble/Alletra 6k 存储驱动程序支持这些配置选项
配置选项 = 默认值 |
描述 |
|---|---|
|
(字符串) Nimble 控制器池名称 |
|
(字符串) Nimble 子网标签 |
|
(字符串) Nimble 阵列 SSL 证书的路径 |
|
(布尔值) 是否验证 Nimble SSL 证书 |
多路径¶
在希望使用 Cinder 块设备多路径的 OpenStack 环境中,需要考虑一些事项。
配置多路径因环境而异,取决于系统。在仅由 Cinder 创建 Nimble 设备的场景中,可以使用以下 /etc/multipath.conf 文件
defaults {
user_friendly_names yes
find_multipaths no
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
device {
vendor ".*"
product ".*"
}
}
blacklist_exceptions {
device {
vendor "Nimble"
product "Server"
}
}
devices {
device {
vendor "Nimble"
product "Server"
path_grouping_policy group_by_prio
prio "alua"
hardware_handler "1 alua"
path_selector "service-time 0"
path_checker tur
features "1 queue_if_no_path"
no_path_retry 30
failback immediate
fast_io_fail_tmo 5
dev_loss_tmo infinity
rr_min_io_rq 1
rr_weight uniform
}
}
修改 /etc/multipath.conf 后,需要重新配置多路径子系统
# multipathd reconfigure
提示
有关 Nimble 设备的最新最佳实践,请参阅 HPE Nimble Storage Linux 集成指南,该指南可在 https://infosight.hpe.com 上找到
重要提示
OpenStack Cinder 当前与 HPE Nimble Storage Linux 工具包 (NLT) 不兼容
需要配置 Nova 以获取主机上创建的实际多路径设备。
在 /etc/nova/nova.conf 中,将以下内容添加到 [libvirt] 部分
[libvirt]
volume_use_multipath = True
注意
在 Newton 之前的版本中,该选项称为 iscsi_use_multipath
编辑 Nova 配置文件后,需要重新启动 nova-conductor 服务。
提示
根据使用的特定 OpenStack 发行版,Nova 可能会使用与默认文件不同的配置文件。
要验证实例是否正确连接到多路径设备,请检查实例设备
# virsh dumpxml <Instance ID | Instance Name | Instance UUID>
一致性组复制¶
要启用一致性组复制,请按照以下步骤操作
将 replication_device 添加到 cinder.conf 中的存储后端设置,然后重新启动 Cinder Volume 服务。
卷复制的 cinder.conf 示例
[nimble] san_ip = xxx.xxx.xxx.xxx ... replication_device = backend_id:nimblevsagroup2, san_ip:10.132.239.66, san_login:admin, san_password:admin, schedule_name:sched-one, downstream_partner:nimblevsagroup2, period:15, period_unit:minutes
每个主后端只能配置一个 replication_device。
键 backend_id、san_ip、san_login、san_password、schedule_name 和 downstream_partner 是必需的。
其他参数是可选的(如果未提供,则使用默认值):period:1 period_unit:days num_retain:10 num_retain_replica:1 at_time:’00:00’ until_time:’23:59’ days=’all’ replicate_every:1 alert_threshold:’24:00’
创建一个具有属性 replication_enabled=’<is> True’ 和 consistent_group_snapshot_enabled=’<is> True’ 的卷类型
$ cinder type-create nimble $ cinder type-key nimble set volume_backend_name='nimble' $ cinder type-key nimble set replication_enabled='<is> True' $ cinder type-key nimble set consistent_group_snapshot_enabled='<is> True'
创建一个具有属性 consistent_group_snapshot_enabled=’<is> True’ 和 consistent_group_replication_enabled=’<is> True’ 的一致性组类型。
$ cinder --os-volume-api-version 3.38 group-type-create repl_type $ cinder --os-volume-api-version 3.38 group-type-key repl_type set consistent_group_snapshot_enabled='<is> True' consistent_group_replication_enabled='<is> True'
创建一个支持复制的卷类型的组类型。
$ cinder --os-volume-api-version 3.38 group-create --name grp_1 repl_type nimble
在一致性组中创建卷。
$ cinder --os-volume-api-version 3.38 create --volume-type nimble --group-id {grp_1-id} --name {volume-name} {size}
启用一致性组复制。
$ cinder --os-volume-api-version 3.38 group-enable-replication grp_1
禁用一致性组复制。
$ cinder --os-volume-api-version 3.38 group-disable-replication grp_1
故障转移一致性组复制。
$ cinder --os-volume-api-version 3.38 group-failover-replication --secondary-backend-id nimblevsagroup2 grp_1
故障恢复一致性组复制。
$ cinder --os-volume-api-version 3.38 group-failover-replication --secondary-backend-id default grp_1