Dell EMC PowerMax 插件

Dell EMC 共享文件系统服务驱动程序框架 (EMCShareDriver) 利用 Dell EMC 存储产品为 OpenStack 提供共享文件系统。Dell EMC 驱动程序是一个基于插件的驱动程序,旨在利用不同的插件来管理不同的 Dell EMC 存储产品。

PowerMax 插件用于管理 PowerMax,以提供共享文件系统。本文档中,使用 PowerMax 插件的 Dell EMC 驱动程序框架被称为 PowerMax 驱动程序。

该驱动程序通过 XMLAPI 和文件命令行在 PowerMax eNAS 上执行操作。每个后端管理 PowerMax 的一个数据搬运器 (Data Mover)。需要配置多个共享文件系统服务后端来管理多个数据搬运器。

需求

  • PowerMax eNAS OE for File 版本 8.1 或更高版本

  • PowerMax Unified 或 File only

  • 应在 PowerMax 上激活以下许可证,用于 File

    • CIFS

    • NFS

    • SnapSure(用于快照)

    • ReplicationV2(用于从快照创建共享)

支持的共享文件系统和操作

该驱动程序支持CIFS和NFS共享。

支持以下操作

  • 创建共享。

  • 删除共享。

  • 允许共享访问。

    请注意以下限制

    • 仅支持 NFS 的 IP 访问类型。

    • 仅支持 CIFS 的用户访问类型。

  • 拒绝共享访问。

  • 创建快照。

  • 删除快照。

  • 从快照创建共享。

虽然通用驱动程序基于附加到 nova VM 的 cinder 卷创建共享文件系统,但 PowerMax 驱动程序使用阵列上的数据搬运器执行类似的操作。

