HPE 3PAR OpenStack Manila 驱动程序

HPE 3PAR 驱动程序使用 HPE 3PAR 的文件 Persona 功能,为 OpenStack 提供 NFS 和 CIFS 共享文件系统。

有关 HPE 3PAR OpenStack Manila 驱动程序的信息,请参阅 内容包页面

HPE 3PAR 文件 Persona 软件套件概念和术语

该软件套件包含以下托管对象

  • 文件配置组 (FPG)

  • 虚拟文件服务器 (VFS)

  • 文件存储

  • 文件共享

文件 Persona 软件套件建立在 HPE 3PAR StoreServ 的弹性网状活动架构之上,并受益于 HPE 3PAR 存储基础,包括宽条化逻辑磁盘和自治 通用 配置 (CPG)。CPG 可以在文件和块之间共享,以创建文件共享或逻辑单元号 (LUN),从而实现真正的融合。

文件 配置 (FPG) 是 HPE 知识产权自适应文件系统的实例。它控制文件的存储和检索方式。每个 FPG 透明地由一个或多个虚拟卷 (VV) 构建,是文件 Persona 软件套件的复制和灾难恢复单元。一个节点对最多支持 16 个 FPG。

虚拟 文件 服务器 (VFS) 在概念上类似于服务器。因此,它向客户端呈现虚拟 IP 地址,参与用户身份验证服务,并且可以具有诸如用户/组配额管理和防病毒策略之类的属性。一个节点对最多支持 16 个 VFS,每个 FPG 一个。

文件 存储 是 VFS 和 FPG 的切片,可以在此切片上拍摄快照、执行容量配额管理以及自定义防病毒扫描服务策略。一个节点对最多支持 256 个文件存储,每个 VFS 16 个文件存储。

文件 共享 是通过 SMB、NFS 和对象访问 API 向客户端提供数据访问的机制,受应用于它们的共享权限的约束。可以为文件存储创建多个文件共享,以及在文件存储内的不同目录级别。

支持的共享文件系统

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

支持的操作

  • 创建共享。

    – 在访问规则允许访问之前,共享不可访问。

  • 删除共享。

  • 允许共享访问。

    请注意以下限制

    – 需要 IP 访问规则才能访问 NFS 共享。

    – 不允许对 NFS 共享使用用户访问规则。

    – 需要用户访问规则才能访问 SMB 共享。

    – SMB 共享需要文件 Persona 本地用户才能进行用户访问。

    – 共享是读/写 (并受 ACL 约束)。

  • 拒绝共享访问。

  • 创建快照。

  • 删除快照。

  • 从快照创建共享。

  • 扩展共享。

  • 缩小共享。

  • 共享网络。

可以将 HPE 3PAR 文件 Persona 驱动程序配置为使用或不使用共享网络。在使用共享网络时,HPE 3PAR 驱动程序会在后端 FPG (VFS) 上分配一个 FSIP,以匹配共享网络的子网和分段 ID。与共享网络关联的安全组将被忽略。

不支持的操作

  • 管理和取消管理

  • 在 Mitaka 中添加了 Manila 实验性 API(一致性组、复制和迁移),但 HPE 3PAR 文件 Persona 驱动程序尚未实现它们。

需求

在运行 Manila 共享服务的 OpenStack 主机上

  • 来自 PyPI 的 python-3parclient 版本 4.2.0 或更高版本。

在 HPE 3PAR 阵列上

  • HPE 3PAR 操作系统软件版本 3.2.1 MU3 或更高版本。

  • 阵列类和硬件配置必须支持文件 Persona。

HPE 3PAR StoreServ 上的预配置

以下 HPE 3PAR CLI 命令演示了如何设置 HPE 3PAR StoreServ 以使用 OpenStack Manila 的文件 Persona。必须在 HPE 3PAR 存储上初始化并启动 HPE 3PAR 文件 Persona。

