华为卷驱动

华为卷驱动可用于在支持 iSCSI 和光纤通道协议的 OpenStack 块存储驱动程序中为虚拟机 (VM) 提供逻辑卷和快照等功能。

版本映射

下表描述了块存储驱动程序、华为存储系统和 OpenStack 之间的版本映射

块存储驱动程序和华为存储系统之间的版本映射

描述

存储系统版本

创建、删除、扩展、附加、分离、管理和取消管理卷

使用分配的存储池创建卷

使用分配的磁盘类型创建卷

创建、删除和更新一致性组

将镜像复制到卷

将卷复制到镜像

自动分区

SmartThin

卷迁移

复制 V2.1

创建、删除、管理、取消管理和备份快照

创建和删除 cgsnapshot

OceanStor T 系列 V2R2 C00/C20/C30

OceanStor V3 V3R1C10/C20 V3R2C10 V3R3C00/C10/C20

OceanStor 2200V3 V300R005C00

OceanStor 2600V3 V300R005C00

OceanStor 18500/18800 V1R1C00/C20/C30 V3R3C00

OceanStor Dorado V300R001C00

OceanStor V3 V300R006C00

OceanStor 2200V3 V300R006C00

OceanStor 2600V3 V300R006C00

克隆卷

从快照创建卷

重定型

SmartQoS

SmartTier

SmartCache

Thick

OceanStor T 系列 V2R2 C00/C20/C30

OceanStor V3 V3R1C10/C20 V3R2C10 V3R3C00/C10/C20

OceanStor 2200V3 V300R005C00

OceanStor 2600V3 V300R005C00

OceanStor 18500/18800V1R1C00/C20/C30

OceanStor V3 V300R006C00

OceanStor 2200V3 V300R006C00

OceanStor 2600V3 V300R006C00

SmartPartition

OceanStor T 系列 V2R2 C00/C20/C30

OceanStor V3 V3R1C10/C20 V3R2C10 V3R3C00/C10/C20

OceanStor 2600V3 V300R005C00

OceanStor 18500/18800V1R1C00/C20/C30

OceanStor V3 V300R006C00

OceanStor 2600V3 V300R006C00

Hypermetro

Hypermetro 一致性组

OceanStor V3 V3R3C00/C10/C20

OceanStor 2600V3 V3R5C00

OceanStor 18500/18800 V3R3C00

OceanStor Dorado V300R001C00

OceanStor V3 V300R006C00

OceanStor 2600V3 V300R006C00

卷驱动程序配置

本节介绍如何为 iSCSI 存储或光纤通道存储配置华为卷驱动程序。

先决条件

从镜像创建卷时,请安装 multipath 工具,并在每个后端部分或在 [backend_defaults] 部分中添加以下配置键,作为 /etc/cinder/cinder.conf 文件中所有后端的通用配置

use_multipath_for_image_xfer = True
enforce_multipath_for_image_xfer = True