PowerMax 上的预配置

  1. 配置存储池

    嵌入式 NAS 中的存储池与 PowerMax 上的存储组之间存在一一对应关系。通过 Unisphere for PowerMax UI 而不是 eNAS UI 配置用于文件存储的最佳方式。转到 {array} > SYSTEM > FIle,并在 Actions 下单击 PROVISION STORAGE FOR FILE

    注意

    创建新的存储组时,您可以分配服务级别,例如 Diamond,并禁用默认启用的压缩/去重。

    要在 eNAS UI 中获取新创建的存储池,请转到 {Control Station} > Storage > Storage Configuration > Storage Pools,并在 File Storage 下单击 Rescan Storage Systems

    或者在命令行上

    $ nas_diskmark -mark -all -discovery y -monitor y
    

    新的存储池现在应该出现在 eNAS UI 中

  2. 确保您拥有适当的许可证

    $ nas_license -l
    key                 status    value
    site_key            online    xx xx xx xx
    nfs                 online
    cifs                online
    snapsure            online
    replicatorV2        online
    filelevelretention  online
    
  3. 在数据搬运器上启用 CIFS 服务。

    确保在 PowerMax 驱动程序将要管理的 Data Mover 上启用了 CIFS 服务。

    要启动 CIFS 服务,请使用以下命令

    $ server_setup <movername> -Protocol cifs -option start [=<n>]
      # movername = name of the Data Mover
      # n = number of threads for CIFS users
    

    注意

    如果数据搬运器上有 1 GB 内存,则默认值为 96 个线程。但是,如果内存超过 1 GB,则默认线程数为 256。

    要检查 CIFS 服务状态,请使用以下命令

    $ server_cifs <movername> | head
      # movername = name of the Data Mover
    

    命令输出将显示启动的 CIFS 线程数。

  4. 数据搬运器上的 NTP 设置。

    PowerMax 驱动程序仅支持与关联了 Active Directory 安全服务的共享网络一起创建 CIFS 共享。

    创建 CIFS 共享需要数据搬运器上的时间与 Active Directory 域同步,以便 CIFS 服务器可以加入域。否则,使用此安全服务创建共享时域加入将失败。有一个限制,即使对于不同的租户和不同的共享网络,所用域的时间也应同步。时间差异应小于 5 分钟。

    注意

    如果存在时钟偏差,您可能会看到以下错误“本地机器和远程机器未同步。Kerberos 协议要求参与者在同一 5 分钟内同步”。要修复此错误,您必须确保 eNas 控制器主机和域控制器的時間在 5 分钟之内。您必须是 root 用户才能更改 eNas 控制站的日期。还要检查您的时区是否一致。

    我们建议将 NTP 服务器设置为数据搬运器和安全服务中使用的域中的相同公共 NTP 服务器,以确保时间在各处同步。

    使用以下命令检查数据搬运器上的日期和时间

    $ server_date <movername>
      # movername = name of the Data Mover
    

    使用以下命令设置数据搬运器上的 NTP 服务器

    $ server_date <movername> timesvc start ntp <host> [<host> ...]
      # movername = name of the Data Mover
      # host = IP address of the time server host
    

    注意

    主机必须运行 NTP 协议。仅允许 4 个主机条目。

  5. 配置数据搬运器上的用户映射。

    在使用 PowerMax 驱动程序创建 CIFS 共享之前,您必须选择将 Windows SID 映射到 UID 和 GID 的方法。DELL EMC 建议在单协议(CIFS)环境中,默认在 PowerMax eNAS 上启用意图映射器 (usermapper)。

    要检查用户映射器状态,请使用以下命令语法

    $ server_usermapper <movername>
      # movername = name of the Data Mover
    

    如果用户映射器未启动,请使用以下命令启动用户映射器

    $ server_usermapper <movername> -enable
      # movername = name of the Data Mover
    

    对于多协议环境,请参阅 EMC 支持站点 上的配置 PowerMax eNAS 用户映射,以获取更多信息。

  6. 配置网络连接。

    找到具有访问共享网络权限的数据搬运器上的网络设备(NIC 上的物理端口)。

    要检查 eNAS UI 上的设备列表,请转到 {Control Station} > Settings > Network > Devices

    或者在命令行上

    $ server_sysconfig server_2 -pci
    server_2 : PCI DEVICES:
    
    On Board:
      VendorID=0x1120 DeviceID=0x1B00  Controller
        0:  scsi-0  IRQ: 32
    
        0:  scsi-16  IRQ: 33
    
        0:  scsi-32  IRQ: 34
    
        0:  scsi-48  IRQ: 35
    
      Broadcom 10 Gigabit Ethernet Controller
        0:  fxg-3-0  IRQ: 36
        speed=10000 duplex=full txflowctl=disable rxflowctl=disable
        Link: Up
    
         0:  fxg-3-1  IRQ: 38
        speed=10000 duplex=full txflowctl=disable rxflowctl=disable
        Link: Down
    

后端配置

注意

以下已弃用的标签将在 T 版本中删除

  • emc_nas_server_container

  • emc_nas_pool_names

  • emc_interface_ports

需要在 /etc/manila/manila.conf 文件中配置以下参数,用于 PowerMax 驱动程序

emc_share_backend = powermax
emc_nas_server = <IP address>
emc_nas_password = <password>
emc_nas_login = <user>
driver_handles_share_servers = True
powermax_server_container = <Data Mover name>
powermax_share_data_pools = <Comma separated pool names>
share_driver = manila.share.drivers.dell_emc.driver.EMCShareDriver
powermax_ethernet_ports = <Comma separated ports list>
emc_ssl_cert_verify = True
emc_ssl_cert_path = <path to cert>
share_backend_name = <Backend>
  • emc_share_backend

    插件名称。将其设置为 PowerMax 驱动程序的 powermax。其他值为 powerscalevnxunity

  • emc_nas_server

    要管理的 PowerMax 系统的控制站 IP 地址。

  • emc_nas_passwordemc_nas_login

    用于向 PowerMax 系统提供凭据的字段。仅支持 PowerMax File 的本地用户。

  • driver_handles_share_servers

    PowerMax 仅支持 True,其中共享驱动程序处理共享服务器的配置和管理。

  • powermax_server_container

    用于服务共享的数据搬运器名称。

  • powermax_share_data_pools

    逗号分隔的列表,指定此后端要使用的池的名称。如果系统上的所有存储池都可以使用,则不要设置此选项。支持通配符。

    示例:pool_1, pool_*, *

  • powermax_ethernet_ports (可选)

    逗号分隔的列表,指定可以用于共享服务器接口的数据搬运器的端口(设备)。如果数据搬运器上的所有端口都可以使用,则不要设置此选项。支持通配符。

    示例:fxg-9-0, fxg-_*, *

  • emc_ssl_cert_verify (可选)

    默认情况下为 True,设置为 False 不建议

  • emc_ssl_cert_path (可选)

    如果 emc_ssl_cert_verify 为 True(推荐配置),则必须设置此路径。有关更多详细信息,请参阅 SSL Support 部分。

  • share_backend_name

    给定驱动程序实现的后端名称。

