Dell VNX 驱动程序¶
EMC VNX 驱动程序与配置的 VNX 阵列交互。它支持 iSCSI 和 FC 协议。
VNX cinder 驱动程序通过执行 Navisphere CLI (NaviSecCLI) 来执行卷操作,Navisphere CLI 是用于 VNX 的管理、诊断和报告功能的命令行界面。它也支持 iSCSI 和 FC 协议。
系统要求¶
VNX 块版本 5.32 或更高版本的运行环境。
应为 VNX 激活 VNX 快照和稀疏配置许可。
Python 库
storops版本 0.5.7 或更高版本,用于与 VNX 交互。Navisphere CLI v7.32 或更高版本与驱动程序一起安装。
支持的操作¶
创建、删除、附加和分离卷。
创建、列出和删除卷快照。
从快照创建卷。
将镜像复制到卷。
克隆卷。
扩展卷。
迁移卷。
重新类型化卷。
获取卷统计信息。
创建和删除一致性组。
创建、列出和删除一致性组快照。
修改一致性组。
高效的非破坏性卷备份。
创建一个克隆的一致性组。
从一致性组快照创建一致性组。
支持复制 v2.1。
支持通用组。
将卷恢复到快照。
准备工作¶
本节包含准备块存储节点以使用 EMC VNX 驱动程序的说明。您应该安装 Navisphere CLI 并确保具有正确的区域配置。
安装 Python 库 storops¶
storops 是一个 Python 库,它通过 Navisphere CLI 与 VNX 阵列交互。使用以下命令安装 storops 库
$ pip install storops
检查阵列软件¶
确保已安装以下软件以支持某些功能
特性 |
所需软件 |
|---|---|
全部 |
稀疏配置 |
全部 |
VNX 快照 |
支持 FAST 缓存 |
FASTCache |
创建类型为 |
压缩 |
创建类型为 |
重复数据删除 |
所需软件
您可以在 软件 页面上的 存储系统属性 中检查您的阵列软件状态。其外观如下
网络配置¶
对于 FC 驱动程序,FC 区域配置在主机和 VNX 之间正确配置。请参阅 将 FC 端口注册到 VNX 以供参考。
对于 iSCSI 驱动程序,请确保您的 VNX iSCSI 端口可被您的主机访问。请参阅 将 iSCSI 端口注册到 VNX 以供参考。
您可以使用 initiator_auto_registration = True 配置以避免手动注册端口。有关配置的详细信息,请参阅 后端配置 以供参考。
如果您正在尝试设置多路径,请参阅 多路径设置。
后端配置¶
在 /etc/cinder/cinder.conf 文件中进行以下更改。
最小配置¶
这是一个最小后端配置的示例。有关每个选项的详细信息,请参阅以下部分。如果使用 iSCSI 协议,请设置 storage_protocol = iscsi。
[DEFAULT]
enabled_backends = vnx_array1
[vnx_array1]
san_ip = 10.10.72.41
san_login = sysadmin
san_password = sysadmin
naviseccli_path = /opt/Navisphere/bin/naviseccli
volume_driver = cinder.volume.drivers.dell_emc.vnx.driver.VNXDriver
initiator_auto_registration = True
storage_protocol = fc
多个后端配置¶
这是一个最小后端配置的示例。有关每个选项的详细信息,请参阅以下部分。如果使用 iSCSI 协议,请设置 storage_protocol = iscsi。
[DEFAULT]
enabled_backends = backendA, backendB
[backendA]
storage_vnx_pool_names = Pool_01_SAS, Pool_02_FLASH
san_ip = 10.10.72.41
storage_vnx_security_file_dir = /etc/secfile/array1
naviseccli_path = /opt/Navisphere/bin/naviseccli
volume_driver = cinder.volume.drivers.dell_emc.vnx.driver.VNXDriver
initiator_auto_registration = True
storage_protocol = fc
[backendB]
storage_vnx_pool_names = Pool_02_SAS
san_ip = 10.10.26.101
san_login = username
san_password = password
naviseccli_path = /opt/Navisphere/bin/naviseccli
volume_driver = cinder.volume.drivers.dell_emc.vnx.driver.VNXDriver
initiator_auto_registration = True
storage_protocol = fc
选项 storage_protocol 的值可以是 fc 或 iscsi,不区分大小写。
有关多个后端的更多详细信息,请参阅 配置多个存储后端。
所需配置¶
VNX 存储处理器的 IP
指定 SP A 或 SP B IP 以进行连接
san_ip = <IP of VNX Storage Processor>
VNX 登录凭据
有两种方法可以指定凭据。
使用纯文本用户名和密码。
提供纯文本用户名和密码
san_login = <VNX account with administrator role> san_password = <password for VNX account> storage_vnx_authentication_type = global
选项
storage_vnx_authentication_type的有效值是:global(默认)、local和ldap。使用安全文件。
这种方法避免在 cinder 配置文件中以纯文本形式存储密码。提供如下安全文件
storage_vnx_security_file_dir = <path to security file>
请参阅 Unisphere CLI 用户指南或 通过安全文件进行身份验证,了解如何创建安全文件。
Unisphere CLI 的路径
指定 naviseccli 的绝对路径
naviseccli_path = /opt/Navisphere/bin/naviseccli
驱动程序的存储协议
对于 FC 驱动程序,添加以下选项
volume_driver = cinder.volume.drivers.dell_emc.vnx.driver.VNXDriver storage_protocol = fc
对于 iSCSI 驱动程序,添加以下选项
volume_driver = cinder.volume.drivers.dell_emc.vnx.driver.VNXDriver storage_protocol = iscsi
可选配置¶
VNX 池名称¶
指定要管理的池的列表,用逗号分隔。它们应已存在于 VNX 中。
storage_vnx_pool_names = pool 1, pool 2
如果未指定此值,将使用阵列中的所有池。
启动器自动注册
当 initiator_auto_registration 设置为 True 时,驱动程序将在卷附加期间自动将启动器注册到 VNX 阵列的所有工作目标端口(如果启动器尚未注册),前提是 io_port_list 未在 cinder.conf 文件中指定。
如果用户只想使用特定端口注册启动器,而不使用其他端口,则应禁用此功能。
如果将逗号分隔的列表提供给 io_port_list,则驱动程序仅将启动器注册到列表中指定的端口,并且仅返回属于 io_port_list 中目标端口的目标端口,而不是所有目标端口。
FC 端口示例
io_port_list = a-1,B-3
a或B是存储处理器,数字1和3是端口 ID。iSCSI 端口示例
io_port_list = a-1-0,B-3-0
a或B是存储处理器,第一个数字1和3是端口 ID,第二个数字0是虚拟端口 ID
注意
无论它们是否在
io_port_list中,已注册的端口将不会被取消注册,而是简单地被绕过。驱动程序将在启动时引发异常,如果
io_port_list中的端口在 VNX 中不存在。
强制删除存储组中的卷¶
由于 OpenStack 超时问题,某些 available 卷可能仍保留在 VNX 阵列的存储组中。但是,VNX 阵列不允许用户删除处于存储组中的卷。引入了选项 force_delete_lun_in_storagegroup 以允许用户在这种棘手情况下删除 available 卷。
当在后端部分将 force_delete_lun_in_storagegroup 设置为 True 时,驱动程序会将卷移出存储组,然后删除它们,如果用户尝试删除 VNX 阵列上仍保留在存储组中的卷。
选项 force_delete_lun_in_storagegroup 的默认值为 True。
稀疏配置中的超额订阅¶
超额订阅允许所有卷的容量总和(配置容量)大于池的总容量。
后端部分中的 max_over_subscription_ratio 是配置容量与总容量的比率。
选项 max_over_subscription_ratio 的默认值为 20.0,这意味着配置容量可以是总容量的 20 倍。如果此比率的值设置为大于 1.0,则配置容量可以超过总容量。
存储组自动删除¶
对于卷附加,驱动程序在 VNX 上为托管将消耗 VNX 块存储的虚拟机(使用计算节点的 hostname 作为存储组的名称)的每个计算节点创建一个存储组。所有附加到计算节点中虚拟机的卷都将放入存储组中。如果 destroy_empty_storage_group 设置为 True,则驱动程序将在其最后一个卷分离后删除空存储组。为了数据安全,除非 VNX 由单个块存储节点独占管理,否则不建议将 destroy_empty_storage_group=True,因为此行为需要一致的 lock_path 以进行操作同步。
启动器自动注销¶
启用存储组自动删除是此功能的先决条件。如果将 initiator_auto_deregistration 设置为 True,则驱动程序将在删除存储组后注销主机的所有 FC 和 iSCSI 启动器。
FC SAN 自动分区¶
当配置了 ZoneManager 并且在 cinder.conf 中将 zoning_mode 设置为 fabric 时,EMC VNX 驱动程序支持 FC SAN 自动分区。有关 ZoneManager 配置,请参阅 光纤通道区域管理器。
卷号阈值¶
在 VNX 中,系统可以创建的池卷数量有限制。当达到限制时,即使存储池中仍有剩余容量,也无法创建更多池卷。换句话说,如果调度程序将卷创建请求发送到已用完池卷数量限制的后端,则创建将失败。
选项 check_max_pool_luns_threshold 的默认值为 False。当 check_max_pool_luns_threshold=True 时,基于池的后端将检查限制,如果达到限制,将向调度程序报告 0 个可用容量。因此,调度程序将能够跳过这种耗尽池卷数量的基于池的后端。
注意
从 Queens 开始,check_max_pool_luns_threshold 已过时。行为就像将 check_max_pool_luns_threshold 设置为 True 一样。
iSCSI 启动器¶
iscsi_initiators 是 OpenStack 计算和块存储节点上 iSCSI 启动器端口的 IP 地址的字典,这些节点希望通过 iSCSI 连接到 VNX。如果配置此选项,驱动程序将利用此信息在附加卷时为启动器找到可访问的 iSCSI 目标门户。否则,iSCSI 目标门户将以相对随机的方式选择。
注意
此选项仅对 iSCSI 驱动程序有效。
这是一个示例。VNX 将连接 host1 与 10.0.0.1 和 10.0.0.2。它将连接 host2 与 10.0.0.3。
键名(示例中的 host1)应是 hostname 命令的输出。
iscsi_initiators = {"host1":["10.0.0.1", "10.0.0.2"],"host2":["10.0.0.3"]}
默认超时¶
指定 LUN 迁移、LUN 创建等操作的超时时间(分钟)。例如,LUN 迁移通常是一个耗时的操作,具体取决于 LUN 大小和阵列的负载。可以在特定部署中设置上限,以避免不必要的长时间等待。
此选项的默认值为 infinite。
default_timeout = 60
每个存储组的最大 LUN 数量¶
max_luns_per_storage_group 指定存储组中的最大 LUN 数量。默认值为 255。这也是 VNX 支持的最大值。
忽略池满阈值¶
如果将 ignore_pool_full_threshold 设置为 True,驱动程序即使在池的满阈值被达到时也会强制创建 LUN。默认值为 False。
异步迁移的默认值¶
选项 vnx_async_migrate 用于设置后端异步迁移的默认值。如果未在 cinder.conf 中设置此选项,则其默认值为 True,以保持兼容性。如果卷的元数据中未设置 async_migrate,将使用此选项的值。否则,元数据中的 async_migrate 值将覆盖此选项的值。有关更多详细信息,请参阅 异步迁移支持。
额外的规格选项¶
额外的规格用于在块存储中创建的卷类型中,作为卷的首选属性。
块存储调度程序将使用额外的规格来查找适合该卷的后端,并且块存储驱动程序将基于额外规格指定的属性来创建卷。
使用以下命令创建卷类型
$ openstack volume type create demoVolumeType
使用以下命令更新卷类型的额外规格
$ openstack volume type set --property provisioning:type=thin --property thick_provisioning_support='<is> True' demoVolumeType
以下部分描述了 VNX 额外的键。
配置类型¶
键:
provisioning:type可能的值
厚配置卷已完全配置。
运行以下命令以创建一个
thick卷类型$ openstack volume type create ThickVolumeType $ openstack volume type set --property provisioning:type=thick --property thick_provisioning_support='<is> True' ThickVolumeType
精简配置卷是虚拟配置的。
运行以下命令以创建一个
thin卷类型$ openstack volume type create ThinVolumeType $ openstack volume type set --property provisioning:type=thin --property thin_provisioning_support='<is> True' ThinVolumeType
去重卷是
thin并且已启用去重。管理员应前往 VNX 配置系统级别的去重设置。要创建一个去重卷,必须在 VNX 上激活 VNX 去重许可证,并指定deduplication_support=True以让块存储调度程序找到合适的卷后端。运行以下命令以创建一个
deduplicated卷类型$ openstack volume type create DeduplicatedVolumeType $ openstack volume type set --property provisioning:type=deduplicated --property deduplicated_support='<is> True' DeduplicatedVolumeType
compressed卷是
thin并且已启用压缩。管理员应前往 VNX 配置系统级别的压缩设置。要创建一个压缩卷,必须在 VNX 上激活 VNX 压缩许可证,并使用compression_support=True以让块存储调度程序找到一个卷后端。VNX 不支持在压缩卷上创建快照。运行以下命令以创建一个
compressed卷类型$ openstack volume type create CompressedVolumeType $ openstack volume type set --property provisioning:type=compressed --property compression_support='<is> True' CompressedVolumeType
默认值:
thick
注意
provisioning:type 替换了旧的规格键 storagetype:provisioning。后者自 Mitaka 版本发布以来已过时。
存储分层支持¶
键:
storagetype:tiering可能的值
StartHighThenAutoAutoHighestAvailableLowestAvailableNoMovement
默认值:
StartHighThenAuto
VNX 支持完全自动化的存储分层,这需要 VNX 上激活 FAST 许可证。OpenStack 管理员可以使用额外的规格键 storagetype:tiering 来设置卷的分层策略,并使用键 fast_support='<is> True' 让块存储调度程序找到管理具有激活 FAST 许可证的 VNX 的卷后端。以下是额外规格键 storagetype:tiering 支持的五个值
运行以下命令以使用分层策略创建卷类型
$ openstack volume type create ThinVolumeOnAutoTier
$ openstack volume type set --property provisioning:type=thin --property storagetype:tiering=Auto --property fast_support='<is> True' ThinVolumeOnAutoTier
注意
分层策略不能应用于去重卷。去重 LUN 的分层策略与池的设置对齐。
FAST 缓存支持¶
键:
fast_cache_enabled可能的值
TrueFalse
默认值:
False
VNX 具有 FAST 缓存功能,这需要在 VNX 上激活 FAST 缓存许可证。当指定 <is> True 时,将在启用 FAST 缓存的后端上创建卷。
池名称¶
键:
pool_name可能的值:由 cinder 管理的存储池的名称
默认值:无
如果用户想在一个后端管理的多个池中的某个存储池上创建卷,则应首先创建一个具有指定存储池的额外规格的卷类型,然后用户可以使用此卷类型来创建卷。
运行以下命令以创建卷类型
$ openstack volume type create HighPerf
$ openstack volume type set --property pool_name=Pool_02_SASFLASH --property volume_backend_name=vnx_41 HighPerf
过时的额外规格¶
注意
请勿 使用以下过时的额外规格键
storagetype:provisioningstoragetype:pool
强制分离¶
用户可以使用 os-force_detach 操作从所有已连接的主机分离卷。有关更多详细信息,请参阅 https://docs.openstack.org/api-ref/block-storage/v3/?expanded=force-detach-a-volume-detail#force-detach-a-volume
高级功能¶
快照复制¶
元数据键:
snapcopy可能的值
True或trueFalse或false
默认值:False
VNX 驱动程序支持快照复制,这可以加速创建复制卷的过程。
默认情况下,驱动程序将使用 异步迁移支持,这将启动 VNX 迁移会话。当使用快照复制时,驱动程序会创建快照并将其挂载为卷,这两种操作对于大型卷来说即使是瞬时的。
要启用此功能,请在创建克隆卷或从快照创建卷时附加 --metadata snapcopy=True。
$ cinder create --source-volid <source-void> --name "cloned_volume" --metadata snapcopy=True
或者
$ cinder create --snapshot-id <snapshot-id> --name "vol_from_snapshot" --metadata snapcopy=True
新创建的卷是快照复制而不是完全复制。如果需要完全复制,可以使用重定型或迁移将快照复制卷转换为完全复制卷,这可能需要花费一些时间。
可以通过显示其元数据来确定卷是快照复制卷还是完全复制卷。如果元数据中的 snapcopy 是 True 或 true,则该卷是快照复制卷。否则,它是一个完全复制卷。
$ cinder metadata-show <volume>
Constraints
从单个源卷创建的快照复制卷的数量在任何时候都限制为 255 个。
具有快照复制卷的源卷无法删除或迁移。
snapcopy 卷将在主机辅助或存储辅助迁移后更改为完全复制卷。
由于 VNX 限制,snapcopy 卷无法添加到 consisgroup。
高效的非破坏性卷备份¶
块存储中非破坏性卷备份的默认实现效率不高,因为在备份期间会创建一个克隆卷。
高效的备份方法是为卷创建一个快照,并将此快照(VNX 中的挂载点)连接到块存储主机进行卷备份。这样可以消除卷克隆中涉及的迁移时间。
Constraints
如果卷状态为
in-use,则不允许对 snap-copy 卷进行备份创建,因为无法从此卷拍摄快照。
可配置的迁移速率¶
VNX cinder 驱动程序利用 VNX 的 LUN 迁移。LUN 迁移涉及于克隆、迁移、重定型和从快照创建卷。当管理员在卷的 metadata 中设置 migrate_rate 时,VNX 驱动程序可以使用指定的速率启动迁移。 migrate_rate 的可用值是 high、asap、low 和 medium。
以下是将 migrate_rate 设置为 asap 的示例
$ cinder metadata <volume-id> set migrate_rate=asap
设置后,涉及 VNX LUN 迁移的任何 cinder 卷操作都将采用该值作为迁移速率。要将迁移速率恢复为默认值,请按以下方式取消设置元数据
$ cinder metadata <volume-id> unset migrate_rate
注意
当系统处于生产状态时,请勿使用 asap 迁移速率,因为正常的宿主机 I/O 可能会中断。仅在系统离线(没有宿主机级别的 I/O)时才使用 asap。
复制 v2.1 支持¶
Cinder 在 Mitaka 中引入了复制 v2.1 支持,它支持特定后端的回滚和回退复制。在 VNX cinder 驱动程序中,使用 **MirrorView** 设置卷的复制。
要启用此功能,需要在 cinder.conf 中设置配置如下
replication_device = backend_id:<secondary VNX serial number>,
san_ip:192.168.1.2,
san_login:admin,
san_password:admin,
naviseccli_path:/opt/Navisphere/bin/naviseccli,
storage_vnx_authentication_type:global,
storage_vnx_security_file_dir:
当前,仅支持同步模式 **MirrorView**,并且一个卷只能有一个辅助存储系统。因此,驱动程序配置部分中只能有一个 replication_device。
要创建启用了复制的卷,需要创建一个卷类型
$ openstack volume type create replication-type
$ openstack volume type set --property replication_enabled="<is> True" replication-type
然后使用上述卷类型创建卷
$ openstack volume create replication-volume --type replication-type --size 1
支持的操作
创建卷
创建克隆卷
从快照创建卷
回滚卷
$ cinder failover-host --backend_id <secondary VNX serial number> <hostname>
回退卷
$ cinder failover-host --backend_id default <hostname>
需求
2 个 VNX 系统必须位于同一域中。
对于 iSCSI MirrorView,用户需要在 Cinder 中启用复制之前设置 iSCSI 连接。
对于 FC MirrorView,用户需要将 2 个 VNX 系统中的特定 FC 端口一起分区。
两个系统上安装了 MirrorView Sync 启用器(**MirrorView/S**)。
两个 VNX 系统上都启用了写入意图日志。
有关如何配置的更多信息,请参阅:MirrorView-Knowledgebook:-Releases-30-–-33
异步迁移支持¶
VNX Cinder 驱动程序现在支持在卷克隆期间进行异步迁移。
驱动程序现在默认使用异步迁移作为从源创建卷的默认克隆方法。驱动程序将在 VNX 上启动迁移会话后立即返回,这大大减少了可用卷的时间。
要禁用此功能,用户需要执行以下操作之一
在
cinder.conf中为后端配置vnx_async_migrate = False,然后重新启动 Cinder 服务。在从源创建新卷时添加
--metadata async_migrate=False。
请注意,当同时设置两者时,元数据中的 async_migrate 会覆盖选项 vnx_async_migrate。
Constraints
在迁移完成之前,无法从源卷创建快照,这可能会影响后续从同一源卷创建的克隆。典型的受影响用例是,在通过克隆卷 0 创建卷 1 后立即通过克隆卷 1 创建卷 2。为此,建议用户执行以下操作之一
等待第一次克隆完成,或
通过克隆卷 0 而不是卷 1 创建卷 2,或
使用
--metadata async_migrate=False创建卷 1。
最佳实践¶
多路径设置¶
建议启用多路径卷访问以实现强大的数据访问。主要配置包括
在托管计算和
cinder-volume服务的节点上安装multipath-tools、sysfsutils和sg3-utils。请查阅操作系统手册以获取特定于系统分发的安装步骤。对于基于 Red Hat 的发行版,它们应该是device-mapper-multipath、sysfsutils和sg3_utils。在每个 FC/iSCSI 后端的
cinder.conf文件中指定use_multipath_for_image_xfer=true。在
nova.conf文件的libvirt部分中指定volume_use_multipath=True。此选项对于 iSCSI 和 FC 驱动程序都有效。在 Newton 之前的版本中,该选项称为iscsi_use_multipath。
对于 multipath-tools,以下是 EMC 推荐的 /etc/multipath.conf 文件的示例。
user_friendly_names 未在配置中指定,因此它将采用默认值 no。不建议将其设置为 yes,因为它可能会导致 VM 实时迁移等操作失败。
blacklist {
# Skip the files under /dev that are definitely not FC/iSCSI devices
# Different system may need different customization
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z][0-9]*"
devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
# Skip LUNZ device from VNX
device {
vendor "DGC"
product "LUNZ"
}
}
defaults {
user_friendly_names no
flush_on_last_del yes
}
devices {
# Device attributed for EMC CLARiiON and VNX series ALUA
device {
vendor "DGC"
product ".*"
product_blacklist "LUNZ"
path_grouping_policy group_by_prio
path_selector "round-robin 0"
path_checker emc_clariion
features "1 queue_if_no_path"
hardware_handler "1 alua"
prio alua
failback immediate
}
}
注意
当在 OpenStack 中使用多路径时,由于各种问题(Bug 1336683 是一个典型示例),Nova-Compute 节点上可能会出现多路径故障设备。
尚未找到完全避免故障设备的方法。 faulty_device_cleanup.py 在使用 VNX iSCSI 存储时可以缓解此问题。 云管理员可以将脚本部署到所有 Nova-Compute 节点,并使用 CRON 作业定期在每个 Nova-Compute 节点上运行该脚本,以便故障设备不会停留太久。 请参阅: VNX 故障设备清理 以获取详细用法和脚本。
限制和约束¶
iSCSI 端口缓存¶
EMC VNX iSCSI 驱动程序缓存 iSCSI 端口信息,因此用户应在更改 iSCSI 端口配置后重新启动 cinder-volume 服务或等待一段时间(由 cinder.conf 文件中的 periodic_interval 配置),然后才能进行任何卷附加操作。 否则,由于使用了旧的 iSCSI 端口配置,附加可能会失败。
不支持带有快照的卷扩展¶
VNX 不支持扩展带有快照的厚卷。 如果用户尝试扩展带有快照的卷,则卷的状态将更改为 error_extending。
在计算节点上部署 cinder 的限制¶
如果使用 cinder upload-to-image --force True 针对正在使用的卷,则不建议在计算节点上部署驱动程序。 否则,cinder upload-to-image --force True 将终止虚拟机实例对该卷的数据访问。
VNX 中的存储组与主机名¶
当驱动程序注意到没有将主机名作为存储组名称的现有存储组时,它将创建存储组,并将计算节点或块存储节点的注册发起程序添加到存储组中。
如果驱动程序注意到存储组已存在,它将假定已将注册发起程序也放入其中,并跳过上述操作以提高性能。
建议存储管理员不要手动创建存储组,而是依赖驱动程序进行准备。 如果存储管理员需要出于某些特殊要求手动创建存储组,则应将正确的注册发起程序也放入存储组中(否则,后续的卷附加操作将失败)。
EMC 存储辅助卷迁移¶
EMC VNX 驱动程序支持存储辅助卷迁移,当用户使用 cinder migrate --force-host-copy False <volume_id> <host> 或 cinder migrate <volume_id> <host> 启动迁移时,cinder 将尝试利用 VNX 的本机卷迁移功能。
在以下情况下,将不会触发 VNX 存储辅助卷迁移
in-use卷迁移在具有不同存储协议的后端之间,例如 FC 和 iSCSI。卷将在阵列之间迁移。
附录¶
通过安全文件进行身份验证¶
当驱动程序连接到 VNX 系统时,需要 VNX 凭据。 支持 global、local 和 ldap 范围内的凭据。 有两种方法可以提供凭据。
推荐的方法是使用 Navisphere CLI 安全文件来提供凭据,这样可以避免在配置文件中提供纯文本凭据。 以下是如何执行此操作的说明。
找出
cinder-volume进程的 Linux 用户 ID。 假设cinder-volume服务由帐户cinder运行。以 root 用户身份运行
su。在
/etc/passwd文件中,将cinder:x:113:120::/var/lib/cinder:/bin/false更改为cinder:x:113:120::/var/lib/cinder:/bin/bash(此临时更改是为了使步骤 4 起作用)。以
cinder用户的身份将凭据保存到安全文件(假设数组凭据在global范围内为admin/admin)。 在下面的命令中,使用-secfilepath选项指定保存安全文件的位置。# su -l cinder -c \ '/opt/Navisphere/bin/naviseccli -AddUserSecurity -user admin -password admin -scope 0 -secfilepath <location>'
将
cinder:x:113:120::/var/lib/cinder:/bin/bash在/etc/passwd文件中改回cinder:x:113:120::/var/lib/cinder:/bin/false。从
cinder.conf文件(通常是/etc/cinder/cinder.conf文件)中删除凭据选项san_login、san_password和storage_vnx_authentication_type。 添加选项storage_vnx_security_file_dir并将其值设置为上述步骤中生成的安全文件的目录路径。 如果在上述步骤中未使用-secfilepath,则省略此选项。重新启动
cinder-volume服务以验证更改。
使用 VNX 注册 FC 端口¶
仅当 initiator_auto_registration=False 时才需要此配置。
要访问 VNX 存储,如果未启用发起程序自动注册,则计算节点应首先在 VNX 上注册。
要执行 Copy Image to Volume 和 Copy Volume to Image 操作,运行 cinder-volume 服务的节点(块存储节点)也必须在 VNX 上注册。
以下步骤适用于计算节点。 同样也请对块存储节点执行相同的步骤(如果启用了发起程序自动注册,则可以跳过这些步骤)。
假设
20:00:00:24:FF:48:BA:C2:21:00:00:24:FF:48:BA:C2是计算节点的主机名为myhost1且 IP 为10.10.61.1的 FC 发起程序端口名称的 WWN。 在 Unisphere 中注册20:00:00:24:FF:48:BA:C2:21:00:00:24:FF:48:BA:C2登录到 Unisphere,转到 。
刷新并等待直到发起程序
20:00:00:24:FF:48:BA:C2:21:00:00:24:FF:48:BA:C2与 SP 端口A-1出现在。单击 Register 按钮,选择 CLARiiON/VNX 并输入主机名(这是 hostname 命令的输出)和 IP 地址
主机名:
myhost1IP:
10.10.61.1单击 Register。
然后,主机
10.10.61.1也将出现在 下。如果需要,使用更多端口注册
wwn。
使用 VNX 注册 iSCSI 端口¶
仅当 initiator_auto_registration=False 时才需要此配置。
要访问 VNX 存储,如果未启用发起程序自动注册,则计算节点应首先在 VNX 上注册。
要执行 Copy Image to Volume 和 Copy Volume to Image 操作,运行 cinder-volume 服务的节点(块存储节点)也必须在 VNX 上注册。
以下步骤适用于计算节点。 同样也请对块存储节点执行相同的步骤(如果启用了发起程序自动注册,则可以跳过这些步骤)。
在 IP 地址为
10.10.61.1且主机名为myhost1的计算节点上,执行以下命令(假设10.10.61.35是 iSCSI 目标)启动节点上的 iSCSI 发起程序服务
# /etc/init.d/open-iscsi start
发现 VNX 上的 iSCSI 目标端口
# iscsiadm -m discovery -t st -p 10.10.61.35
更改目录到
/etc/iscsi# cd /etc/iscsi
找出节点的
iqn# more initiatorname.iscsi
使用与 SPA 端口对应的目标从计算节点登录到 VNX
# iscsiadm -m node -T iqn.1992-04.com.emc:cx.apm01234567890.a0 -p 10.10.61.35 -l
假设
iqn.1993-08.org.debian:01:1a2b3c4d5f6g是计算节点的发起程序名称。 在 Unisphere 中注册iqn.1993-08.org.debian:01:1a2b3c4d5f6g登录到 Unisphere,转到 。
刷新并等待直到发起程序
iqn.1993-08.org.debian:01:1a2b3c4d5f6g与 SP 端口A-8v0出现在。单击 Register 按钮,选择 CLARiiON/VNX 并输入主机名(这是 hostname 命令的输出)和 IP 地址
主机名:
myhost1IP:
10.10.61.1单击 Register。
然后,主机
10.10.61.1也将出现在 下。
在节点上注销 iSCSI
# iscsiadm -m node -u
使用与 SPB 端口对应的目标从计算节点登录到 VNX
# iscsiadm -m node -T iqn.1992-04.com.emc:cx.apm01234567890.b8 -p 10.10.61.36 -l
在
Unisphere中,使用 SPB 端口注册发起程序。在节点上注销 iSCSI
# iscsiadm -m node -u
如果需要,使用更多端口注册
iqn。