Fujitsu ETERNUS DX driver¶
Fujitsu ETERNUS DX driver 为 ETERNUS DX 系列提供 FC 和 iSCSI 支持。
该驱动程序通过与 ETERNUS DX 通信来执行卷操作。它使用 Python 中的 CIM 客户端 PyWBEM 通过 HTTP 执行 CIM 操作。
您可以在 ETERNUS DX 中指定 RAID 组和稀薄配置池 (TPP) 作为存储池。
系统要求¶
支持的存储
ETERNUS AF150 S3
ETERNUS AF250 S3/AF250 S2/AF250
ETERNUS AF650 S3/AF650 S2/AF650
ETERNUS DX200F
ETERNUS DX60 S5/S4/S3
ETERNUS DX100 S5/S4/S3
ETERNUS DX200 S5/S4/S3
ETERNUS DX500 S5/S4/S3
ETERNUS DX600 S5/S4/S3
ETERNUS DX8700 S3/DX8900 S4/S3
需求
需要固件版本 V10L30 或更高版本。
不支持使用 ETERNUS Multipath Driver 的多路径环境。
需要高级复制功能许可证才能创建快照、从快照创建卷或克隆卷。
支持的操作¶
创建、删除、附加和分离卷。
创建、列出和删除卷快照。
从快照创建卷。
将镜像复制到卷。
将卷复制到镜像。
克隆卷。
扩展卷。
获取卷统计信息。
迁移卷。
将卷恢复到快照。
准备工作¶
软件包安装¶
为您的发行版安装 python-pywbem 软件包。
ETERNUS DX 设置¶
使用 ETERNUS Web GUI 或 ETERNUS CLI 执行以下步骤。
注意
以下操作需要具有
Admin角色的帐户。有关详细操作,请参阅 ETERNUS DX 系列的 ETERNUS Web GUI 用户指南或 ETERNUS CLI 用户指南。
创建用于与 cinder 控制器通信的软件角色的帐户。
启用 ETERNUS DX 的 SMI-S。
注册高级复制功能许可证并配置复制表大小。
为卷创建存储池。
(可选) 如果您想在不同的存储池上创建快照,请为快照创建存储池。
创建 Snap Data Pool Volume (SDPV) 以启用 Snap Data Pool (SDP) 用于
创建 快照。配置 Block Storage 服务要使用的存储端口。
将这些存储端口设置为 CA 模式。
启用这些存储端口的主机亲和性设置。
(启用主机亲和性设置的 ETERNUS CLI 命令)
CLI> set fc-parameters -host-affinity enable -port <CM#><CA#><Port> CLI> set iscsi-parameters -host-affinity enable -port <CM#><CA#><Port>
注意
将 <CM#> 和 <CA#> 替换为端口所在的控制器外壳的名称。
将 <Port> 替换为端口号。
确保 cinder 控制器和 ETERNUS DX 的 MNT 端口之间存在 LAN 连接,以及计算节点和 ETERNUS DX 的 CA 端口之间存在 SAN 连接。
(可选) 如果您想使用公钥通过 SSH 连接到 ETERNUS DX 存储,请生成 SSH 密钥,并将
eternus.ietf文件上传到 ETERNUS 存储。有关如何设置公钥的信息,请参阅 ETERNUS Web GUI 手册。
$ ssh-keygen -t rsa -N "" -f ./eternus -m PEM $ ssh-keygen -e -f ./eternus.pub > ./eternus.ietf
如果意外删除了创建的公钥 (eternus.ietf),请使用以下命令重新创建密钥。
$ ssh-keygen -e -f /root/.ssh/eternus.pub > ./eternus.ietf
配置¶
将以下条目添加到
/etc/cinder/cinder.confFC 条目
volume_driver = cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver cinder_eternus_config_file = /etc/cinder/eternus_dx.xml
iSCSI 条目
volume_driver = cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver cinder_eternus_config_file = /etc/cinder/eternus_dx.xml
如果未描述
cinder_eternus_config_file,则参数设置为默认值/etc/cinder/cinder_fujitsu_eternus_dx.xml。创建驱动程序配置文件。
在
cinder.conf中指定的cinder_eternus_config_file文件路径中创建驱动程序配置文件,并将以下参数添加到文件中FC 配置
<?xml version='1.0' encoding='UTF-8'?> <FUJITSU> <EternusIP>0.0.0.0</EternusIP> <EternusPort>5988</EternusPort> <EternusUser>smisuser</EternusUser> <EternusPassword>smispassword</EternusPassword> <EternusPool>raid5_0001</EternusPool> <EternusPool>tpp_0001</EternusPool> <EternusPool>raid_0002</EternusPool> <EternusSnapPool>raid5_0001</EternusSnapPool> </FUJITSU>
iSCSI 配置
<?xml version='1.0' encoding='UTF-8'?> <FUJITSU> <EternusIP>0.0.0.0</EternusIP> <EternusPort>5988</EternusPort> <EternusUser>smisuser</EternusUser> <EternusPassword>smispassword</EternusPassword> <EternusPool>raid5_0001</EternusPool> <EternusPool>tpp_0001</EternusPool> <EternusPool>raid_0002</EternusPool> <EternusSnapPool>raid5_0001</EternusSnapPool> <EternusISCSIIP>1.1.1.1</EternusISCSIIP> <EternusISCSIIP>1.1.1.2</EternusISCSIIP> <EternusISCSIIP>1.1.1.3</EternusISCSIIP> <EternusISCSIIP>1.1.1.4</EternusISCSIIP> </FUJITSU>
其中
EternusIPETRENUS 设备的 SMI-S 连接的 IP 地址。
使用设备的 MNT 端口的 IP 地址。
EternusPortETERNUS 设备的 SMI-S 连接端口的端口号。
EternusUser用于连接
EternusIP的sofware角色的用户名。EternusPassword在
EternusIP上的EternusUser的相应密码。EternusPool(允许多次设置)来自
ETERNUS DX 设置的卷的存储池名称。使用设备中的池 RAID 组池名称或 TPP 池名称。
EternusSnapPool(允许多次设置)来自
ETERNUS DX 设置的快照的存储池名称。使用设备中的池 RAID 组池名称或 TPP 池名称。
如果您没有为快照创建不同的池,请使用与
EternusPool相同的值。EternusISCSIIP(允许多次设置)ETERNUS DX 的 iSCSI 连接 IP 地址。
注意
如果您在同一个存储池上创建卷和快照,则可以为
EternusPool和EternusSnapPool指定相同的 RAID 组池名称或 TPP 池名称。对于
EternusPool,如果指定了多个池,cinder-scheduler 将从多个池中选择一个来创建卷。
配置示例¶
编辑
cinder.conf[DEFAULT] enabled_backends = DXFC, DXISCSI [DXFC] volume_driver = cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver cinder_eternus_config_file = /etc/cinder/fc.xml volume_backend_name = FC fujitsu_passwordless = False [DXISCSI] volume_driver = cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_iscsi.FJDXISCSIDriver cinder_eternus_config_file = /etc/cinder/iscsi.xml volume_backend_name = ISCSI fujitsu_passwordless = True fujitsu_private_key_path = /etc/cinder/eternus
创建驱动程序配置文件
fc.xml和iscsi.xml。创建卷类型并将额外规范设置为该类型
$ cinder type-create DX_FC $ cinder type-key DX_FX set volume_backend_name=FC $ cinder type-create DX_ISCSI $ cinder type-key DX_ISCSI set volume_backend_name=ISCSI
通过发出这些命令,卷类型
DX_FC与FC相关联,并且类型DX_ISCSI与ISCSI相关联。
ETERNUS OpenStack VolumeDriver 支持的功能¶
迁移卷¶
将卷移动到不同的存储池。
ETERNUS AF/DX 功能
创建迁移目标卷/删除迁移源卷。
设置迁移卷的访问路径/删除迁移源卷的迁移访问路径。
使用创建卷、删除卷、附加卷和分离卷。
Cinder 操作
将迁移源卷中的数据复制到迁移目标卷。
注意
必须在迁移的卷中指定主机信息。
输入格式如下
主机名@后端名#池名
对于以下环境或设置,请为主机指定 test.localhost@Backend1#PoolA。
PoolA 是在
/etc/cinder/cinder_fujitsu_eternus_dx.xml中指定的池。
$ hostname test.localhost $ cat /etc/cinder/cinder.conf (snip) [Backend1] volume_driver=cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver cinder_eternus_config_file = /etc/cinder/cinder_fujitsu_eternus_dx.xml volume_backend_name=volume_backend_name1
警告
卷迁移存在一些限制
您无法迁移具有快照的卷。
您无法使用驱动程序辅助迁移将卷移动到或从不使用 ETERNUS OpenStack 卷驱动程序的后端。
支持功能的补充信息¶
QoS 设置¶
与 ETERNUS AF/DX 的卷 QoS 功能链接的 QoS 设置可用。
可以为每个卷设置带宽 (BWS) 的上限。无法设置下限。
如果 ETERNUS AF/DX 的固件版本早于 V11L30,则上限已设置,而对于 V11L30 及更高版本,则为总/读/写 IOPS/吞吐量分别设置。
以下过程显示如何设置 QoS。
创建 QoS 定义。
ETERNUS AF/DX 的固件版本早于 V11L30
$ cinder qos-create <qos_name> maxBWS=xx
对于 <qos_name>,指定要创建的定义的名称。
对于 maxBWS,以 MB 为单位指定一个值。
ETERNUS AF/DX 的固件版本为 V11L30 或更高版本
$ cinder qos-create <qos_name> read_iops_sec=15000 write_iops_sec=12600 total_iops_sec=15000 read_bytes_sec=800 write_bytes_sec=700 total_bytes_sec=800
如果未使用现有的卷类型,请创建一个新的卷类型。
$ cinder type-create <volume_type_name>
对于 <volume_type_name>,指定要创建的卷类型的名称。
将 QoS 定义与卷类型关联。
$ cinder qos-associate <qos_specs> <volume_type_id>
对于 <qos_specs>,指定创建的 QoS 定义的 ID。
对于 <volume_type_id>,指定创建的卷类型的 ID。
注意事项
有关取消 QoS 设置的步骤,请参阅“OpenStack 命令行界面参考”。
ETERNUS AF/DX 的 QoS 模式必须提前启用。有关详细信息,请参阅 ETERNUS Web GUI 手册。
如果 ETERNUS AF/DX 的固件版本早于 V11L30,则对于 ETERNUS AF/DX 的卷 QoS 设置,上限使用预定义的选项设置。
因此,请将 ETERNUS AF/DX 侧的上限设置为不超过指定 maxBWS 的最大值。
下表显示了可以在 ETERNUS AF/DX 侧设置的上限和示例设置。有关 ETERNUS AF/DX 的卷 QoS 设置的详细信息,请参阅 ETERNUS Web GUI 手册。
ETERNUS AF/DX 的设置
无限制
15000 IOPS (800MB/s)
12600 IOPS (700MB/s)
10020 IOPS (600MB/s)
7500 IOPS (500MB/s)
5040 IOPS (400MB/s)
3000 IOPS (300MB/s)
1020 IOPS (200MB/s)
780 IOPS (100MB/s)
600 IOPS (70MB/s)
420 IOPS (40MB/s)
300 IOPS (25MB/s)
240 IOPS (20MB/s)
180 IOPS (15MB/s)
120 IOPS (10MB/s)
60 IOPS (5MB/s)
当指定 maxBWS=750 时
在 ETERNUS AF/DX 侧设置“12600 IOPS (700MB/s)”。
当指定 maxBWS=900 时
在 ETERNUS AF/DX 侧设置“15000 IOPS (800MB/s)”。
在创建 QoS 定义时,如果指定了除 maxBWS/read_iops_sec/write_iops_sec/total_iops_sec/read_bytes_sec /write_bytes_sec/total_bytes_sec 之外的选项,将输出警告日志并继续 QoS 信息设置。
对于固件版本早于 V11L30 的 ETERNUS AF/DX,如果为 Create Volume 指定了设置了 read_iops_sec/ write_iops_sec/total_iops_sec/read_bytes_sec/write_bytes_sec/total_bytes_sec 的 QoS 定义卷类型,将输出警告日志并终止该过程。
对于固件版本为 V11L30 或更高的 ETERNUS AF/DX,如果为 Create Volume 指定了设置了 maxBWS 的 QoS 定义卷类型,将输出警告日志并终止该过程。
在将 ETERNUS AF/DX 的固件从 V11L10/V11L2x 升级到更新版本后,固件升级前创建的 QoS 定义相关的卷类型将无法使用。设置 QoS 定义并创建一个新的卷类型。
当将 ETERNUS AF/DX 的固件降级到 V11L10/V11L2x 时,请勿使用与降级前 QoS 定义关联的卷类型,因为 QoS 定义的行为可能与降级后的行为不同。对于该卷,创建一个与任何 QoS 定义不关联的卷类型,并在降级后创建一个与 QoS 定义关联的卷类型。
如果 Create Volume 因错误而终止,Cinder 可能不会调用 Delete Volume。
如果创建了卷但 QoS 设置失败,ETERNUS OpenStack VolumeDriver 将终止该过程,以防止创建的卷留在 ETERNUS AF/DX 中。如果卷创建失败,则该过程将以错误终止。
快照创建目标池的指定¶
可以指定 RAID 组或稀薄配置池 (TPP) 作为快照创建目标池。在固件版本早于或等于 V10L60 的 ETERNUS AF/DX 中,无法将稀薄配置池 (TPP) 用作快照创建目标池。
可以指定多个快照创建目标池。
按照驱动程序配置文件中编写的顺序搜索可以创建快照的池,如果找到一个,则在该池中创建快照。
注意事项
如果创建目标池是 RAID 组,则无法创建超过 128 个快照。因此,要在 RAID 组中创建超过 128 个快照,必须将多个 RAID 组指定为快照创建目标池。
在创建快照时,Cinder Scheduler 会检查源卷所在池的容量。如果此池容量不足,即使指定的
EternusSnapPool快照池具有足够的容量,也可能导致快照创建失败。如果指定了多个快照创建目标池,则必须指定不同的池用于卷创建目标池 (
EternusPool和EternusSnapPool可以多次指定,但不能指定相同的池名称)。如果指定了相同的池名称并且同时发出了创建多个卷和多个快照的指令,RAID 组中的逻辑卷数将达到 128,并且该操作可能会失败。为了解决无法扩展具有快照的卷的问题,引入了一个参数
fujitsu_use_cli_copy。fujitsu_use_cli_copy的默认值为False。如果将
fujitsu_use_cli_copy设置为True,则使用 CLI 方法而不是 SMI-S 方法创建快照,从而允许扩展源卷。$ cat /etc/cinder/cinder.conf (snip) [Backend1] volume_driver=cinder.volume.drivers.fujitsu.eternus_dx.eternus_dx_fc.FJDXFCDriver cinder_eternus_config_file = /etc/cinder/cinder_fujitsu_eternus_dx.xml volume_backend_name = volume_backend_name1 fujitsu_use_cli_copy = True
请注意,当目标池的类型为 RAID 组时,
fujitsu_use_cli_copy不能设置为 True。