cli% startfs 0:2:1 1:2:1
cli% setfs nodeip -ipaddress 10.10.10.11 -subnet 255.255.240.0 0
cli% setfs nodeip -ipaddress 10.10.10.12 -subnet 255.255.240.0 1
cli% setfs dns 192.168.8.80,127.127.5.50 foo.com,bar.com
cli% setfs gw 10.10.10.10
  • 必须为共享文件系统服务创建一个文件配置组 (FPG)。

    cli% createfpg examplecpg examplefpg 18T
    
  • 必须在 FPG 上创建一个虚拟文件服务器 (VFS)。

  • 必须使用适当的共享导出 IP 地址配置 VFS。

    cli% createvfs -fpg examplefpg 10.10.10.101 255.255.0.0 examplevfs
    
  • 对于 CIFS (SMB) 共享,需要 Administrators 组中的本地用户。

    cli% createfsgroup fsusers
    cli% createfsuser –passwd <password> -enable true -grplist
    Users,Administrators –primarygroup fsusers fsadmin
    
  • 必须启用并启动带有 HTTP 和/或 HTTPS 的 WSAPI。

    cli% setwsapi -https enable
    cli% startwsapi
    

HPE 3PAR 共享文件系统驱动程序配置

  • 在 OpenStack 块存储系统上安装 python-3parclient python 包

    $ pip install 'python-3parclient>=4.0,<5.0'
    
  • Manila 配置文件

    Manila 配置文件(通常为 /etc/manila/manila.conf)定义并配置 Manila 驱动程序和后端。更新配置文件后,必须重新启动 Manila 共享服务才能使更改生效。

  • 启用共享协议

    要启用共享协议,可以使用 manila.conf 文件 DEFAULT 部分中的 enabled_share_protocols 设置来指定受支持协议的可选列表。默认值为 NFS, CIFS,允许 HPE 3PAR 支持的两种协议(NFS 和 SMB)。在 Manila 使用术语 CIFS 时,HPE 3PAR 使用术语 SMB。如果只想提供一种类型的共享(例如,仅 NFS),或者想显式避免引入其他驱动程序将来可以添加的其他协议,请使用 enabled_share_protocols 选项。

  • 启用共享后端

    在 Manila 配置文件的 [DEFAULT] 部分中,使用 enabled_share_backends 选项指定要启用的一个或多个后端配置节的名称。要启用多个后端,请使用逗号分隔的列表。

    注意

    使用后端的配置节名称(可能与 share_backend_name 值不同)

  • 配置每个后端

    对于每个后端,一个配置节定义驱动程序和后端选项。这些包括通用的 Manila 选项以及特定于驱动程序的选项。以下 驱动程序 选项 部分描述了需要在 Manila 配置文件中为 HPE 3PAR 驱动程序配置的参数。

驱动程序选项

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

HPE 3PAR 共享驱动程序配置选项说明

配置选项 = 默认值

描述

[DEFAULT]

hpe3par_api_url =

(字符串) 3PAR WSAPI 服务器 URL,例如 https://<3par ip>:8080/api/v1

hpe3par_cifs_admin_access_domain = LOCAL_CLUSTER

(字符串) CIFS 管理用户的的文件系统域。

hpe3par_cifs_admin_access_password =

(字符串) CIFS 的文件系统管理员密码。

hpe3par_cifs_admin_access_username =

(字符串) CIFS 的文件系统管理员用户名。

hpe3par_debug = False

(布尔值) 启用到 3PAR 的 HTTP 调试

hpe3par_fpg = None

(未知) 要使用的文件配置组 (FPG)

hpe3par_fstore_per_share = False

(布尔值) 每个共享使用一个文件存储

hpe3par_password =

(字符串) 3PAR 密码,用于 hpe3par_username 中指定的用户

hpe3par_require_cifs_ip = False

(布尔值) 需要 IP 访问规则才能访问 CIFS(除了用户之外)

hpe3par_san_ip =

(字符串) SAN 控制器的 IP 地址

hpe3par_san_login =

(字符串) SAN 控制器的用户名

hpe3par_san_password =

(字符串) SAN 控制器的密码

