Hitachi NAS (HNAS) 驱动

HNAS 驱动为 OpenStack 提供 NFS 共享文件系统。

需求

  • Hitachi NAS 平台型号 3080、3090、4040、4060、4080 和 4100。

  • HNAS/SMU 软件版本为 12.2 或更高版本。

  • HNAS 配置和管理实用程序,用于创建存储池(span)和 EVS。

    • GUI (SMU)。

    • SSC CLI。

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

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

支持以下操作

  • 创建共享。

  • 删除共享。

  • 允许共享访问。

  • 拒绝共享访问。

  • 创建快照。

  • 删除快照。

  • 从快照创建共享。

  • 将共享恢复到快照。

  • 扩展共享。

  • 管理共享。

  • 取消管理共享。

  • 缩小共享。

  • 挂载快照。

  • 允许访问快照。

  • 拒绝访问快照。

  • 管理快照。

  • 取消管理快照。

驱动程序选项

此表包含特定于共享驱动程序的配置选项。

HDS NAS 共享驱动程序配置选项说明

配置选项 = 默认值

描述

[DEFAULT]

hitachi_hnas_admin_network_ip = None

(字符串) 指定用于在 Admin 网络中挂载共享的 IP。

hitachi_hnas_allow_cifs_snapshot_while_mounted = False

(布尔值) 默认情况下,当共享有客户端连接时,不允许获取 CIFS 快照,因为无法保证所有文件的时点一致性副本。启用此选项可能会导致 CIFS 共享上的不一致快照。

hitachi_hnas_cluster_admin_ip0 = None

(字符串) 集群管理节点的 IP。仅在 HNAS 多节点集群中使用。

hitachi_hnas_driver_helper = manila.share.drivers.hitachi.hnas.ssh.HNASSSHBackend

(字符串) 用于驱动程序助手的 Python 类。

hitachi_hnas_evs_id = None

(整数) 指定此后端分配给哪个 EVS。

hitachi_hnas_evs_ip = None

(字符串) 指定用于挂载共享的 IP。

hitachi_hnas_file_system_name = None

(字符串) 指定用于创建共享的文件系统名称。

hitachi_hnas_ip = None

(字符串) HNAS 管理接口 IP,用于 Manila 控制器和 HNAS 之间的通信。

hitachi_hnas_password = None

(字符串) HNAS 用户密码。仅在未提供私钥时才需要。

hitachi_hnas_ssh_private_key = None

(字符串) 用于连接到 HNAS 的 RSA/DSA 私钥值。仅在未提供密码时才需要。

hitachi_hnas_stalled_job_timeout = 30

(整数) 在放弃之前等待 HNAS 停滞作业的时间(以秒为单位)。

hitachi_hnas_user = None

(字符串) HNAS 用户名 Base64 字符串,用于执行创建文件系统和网络接口等任务。

[hnas1]

share_backend_name = None

(字符串) 给定驱动程序实现的后端名称。

share_driver = manila.share.drivers.generic.GenericShareDriver

(字符串) 用于创建共享的驱动程序。

OpenStack 部署上的预配置

  1. 安装带有 manila 的 OpenStack 环境。请参阅 OpenStack 安装指南

  2. 配置 OpenStack 网络,使其能够到达 HNAS 管理接口和 HNAS EVS 数据接口。

    注意

    在 HNAS 驱动程序使用的驱动程序模式下(DHSS = False),驱动程序不处理网络配置,由管理员配置它。

    • 配置 manila-share 节点网络的网络,以便通过管理网络到达 HNAS 管理接口。

    • 配置 Compute 和 Networking 节点的网络,以便通过数据网络到达 HNAS EVS 数据接口。

    • 网络架构示例

      Example networking scenario
    • 编辑 /etc/neutron/plugins/ml2/ml2_conf.ini 文件,并在各自的标签中更新以下设置。如果您使用 linuxbridge,请在 linuxbridge 部分更新桥接映射

    重要提示

    必须通过管理网络从共享文件系统节点访问 HNAS 管理接口,同时通过数据网络(例如通过 Neutron flat 网络)从 OpenStack Cloud 访问所选的 EVS 数据接口。

    [ml2]
    type_drivers = flat,vlan,vxlan,gre
    mechanism_drivers = openvswitch
    [ml2_type_flat]
    flat_networks = physnet1,physnet2
    [ml2_type_vlan]
    network_vlan_ranges = physnet1:1000:1500,physnet2:2000:2500
    [ovs]
    bridge_mappings = physnet1:br-ex,physnet2:br-eth1
    

    如果 Compute 节点上存在,您可能需要在另一个文件中重复上述最后一行,它位于:/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini

    • 如果 neutron 代理使用 openvswitch,则在网络节点上运行

      # ifconfig eth1 0
      # ovs-vsctl add-br br-eth1
      # ovs-vsctl add-port br-eth1 eth1
      # ifconfig eth1 up
      
    • 重新启动所有 neutron 进程。

  3. 在 OpenStack 中创建数据 HNAS 网络

    • 列出可用的项目

      $ openstack project list
      
    • 为给定的项目 (DEMO) 创建网络,提供项目名称、网络的名称、虚拟网络实现的物理网络的名称以及物理机制的类型

      $ openstack network create --project DEMO \
        --provider-network-type flat \
        --provider-physical-network physnet2 hnas_network
      
    • 可选:列出可用的网络

      $ openstack network list
      
    • 为同一个项目 (DEMO) 创建子网,该子网的网关 IP、子网的名称、之前创建的网络名称以及子网的 CIDR

      $ openstack subnet create --project DEMO --gateway GATEWAY \
        --subnet-range SUBNET_CIDR --network NETWORK HNAS_SUBNET
      
    • 可选:列出可用的子网

      $ openstack subnet list
      
    • 将子网接口添加到路由器,提供路由器名称和之前创建的子网名称

      $ openstack router add subnet SUBNET ROUTER
      