要配置卷驱动程序,请按照以下步骤操作

  1. /etc/cinder 中,创建一个华为定制的驱动程序配置文件。文件格式为 XML。

  2. 根据站点要求更改驱动程序配置文件的名称,例如 cinder_huawei_conf.xml

  3. 配置驱动程序配置文件中的参数。

    每个产品在 Storage xml 块下的 Product 参数都有其自己的值。以下是包含适当 Product 参数的完整 xml 文件

      <?xml version="1.0" encoding="UTF-8"?>
         <config>
            <Storage>
               <Product>PRODUCT</Product>
               <Protocol>PROTOCOL</Protocol>
               <UserName>xxxxxxxx</UserName>
               <UserPassword>xxxxxxxx</UserPassword>
               <RestURL>https://x.x.x.x:8088/deviceManager/rest/</RestURL>
            </Storage>
            <LUN>
               <LUNType>xxx</LUNType>
               <WriteType>xxx</WriteType>
               <Prefetch Type="xxx" Value="xxx" />
               <StoragePool>xxx</StoragePool>
            </LUN>
            <iSCSI>
               <DefaultTargetIP>x.x.x.x</DefaultTargetIP>
               <Initiator Name="xxxxxxxx" TargetIP="x.x.x.x"/>
            </iSCSI>
            <Host OSType="Linux" HostIP="x.x.x.x, x.x.x.x"/>
         </config>
    
    The corresponding ``Product`` values for each product are as below:
    
    • 对于 T 系列 V2

      <Product>TV2</Product>
      
    • 对于 V3

      <Product>V3</Product>
      
    • 对于 OceanStor 18000 系列

      <Product>18000</Product>
      
    • 对于 OceanStor Dorado 系列

      <Product>Dorado</Product>
      

    要使用的 Protocol 值是 iSCSI 的 iSCSI,光纤通道的是 FC,如下所示

    # For iSCSI
    <Protocol>iSCSI</Protocol>
    
    # For Fibre channel
    <Protocol>FC</Protocol>
    

    注意

    有关配置文件中参数的详细信息,请参阅 配置文件参数 部分。

  4. 配置 cinder.conf 文件。

    /etc/cinder/cinder.conf[default] 块中,启用 VOLUME_BACKEND

    enabled_backends = VOLUME_BACKEND
    

    添加一个新的块 [VOLUME_BACKEND],并添加以下内容

    [VOLUME_BACKEND]
    volume_driver = VOLUME_DRIVER
    cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
    volume_backend_name = Huawei_Storage
    
    • volume_driver 指示加载的驱动程序。

    • cinder_huawei_conf_file 指示指定的华为定制配置文件。

    • volume_backend_name 指示后端的名称。

    /etc/cinder/cinder.conf 的目标后端块中,添加有关 Hypermetro 的远程设备信息。

    [VOLUME_BACKEND]
    volume_driver = VOLUME_DRIVER
    cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
    volume_backend_name = Huawei_Storage
    metro_san_user = xxx
    metro_san_password = xxx
    metro_domain_name = xxx
    metro_san_address = https://x.x.x.x:8088/deviceManager/rest/
    metro_storage_pools = xxx
    

    /etc/cinder/cinder.conf 的目标后端块中,添加有关 Replication 的远程设备信息。

    [VOLUME_BACKEND]
    volume_driver = VOLUME_DRIVER
    cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
    volume_backend_name = Huawei_Storage
    replication_device =
        backend_id: xxx,
        storage_pool :xxx,
        san_address: https://x.x.x.x:8088/deviceManager/rest/,
        san_user: xxx,
        san_password: xxx,
        iscsi_default_target_ip: x.x.x.x
    

    注意

    默认情况下,HypermetroReplication 的值为 None。有关配置文件中参数的详细信息,请参阅 配置文件参数 部分。

    每个产品的 volume-driver 值如下

    # For iSCSI
    volume_driver = cinder.volume.drivers.huawei.huawei_driver.HuaweiISCSIDriver
    
    # For FC
    volume_driver = cinder.volume.drivers.huawei.huawei_driver.HuaweiFCDriver
    
  5. 运行 service cinder-volume restart 命令以重新启动块存储服务。

配置 iSCSI 多路径

要配置 iSCSI 多路径,请按照以下步骤操作

  1. 在华为定制的驱动程序配置文件中添加端口组设置,并配置启动器所需的端口组名称。

    <iSCSI>
       <DefaultTargetIP>x.x.x.x</DefaultTargetIP>
       <Initiator Name="xxxxxx" TargetPortGroup="xxxx" />
    </iSCSI>
    
  2. 启用计算服务模块的多路径切换。

    /etc/nova/nova.conf[libvirt] 中添加 volume_use_multipath = True

  3. 运行 service nova-compute restart 命令以重新启动 nova-compute 服务。

配置 FC 多路径

要配置 FC 多路径,请按照以下步骤操作

  1. 启用计算服务模块的多路径切换。

    /etc/nova/nova.conf[libvirt] 中添加 volume_use_multipath = True

  2. 运行 service nova-compute restart 命令以重新启动 nova-compute 服务。

配置 CHAP 和 ALUA

在公共网络上,其 IP 地址与存储系统 iSCSI 主机端口位于同一网络段上的任何应用程序服务器都可以访问存储系统并在其中执行读写操作。这会对存储系统的data安全构成风险。为了确保存储系统的访问安全,您可以配置 CHAP 身份验证来控制应用程序服务器对存储系统的访问。

按照以下方式调整驱动程序配置文件

<Initiator ALUA="xxx" CHAPinfo="xxx" Name="xxx" TargetIP="x.x.x.x"/>

ALUA 指示多路径模式。0 表示禁用 ALUA。1 表示启用 ALUACHAPinfo 指示由 CHAP 身份验证的用户名和密码。格式为 mmuser; mm-user@storage。用户名和密码用分号 ( ;) 分隔。

配置多个存储

多个存储系统配置示例