hpe3par_san_ssh_port = 22

(端口号) SAN 上使用的 SSH 端口

hpe3par_share_mount_path = /mnt/

(字符串) 删除嵌套文件树时将安装共享的路径。

hpe3par_username =

(字符串) 具有“编辑”角色的 3PAR 用户名

HPE 3PAR Manila 驱动程序配置示例

以下参数显示了 manila.conf 文件的示例子集,该文件配置了两个后端和相关的 [DEFAULT] 选项。实际配置将包括其他 [DEFAULT] 选项和本文档中未讨论的其他部分。在本例中,后端使用同一阵列上的不同 FPG

[DEFAULT]
enabled_share_backends = HPE1,HPE2
enabled_share_protocols = NFS,CIFS
default_share_type = default
[HPE1]
share_backend_name = HPE3PAR1
share_driver = manila.share.drivers.hpe.hpe_3par_driver.HPE3ParShareDriver
driver_handles_share_servers = False
max_over_subscription_ratio = 1
hpe3par_fpg = examplefpg,10.10.10.101
hpe3par_san_ip = 10.20.30.40
hpe3par_api_url = https://10.20.30.40:8080/api/v1
hpe3par_username = <username>
hpe3par_password = <password>
hpe3par_san_login = <san_username>
hpe3par_san_password = <san_password>
hpe3par_debug = False
hpe3par_cifs_admin_access_username = <fs_admin>
hpe3par_cifs_admin_access_password = <fs_password>
[HPE2]
share_backend_name = HPE3PAR2
share_driver = manila.share.drivers.hpe.hpe_3par_driver.HPE3ParShareDriver
driver_handles_share_servers = False
max_over_subscription_ratio = 1
hpe3par_fpg = examplefpg2,10.10.10.102
hpe3par_san_ip = 10.20.30.40
hpe3par_api_url = https://10.20.30.40:8080/api/v1
hpe3par_username = <username>
hpe3par_password = <password>
hpe3par_san_login = <san_username>
hpe3par_san_password = <san_password>
hpe3par_debug = False
hpe3par_cifs_admin_access_username = <fs_admin>
hpe3par_cifs_admin_access_password = <password>

网络方法

存储阵列(SSH/CLI 和 WSAPI)与 Manila 主机之间的网络连接对于共享管理是必需的。客户端与 VFS 之间的网络连接对于安装和使用共享是必需的。这包括

  • 从客户端到外部网络的路由。

  • 为客户端分配外部 IP 地址,例如浮动 IP。

  • 正确配置共享文件系统服务主机网络以进行 IP 转发。

  • 正确配置 VFS 网络以进行客户端子网。

  • 如果适用,配置网络分段。

在 OpenStack Kilo 版本中,HPE 3PAR 驱动程序不支持共享网络。客户端访问 HPE 3PAR 共享需要外部网络访问(OpenStack 外部),并在 Manila 之外设置和配置。

在 OpenStack Liberty 版本中,HPE 3PAR 驱动程序可以与或不使用共享网络运行。配置选项 driver_handles_share_servers``( ``TrueFalse ) 指示是否可以使用共享网络。设置为 False 时,HPE 3PAR 驱动程序的行为如 Kilo 中所述。设置为 True 时,共享网络的子网、分段 ID 和 IP 地址范围用于在 HPE 3PAR 上分配 FSIP。每个 VFS 的 FSIP 限制为四个。为了使客户端通过此 FSIP 与共享通信,客户端必须使用共享网络的子网和分段 ID 访问外部网络。

例如,客户端必须路由到具有外部访问权限的 neutron 提供程序网络。HPE 3PAR 共享网络支持需要 Neutron 网络。支持扁平和 VLAN 提供程序网络,但 HPE 3PAR 驱动程序不支持共享网络安全组。

共享访问

在允许访问之前安装的共享可能显示为空的只读共享。授予访问权限后,必须重新安装共享。

  • NFS 需要 IP 访问规则。

  • SMB 共享需要用户访问规则。