HNAS 上的预配置

  1. 在 HNAS 上创建文件系统。请参阅 Hitachi HNAS 参考

    重要提示

    确保文件系统未创建为复制目标。有关更多信息,请参阅官方 HNAS 管理指南。

  2. 准备 HNAS EVS 网络。

    • 在 HNAS 中创建到项目网络的路由

      $ console-context --evs <EVS_ID_IN_USE> route-net-add \
        --gateway <FLAT_NETWORK_GATEWAY> <TENANT_PRIVATE_NETWORK>
      

      重要提示

      确保已启用多租户,并为每个 EVS 配置路由。

      $ console-context --evs 3 route-net-add --gateway 192.168.1.1 \
      10.0.0.0/24
      
  3. 配置 CIFS 安全性。

    • 在使用 HNAS 驱动程序的 CIFS 共享之前,请确保在后端配置安全服务。有关详细信息,请参阅 Hitachi HNAS 参考

后端配置

  1. 配置 HNAS 驱动程序。

    • 根据您的环境配置 HNAS 驱动程序。以下示例显示了一个最小的 HNAS 驱动程序配置

      [DEFAULT]
      enabled_share_backends = hnas1
      enabled_share_protocols = NFS,CIFS
      
      [hnas1]
      share_backend_name = HNAS1
      share_driver = manila.share.drivers.hitachi.hnas.driver.HitachiHNASDriver
      driver_handles_share_servers = False
      hitachi_hnas_ip = 172.24.44.15
      hitachi_hnas_user = supervisor
      hitachi_hnas_password = supervisor
      hitachi_hnas_evs_id = 1
      hitachi_hnas_evs_ip = 10.0.1.20
      hitachi_hnas_file_system_name = FS-Manila
      hitachi_hnas_cifs_snapshot_while_mounted = True
      

      注意

      参数 hds_hnas_cifs_snapshot_while_mounted 允许在挂载 CIFS 共享时获取快照。默认情况下,此参数设置为 False,这可以防止在共享挂载或使用时获取快照。

  2. 可选。HNAS 多后端配置。

    • 使用逗号分隔的后端名称更新 enabled_share_backends 标志。

    • 根据以下示例为每个后端添加一个部分

      [DEFAULT]
      enabled_share_backends = hnas1,hnas2
      enabled_share_protocols = NFS,CIFS
      
      [hnas1]
      share_backend_name = HNAS1
      share_driver = manila.share.drivers.hitachi.hnas.driver.HitachiHNASDriver
      driver_handles_share_servers = False
      hitachi_hnas_ip = 172.24.44.15
      hitachi_hnas_user = supervisor
      hitachi_hnas_password = supervisor
      hitachi_hnas_evs_id = 1
      hitachi_hnas_evs_ip = 10.0.1.20
      hitachi_hnas_file_system_name = FS-Manila1
      hitachi_hnas_cifs_snapshot_while_mounted = True
      
      [hnas2]
      share_backend_name = HNAS2
      share_driver = manila.share.drivers.hitachi.hnas.driver.HitachiHNASDriver
      driver_handles_share_servers = False
      hitachi_hnas_ip = 172.24.44.15
      hitachi_hnas_user = supervisor
      hitachi_hnas_password = supervisor
      hitachi_hnas_evs_id = 1
      hitachi_hnas_evs_ip = 10.0.1.20
      hitachi_hnas_file_system_name = FS-Manila2
      hitachi_hnas_cifs_snapshot_while_mounted = True
      
  3. 禁用 HNAS 共享类型配置的 DHSS

    注意

    共享文件系统要求共享类型包含 driver_handles_share_servers 额外规范。这可确保共享将在支持请求的 driver_handles_share_servers 功能的后端上创建。

    $ manila type-create hitachi False
    
  4. 可选:添加用于启用 HNAS 支持的功能的额外规范

    • 这些命令将启用 HNAS 中支持的各种快照相关功能。

      $ manila type-key hitachi set snapshot_support=True
      $ manila type-key hitachi set mount_snapshot_support=True
      $ manila type-key hitachi set revert_to_snapshot_support=True
      $ manila type-key hitachi set create_share_from_snapshot_support=True
      
    • 要指定在多个后端设置的情况下将由共享创建的 HNAS 后端,请为每个共享类型添加一个额外的规范以匹配特定的后端。因此,可以指定共享文件系统服务在创建共享时将使用哪个后端。

      $ manila type-key hitachi set share_backend_name=hnas1
      $ manila type-key hitachi2 set share_backend_name=hnas2
      
  5. 重新启动所有共享文件系统服务 (manila-sharemanila-schedulermanila-api)。