enabled_backends = v3_fc, 18000_fc
[v3_fc]
volume_driver = cinder.volume.drivers.huawei.huawei_driver.HuaweiFCDriver
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_v3_fc.xml
volume_backend_name = huawei_v3_fc
[18000_fc]
volume_driver = cinder.volume.drivers.huawei.huawei_driver.HuaweiFCDriver
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf_18000_fc.xml
volume_backend_name = huawei_18000_fc

配置文件参数

本节介绍华为卷驱动程序的强制和可选配置文件参数。

强制参数

参数

默认值

描述

适用范围

Product

-

存储产品的类型。可能的值是 TV218000V3

全部

协议

-

连接协议的类型。可能的值是 'iSCSI''FC'

全部

RestURL

-

REST 接口的访问地址,https://x.x.x.x/devicemanager/rest/。值 x.x.x.x 表示管理 IP 地址。OceanStor 18000 使用上述设置,V2 和 V3 要求您添加端口号 8088,例如 https://x.x.x.x:8088/deviceManager/rest/。如果需要配置多个 RestURL,请用分号 (;) 分隔它们。

全部

UserName

-

存储管理员的用户名。

全部

UserPassword

-

存储管理员的密码。

全部

StoragePool

-

要使用的存储池的名称。如果需要配置多个存储池,请用分号 ( ;) 分隔它们。

全部

注意

StoragePool 的值不能包含中文字符。

可选参数

参数

默认值

描述

适用范围

LUNType

Thick

要创建的 LUN 的类型。该值为 ThickThin。Dorado 系列仅支持 Thin LUN。

全部

WriteType

1

缓存写入类型,可能的值是:1 (回写)、2 (直写) 和 3 (强制回写)。

全部

LUNcopyWaitInterval

5

启用 LUN 复制后,插件频繁查询复制进度。您可以设置一个值来指定查询间隔。

全部

Timeout

432000

等待存储设备的 LUN 复制完成的超时间隔。单位为秒。

全部

Initiator Name

-

计算节点启动器的名称。

全部

Initiator TargetIP

-

为计算节点提供的 iSCSI 端口的 IP 地址。

全部

Initiator TargetPortGroup

-

为计算节点提供的 iSCSI 目标端口的 IP 地址。

全部

DefaultTargetIP

-

为计算节点提供的 iSCSI 目标端口的默认 IP 地址。

全部

OSType

Linux

Nova 计算节点主机的操作系统。

全部

HostIP

-

Nova 计算节点主机的 IP 地址。

全部

metro_san_user

-

hypermetro 远程设备的存储管理员用户名。

V3R3/2600 V3R5/18000 V3R3

metro_san_password

-

hypermetro 远程设备的存储管理员密码。

V3R3/2600 V3R5/18000 V3R3

metro_domain_name

-

在 ISM 上配置的 Hypermetro 域名。

V3R3/2600 V3R5/18000 V3R3

metro_san_address

-

REST 接口的访问地址,https://x.x.x.x/devicemanager/rest/。值 x.x.x.x 表示管理 IP 地址。

V3R3/2600 V3R5/18000 V3R3

metro_storage_pools

-

hypermetro 的远程存储池。

V3R3/2600 V3R5/18000 V3R3

backend_id

-

目标设备 ID。

全部

storage_pool

-

复制故障转移时目标后端的池名称。

全部

san_address

-

REST 接口的访问地址,https://x.x.x.x/devicemanager/rest/。值 x.x.x.x 表示管理 IP 地址。

全部

san_user

-

复制远程设备的存储管理员用户名。

全部

san_password

-

复制远程设备的存储管理员密码。

全部

iscsi_default_target_ip

-

远程事务端口 IP。

全部

重要提示

Initiator NameInitiator TargetIPInitiator TargetPortGroupISCSI 参数,因此不适用于 FC

以下是在 cinder.conf 中可以设置的华为驱动程序特定选项

华为配置选项的说明

配置选项 = 默认值

描述

cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml

(字符串) Cinder 华为驱动程序的配置文件。

hypermetro_devices = None

(字符串) hypermetro 将使用的远程设备。

metro_domain_name = None

(字符串) 远程 metro 设备的域名。

metro_san_address = None

(字符串) 远程 metro 设备的请求 URL。

metro_san_password = None

(字符串) 远程 metro 设备的 san 密码。

metro_san_user = None

(字符串) 远程 metro 设备的 san 用户。

metro_storage_pools = None

(字符串) 远程 metro 设备的池名称。