需要重新启动 manila-share 服务才能使配置更改生效。

SSL 支持

  1. 在 eNas 控制站上运行以下命令,以显示活动 CS 的 CA 证书。

    $ /nas/sbin/nas_ca_certificate -display
    

    警告

    如果发生故障转移,此证书将与辅助 CS 不同,因此必须使用不同的证书。

  2. 复制内容并在您的 manila 主机上创建一个带有 .pem 扩展名的文件。

    -----BEGIN CERTIFICATE-----
    the cert contents are here
    -----END CERTIFICATE-----
    
  3. 通过运行以下命令并检查输出以验证证书

    $ openssl x509 -in test.pem -text -noout
    
    Certificate:
     Data:
         Version: 3 (0x2)
         Serial Number: xxxxxx
     Signature Algorithm: sha1WithRSAEncryption
         Issuer: O=VNX Certificate Authority, CN=xxx
         Validity
             Not Before: Feb 27 16:02:41 2019 GMT
             Not After : Mar  4 16:02:41 2024 GMT
         Subject: O=VNX Certificate Authority, CN=xxxxxx
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
                 Public-Key: (2048 bit)
                 Modulus:
                     xxxxxx
                 Exponent: xxxxxx
         X509v3 extensions:
             X509v3 Subject Key Identifier:
                 xxxxxx
             X509v3 Authority Key Identifier:
                 keyid:xxxxx
                 DirName:/O=VNX Certificate Authority/CN=xxxxxx
                 serial:xxxxx
    
             X509v3 Basic Constraints:
                 CA:TRUE
             X509v3 Subject Alternative Name:
                 DNS:xxxxxx, DNS:xxxxxx.localdomain, DNS:xxxxxxx, DNS:xxxxx
     Signature Algorithm: sha1WithRSAEncryption
             xxxxxx
    
  4. 由于需要 capath 而不是 cafile,因此将文件复制到新的目录或现有目录(其中存在其他 .pem 文件)。

  5. 在目录上运行以下命令

    $ c_rehash $PATH_TO_CERTS
    
  6. 使用 .pem 存在的目录更新 manila.conf。

    emc_ssl_cert_path = /path_to_certs/
    
  7. 重新启动 manila 服务。

快照支持

默认情况下禁用快照支持,因此为了允许共享类型的快照,必须将 snapshot_support 额外规范设置为 True。默认情况下也禁用从快照创建共享,因此如果需要此功能,则必须将 create_share_from_snapshot_support 也设置为 True。

对于新的共享类型

$ manila type-create --snapshot_support True \
                     --create_share_from_snapshot_support True \
                     ${share_type_name} True

对于现有的共享类型

$ manila type-key ${share_type_name} \
                  set snapshot_support=True
$ manila type-key ${share_type_name} \
                  set create_share_from_snapshot_support=True

从 snapshot_support=True 的共享创建快照

$ manila snapshot-create ${source_share_name} --name ${target_snapshot_name}

从 create_share_from_snapshot_support=True 的快照创建目标共享

$ manila create cifs 3 --name ${target_share_name} \
                       --share-network ${share_network} \
                       --share-type ${share_type_name} \
                       --metadata source=snapshot \
                       --snapshot-id ${snapshot_id}

IPv6 支持

PowerMax Manila 驱动程序的 IPv6 支持是在 Rocky 版本中引入的。该功能分为两部分

  1. 驱动程序能够管理 Neutron IPv6 网络中的共享或快照。

  2. 驱动程序可以使用其 IPv6 地址连接 PowerMax 管理界面。