共享迁移

允许从 HNAS 或迁移到 HNAS 的共享需要额外的配置。在 OpenStack 部署中,manila-share 节点需要额外的连接到 EVS 数据接口。此外,请确保将 hitachi_hnas_admin_network_ip 添加到配置中。这应与 data_node_access_ips 的值匹配。有关更深入的文档,请参阅 共享迁移文档

管理和取消管理共享

共享文件系统具有管理和取消管理共享的能力。如果存储中存在共享但不在 OpenStack 中,您可以管理该共享并将其用作共享文件系统共享。管理员必须确保导出位于 /shares 文件夹下。HNAS 驱动程序使用虚拟卷 (V-VOL) 创建共享。只有 V-VOL 共享才能由驱动程序使用,并且 V-VOL 必须具有配额限制。如果 NFS 导出是普通的 FS 导出,则无法在共享文件系统中将其使用。取消管理操作默认情况下不会中断,直到修改访问规则为止。

要**管理**共享,请使用

$ manila manage [--name <name>] [--description <description>]
                [--share_type <share-type>]
                [--driver_options [<key=value> [<key=value> ...]]]
                [--public]
                <service_host> <protocol> <export_path>

其中

参数

描述

service_host

Manila 主机、后端和共享名称。例如,ubuntu@hitachi1#hsp1。可以使用命令列出可用的主机:manila pool-list(仅限管理员)。

协议

要管理的共享协议,例如 NFS 或 CIFS。

export_path

共享导出路径。

对于 NFS:10.0.0.1:/shares/share_name

对于 CIFS:\\10.0.0.1\share_name

注意

对于 NFS 导出,export_path **必须** 在目标地址后包含 /shares/。直接引用共享名称或在其他路径下引用将失败。

注意

对于 CIFS 导出,虽然共享将在后端的 /shares/ 文件夹下创建,但导出路径中只需要共享名称。还应注意的是,反斜杠 \ 字符在 Linux 终端中输入时必须转义。

有关更多详细信息,请参阅 manila help manage

要**取消管理**共享,请使用

$ manila unmanage <share>

其中

参数

描述

share

要取消管理的共享的 ID 或名称。可以使用 manila list 命令获取共享列表。

管理和取消管理快照

共享文件系统服务还具有管理共享快照的能力。只要快照目录位于 /snapshots/share_ID 中,就可以管理现有的 HNAS 快照。通过共享文件系统服务创建的新快照也根据此特定的文件夹结构创建。

要**管理**快照,请使用

$ manila snapshot-manage [--name <name>] [--description <description>]
                         [--driver_options [<key=value> [<key=value> ...]]]
                         <share> <provider_location>

其中

参数

描述

share

要管理的共享的 ID 或名称。可以使用 manila list 命令获取共享列表。

provider_location

后端上的快照位置,例如 /snapshots/share_ID/snapshot_ID

--driver_options

驱动程序相关的配置,例如 size=10

注意

对于 NFS 和 CIFS 共享,强制性的 provider_location 参数使用相同的语法。这仅适用于快照管理。

注意

对于 HNAS 驱动程序,--driver_options 参数 size 是**必需的**。管理员需要事先知道要管理的快照的大小。

注意

如果共享类型中的 mount_snapshot_support=True 额外规范已设置,则 HNAS 驱动程序在管理快照时会自动创建导出(如果尚不存在)。

要**取消管理**快照,请使用

$ manila snapshot-unmanage <snapshot>

其中

参数

描述

snapshot

快照的名称或 ID。

其他说明

  • HNAS 对 EVS、文件系统、虚拟卷和并发 SSC 连接的数量有一些限制。请查阅您的系统手册规范。

  • 共享和快照是稀疏配置的。仅向共享文件系统报告 HNAS 中实际使用的空间。此外,快照最初不会占用 HNAS 中的任何空间,它仅存储共享和快照之间的差异,因此当共享数据发生更改时才会增长。

  • 管理员应管理项目的配额 (manila quota-update) 以控制后端的用法。

  • 在还原到快照操作后,需要重新挂载共享。