有了适当的访问规则,共享访问不限于 OpenStack 环境。通过 Manila 或直接在 HPE 3PAR CLI 中添加的访问规则可用于允许访问堆栈外部的客户端。HPE 3PAR VFS/FSIP 设置确定 HPE 3PAR 共享访问可见的子网。

  • IP 访问规则

    要在 horizon UI 中允许对共享的 IP 访问,请在项目|管理计算|共享视图中找到该共享。使用 管理 规则 操作添加规则。选择 IP 作为访问类型,并在 访问到 框中输入客户端的外部 IP 地址(例如,浮动 IP)。

    您还可以使用命令行在 horizon UI 中使用以下命令允许对共享的 IP 访问

    $ manila access-allow <share-id> ip <ip-address>
    
  • 用户访问规则

    要在 horizon UI 中允许对共享的用户访问,请在项目|管理计算|共享视图中找到该共享。使用 管理 规则 操作添加规则。选择用户作为访问类型,并在 访问到 框中输入用户名。

    您还可以使用命令行在 horizon UI 中使用以下命令允许对共享的用户访问

    $ manila access-allow <share-id> user <user name>
    

    用户名必须是 HPE 3PAR 用户。

    共享访问不同于文件系统权限,例如文件和文件夹上的 ACL。如果用户想读取文件,则用户必须至少具有共享上的读取权限以及授予其对文件或文件夹的读取权限的 ACL。即使具有完全控制的共享访问权限,由于文件夹 ACL 的额外限制,也不意味着每个用户都可以执行所有操作。

    要修改文件或文件夹 ACL,请允许访问 Administrators 组中的 HPE 3PAR 文件 Persona 本地用户,并使用该用户的凭据连接到共享。然后,使用适当的机制修改 ACL 或权限,以允许与默认提供的访问权限不同的访问权限。

共享类型

创建共享时,可以指定共享类型以确定将在何处以及如何创建共享。如果未指定共享类型,则共享文件系统服务配置文件的 default_share_type 设置将用于设置。

Manila share 类型是在 OpenStack 中创建 share 时可以选择的一种类型或标签。这些类型可以在 Admin horizon UI 或使用命令行创建,如下所示

$ manila --os-username admin --os-tenant-name demo type-create
–is_public false <name> false

其中的 <name> 是新 share 类型的名称。末尾的 False 指定 driver_handles_share_servers=False。share 类型中的 driver_handles_share_servers 设置需要与 manila.conf 文件中配置的后端设置匹配。

is_public 用于指示此 share 类型是否适用于所有租户,或者将被分配给特定的租户。

--os-username admin --os-tenant-name demo 仅在您的环境变量未指定所需用户和租户时才需要。