IPv6 支持的预配置

需要在 /etc/manila/manila.conf 文件中配置以下参数,用于 PowerMax 驱动程序

network_plugin_ipv6_enabled = True

如果您想使用 IPv6 地址连接到 eNAS 控制器,请在 /etc/manila/manila.conf 中指定地址

emc_nas_server = <IPv6 address>

限制

PowerMax 驱动程序具有以下限制

  • 仅支持 driver_handles_share_servers 等于 True。

  • 仅支持 NFS 的 IP 访问类型。

  • 仅支持 CIFS 的用户访问类型。

  • 仅支持 FLAT 网络和 VLAN 网络。

  • VLAN 网络支持有限。用于创建共享网络的不同 VLAN 中的 neutron 子网不能具有重叠的地址空间。否则,PowerMax 可能无法与 VLAN 中的主机通信。要为不同的 VLAN 创建具有相同子网地址的共享,请使用不同的数据搬运器。

  • Active Directory 安全服务是唯一支持的安全服务类型,并且需要创建 CIFS 共享。

  • 每个共享网络只能配置一个安全服务。

  • 即使对于不同的租户,active_directory 安全服务的域名也应唯一。

  • 数据搬运器和安全服务中使用的 Active Directory 域上的时间应同步(时间差异应小于 10 分钟)。我们建议在数据搬运器和 Active Directory 域上使用相同的 NTP 服务器。

  • 在 eNAS 上,快照存储在 SavVols 中。eNAS 系统允许创建和扩展 SavVol 使用的空间,直到系统中所有 SavVol 使用的空间总和超过系统可用总空间的默认 20%。如果达到 20% 的阈值,eNAS 将生成警报。继续创建快照将导致旧快照失效(并且快照数据将被放弃)。存储管理员可以手动更改限制百分比值,具体取决于存储需求。我们建议管理员配置 SavVol 使用情况的通知。有关更多信息,请参阅 EMC 支持站点 上的使用 eNAS SnapSure 文档。

  • eNAS 对虚拟数据搬运器、文件系统、共享和检查点的总数有限制。虚拟数据搬运器 (VDM) 由 eNAS 驱动程序在 eNAS 上创建,作为共享文件系统服务共享服务器。同样,文件系统由 VDM 创建、挂载并通过 CIFS 或 NFS 协议导出,作为共享文件系统服务共享。eNAS 检查点作为共享文件系统服务快照。有关限制和相应配置配额,请参阅 EMC 支持站点 上的 NAS 支持矩阵文档。

其他说明

  • eNAS nas_quotas 不应与 OpenStack manila 配额混淆。前者编辑挂载文件系统的配额,并显示文件系统级别(按用户、组或树)或配额树级别(按用户或组)的配额和磁盘使用情况的列表。nas_quotas 还打开和关闭配额,并清除文件系统、配额树或数据搬运器的配额记录。有关更多信息,请参阅 EMC 支持站点 上的 PowerMax eNAS CLI 参考指南。

    $ manila quota-show --tenant <project_id> --user <user_id>
    +-----------------------+-------+
    | Property              | Value |
    +-----------------------+-------+
    | share_groups          | 50    |
    | gigabytes             | 1000  |
    | snapshot_gigabytes    | 1000  |
    | share_group_snapshots | 50    |
    | snapshots             | 50    |
    | shares                | 50    |
    | share_networks        | 10    |
    +-----------------------+-------+
    

驱动程序选项

此驱动程序特定的配置选项

Dell EMC PowerMax 共享驱动程序配置选项的说明

配置选项 = 默认值

描述

[DEFAULT]

powermax_ethernet_ports = None

(List) 用逗号分隔的端口列表,可用于共享服务器接口。列表成员可以使用类 Unix 风格的 glob 表达式。

powermax_server_container = None

(字符串) 托管 NAS 服务器的数据搬运器。

powermax_share_data_pools = None

(List) 用逗号分隔的池列表,可用于持久化共享数据。