对于非公共 share 类型,使用 Manila type-access-add 将 share 类型分配给租户。

  • 使用 share 类型来强制使用 share 网络

    共享文件系统服务要求 share 类型包含 driver_handles_share_servers extra-spec。这可确保 share 在支持请求的 driver_handles_share_servers(share 网络)功能的后端上创建。从 Liberty 版本开始,同时支持 TrueFalse

    share 类型中的 driver_handles_share_servers 设置必须与后端配置中的设置匹配。

  • 使用 share 类型按名称选择后端

    管理员可以选择性地指定特定的 share 类型与单个后端(或后端组)显式关联,方法是在 extra spec share_backend_name 中包含与后端配置中的 share_backend_name 选项指定的名称匹配的内容。

    在创建 share 时未选择 share 类型时,将使用默认 share 类型。为了防止在任何后端上创建这些 share,默认 share 类型需要足够具体,以便找到合适的默认后端(或者如果没有找到默认后端,则不使用默认后端)。以下示例显示了如何为 share 类型设置 share_backend_name。

    $ manila --os-username admin --os-tenant-name demo type-key <share-type>
    set share_backend_name=HPE3PAR2
    
  • 使用 share 类型来选择具有功能的后端

    HPE 3PAR 驱动程序根据用于每个后端的 FPG 自动报告功能。管理员可以创建带有 extra specs 的 share 类型,从而控制可以使用具有或不具有特定功能的 FPG 的 share 类型。

    从 OpenStack Liberty 版本或更高版本开始,以下部分显示了与功能筛选器和 HPE 3PAR 驱动程序一起使用的 extra specs

    hpe3par_flash_cache

    当值设置为 <is> True(或 <is> False 时),只有使用 HPE 3PAR Adaptive Flash Cache 的后端才会创建此类型的 share。对于 Adaptive Flash Cache,HPE 3PAR StoreServ 存储阵列必须满足以下要求

    • 已启用 Adaptive Flash Cache

    • 可用 SSD

    • 必须在 HPE 3PAR StoreServ 存储阵列上启用 Adaptive Flash Cache。使用以下 CLI 命令完成此操作

      cli% createflashcache <size>
      

      <size> 必须以 16 GB 为增量。例如,以下命令为阵列中的每个节点对创建 128 GB 的 Flash Cache。

      cli% createflashcache 128g
      
    • 必须为用于 FPG 的 VV 集启用 Adaptive Flash Cache。例如,setflashcache vvset:<fpgname>。VV 集名称与 FPG 名称相同。

      注意

      此设置会影响该 FPG(在该后端上)中的所有 share。

    Dedupe

    当值设置为 <is> True(或 <is> False 时),只有使用重复数据删除的后端才会创建此类型的 share。对于 HPE 3PAR File Persona,在创建 FPG 时确定配置类型。使用 createfpg –tdvv 选项创建支持重复数据删除和精简配置的 FPG。必须启用精简重复数据删除才能使用 tdvv 选项。

    thin_provisioning

    当值设置为 <is> True(或 <is> False 时),只有使用精简(或完全)配置的后端才会创建此类型的 share。对于 HPE 3PAR File Persona,在创建 FPG 时确定配置类型。默认情况下,FPG 使用精简配置创建。容量筛选器在筛选和加权使用精简配置的后端时,会使用总配置空间和配置的 max_oversubscription_ratio

  • 使用 share 类型来影响 share 创建选项

    作用域限定的 extra-specs 用于影响特定于供应商的实现细节。作用域限定的 extra-specs 使用前缀后跟冒号。对于 HPE 3PAR,这些 extra specs 的前缀为 hpe3par。

    以下 HPE 3PAR extra-specs 在创建 CIFS (SMB) share 时使用

    hpe3par:smb_access_based_enum

    smb_access_based_enum(基于访问的枚举)指定用户是否只能看到在 share 上被允许访问的文件和目录。有效值为 TrueFalse。默认值为 False

    hpe3par:smb_continuous_avail

    smb_continuous_avail(连续可用性)指定是否应为此 share 启用 SMB3 的连续可用性功能。有效值为 TrueFalse。默认值为 True

    hpe3par:smb_cache

    smb_cache 指定用于离线文件的客户端缓存。默认值为 manual。有效值为

    • off — 客户端不得缓存此 share 中的任何文件。share 配置为禁止缓存。

    • manual — 客户端必须仅允许手动缓存从此 share 打开的文件。

    • optimized — 客户端可以缓存其打开的每个文件。此外,客户端可以从其本地缓存满足文件请求。share 配置为允许自动缓存程序和文档。

    • auto — 客户端可以缓存其打开的每个文件。share 配置为允许自动缓存文档。

    在创建 NFS share 时,使用以下 HPE 3PAR extra-specs

    hpe3par:nfs_options

    逗号分隔的 NFS 导出选项列表。

    NFS 导出选项具有以下限制

    rorw 不允许(将由驱动程序确定)

    no_subtree_checkfsid 不允许,因为 HPE 3PAR CLI 支持

    (in)secure(no_)root_squash 不允许,因为 HPE 3PAR 驱动程序控制这些设置

    所有其他 NFS 选项都转发到 HPE 3PAR 作为 share 创建的一部分。HPE 3PAR 在 share 创建时执行额外的验证。有关详细信息,请参阅 HPE 3PAR CLI 帮助。

实现特性

  • 来自快照的 share

    • 当从快照创建 share 时,必须先删除 share,然后才能删除快照。驱动程序强制执行此操作。

    • 空 share 的快照似乎可以正常工作,但尝试从空 share 快照创建 share 可能会因 NFS Create export 错误而失败。

    • HPE 3PAR File Persona 快照是针对整个 File Store 的。在 Manila 中,它们显示为 share 的快照。share 子目录用于在使用 create share from snapshot 时提供 share 快照的外观。

  • 快照

    • 对于 HPE 3PAR File Persona,快照是针对 File Store 的,而不是针对 share 的。因此,HPE 3PAR 每 File Store 的 1024 个快照限制导致 Manila 每个后端 FPG 上每个租户的 1024 个快照限制。

    • 在删除 share 之前,必须删除其快照。Manila 强制执行此操作。对于 HPE 3PAR File Persona,这还会启动快照回收。

  • 大小强制执行

    Manila 用户创建具有大小限制的 share。HPE 3PAR 通过使用 File Store 配额来强制执行大小限制。当使用 hpe3par_fstore_per_share``= ``True``(非默认设置) 时,每个 File Store 只有一个 share,因此大小强制执行按预期执行。当使用 hpe3par_fstore_per_share = False(默认值)时,HPE 3PAR Manila 驱动程序使用一个 File Store 用于多个 share。在这种情况下,File Store 限制的大小设置为其 Manila share 大小的累积限制。这可能允许一个租户 share 超过限制并影响同一租户其他 share 可用的空间。一个租户不能使用另一个租户的 File Store。

  • 文件删除

    当删除 share 并且使用 hpe3par_fstore_per_share``=``False 设置(默认值)时,文件可能会留在 File Store 中。在 Mitaka 之前,删除过时 share 目录和已搁置的文件需要 OpenStack/Manila 外部的工具。在 Mitaka 及更高版本中,驱动程序会装载 File Store 以删除已删除 share 的子目录和文件。对于 SMB/CIFS share,它需要 hpe3par_cifs_admin_access_usernamehpe3par_cifs_admin_access_password 配置。如果无法执行装载和删除,则会记录错误,并且 share 将在 Manila 中删除。由于剩余文件可能占用的空间,在删除 share 时不会减少 File Store 配额。

  • 多租户

    • 网络

      driver_handles_share_servers 配置设置确定是否支持 share 网络。当 driver_handles_share_servers 设置为 True 时,需要 share 网络才能创建 share。管理员使用所需的网络、子网、IP 范围和分段 ID 创建 share 网络。HPE 3PAR 使用相同的子网和分段 ID 以及从 neutron 网络分配的 IP 地址配置 FSIP。使用 share 网络特定的 IP 地址、子网和分段 ID 可以提供更好的租户隔离外观。但是,FPG 上的 share 可以通过任何 FSIP 访问(受访问规则限制)。应使用后端筛选器进行进一步的分离。

    • 后端筛选

      Manila HPE 3PAR 后端配置引用特定的阵列和特定的 FPG。在具有多个后端和多个租户的情况下,调度程序确定将在哪里创建 share。在需要将阵列或后端限制为一个或多个特定租户的场景中,可以使用 share 类型来影响后端选择。有关使用 share 类型的更多信息,请参阅 Share 类型

    • 租户限制

      HPE 3PAR 驱动程序在每个配置的 FPG 中为每个协议使用一个 File Store。如果仅配置一个后端,则这将导致八个租户的限制(如果仅使用一个协议,则为 16 个)。使用多个后端配置来引入同一阵列上的其他 FPG 以增加租户限制。

      在使用共享网络时,为每个共享网络创建一个 FSIP(当其第一个共享在后端创建时)。HPE 3PAR 每个 FPG (VFS) 支持 4 个 FSIP。这 4 个 FSIP 中的一个保留给初始 VFS IP,因此每个节点对的共享网络限制为 48 个。