HPE 3PAR Driver for OpenStack Manila
HPE 3PAR manila 驱动程序使用 HPE 3PAR 的文件 Persona 功能,为 OpenStack 提供 NFS 和 CIFS 共享文件系统。
有关 HPE 3PAR Driver for OpenStack Manila 的信息,请参阅 内容包页面。
支持的操作
以下操作支持 HPE 3PAR 文件 Persona
创建/删除 NFS 和 CIFS 共享
允许/拒绝 NFS 共享访问
允许/拒绝 CIFS 共享访问
创建/删除快照
从快照创建共享
不支持共享网络。共享直接在 3PAR 上创建,不使用共享服务器或服务 VM。网络连接在 manila 之外设置。
需求
在运行 manila 共享服务的系统上
在 HPE 3PAR 阵列上
HPE 3PAR 上的预配置
必须初始化并启动 HPE 3PAR 文件 Persona (startfs)
必须创建一个文件配置组 (FPG) 以供 manila 使用
必须为 FPG 创建一个虚拟文件服务器 (VFS)
VFS 必须配置为具有适当的共享导出 IP 地址
CIFS 共享需要 Administrators 组中的本地用户
后端配置
需要在 HPE 3PAR 驱动程序的 manila 配置文件中配置以下参数
share_backend_name = <要启用的后端名称>
share_driver = manila.share.drivers.hpe.hpe_3par_driver.HPE3ParShareDriver
driver_handles_share_servers = False
hpe3par_fpg = <用于共享创建的 FPG>
hpe3par_share_ip_address = <用于共享导出位置的 IP 地址>
hpe3par_san_ip = <用于访问 SAN 控制器的 SSH IP 地址>
hpe3par_api_url = <3PAR WS API 服务器 URL>
hpe3par_username = <具有“编辑”角色的 3PAR 用户名>
hpe3par_password = <hpe3par_username 中指定用户的 3PAR 密码>
hpe3par_san_login = <用于访问 SAN 控制器的 SSH 用户名>
hpe3par_san_password = <用于访问 SAN 控制器的 SSH 密码>
hpe3par_debug = <False 或 True 用于额外的调试日志记录>
hpe3par_cifs_admin_access_username = <CIFS 管理员用户名>
hpe3par_cifs_admin_access_password = <CIFS 管理员密码>
hpe3par_cifs_admin_access_domain = <CIFS 管理员域>
hpe3par_share_mount_path = <挂载共享的完整路径>
hpe3par_share_ip_address 必须是配置的 FPG 的 VFS 的有效 IP 地址。此 IP 地址用于创建的共享的导出位置。必须配置网络以允许客户端与共享连接。
hpe3par_cifs_admin_access_username 和 hpe3par_cifs_admin_access_password 必须提供才能删除嵌套的 CIFS 共享。如果省略,则会保留原始功能,并且文件树保持不变。hpe3par_cifs_admin_access_domain 和 hpe3par_share_mount_path 也可以指定以创建进一步的自定义。
需要重新启动 manila-share 服务才能使配置更改生效。
AD 用户后端配置
需要通过 HPE 3PAR CLI 配置以下参数才能使用 AD 访问文件共享。
设置身份验证参数
$ setauthparam ldap-server IP_ADDRESS_OF_AD_SERVER
$ setauthparam binding simple
$ setauthparam user-attr AD_DOMAIN_NAME\\
$ setauthparam accounts-dn CN=Users,DC=AD,DC=DOMAIN,DC=NAME
$ setauthparam account-obj user
$ setauthparam account-name-attr sAMAccountName
$ setauthparam memberof-attr memberOf
$ setauthparam super-map CN=AD_USER_GROUP,DC=AD,DC=DOMAIN,DC=NAME
验证设置的新的身份验证参数是否符合预期
验证 AD 用户是否设置正确
命令结果应显示 user AD_USER is authenticated and authorized 消息,表示配置成功。
在身份验证提供程序列表中添加“ActiveDirectory”
$ setfs auth ActiveDirectory Local
验证身份验证提供程序列表显示“ActiveDirectory”
在 FS 上设置/添加 AD 用户
$ setfs ad –passwd PASSWORD AD_USER AD_DOMAIN_NAME
验证 FS 用户详细信息
使用 AD 用户访问 CIFS 共享示例
先决条件
创建一个大小为 2GB 的 CIFS 文件共享
$ manila create --name FILE_SHARE_NAME --share-type SHARE_TYPE CIFS 2
检查文件共享是否创建成功
$ manila show FILE_SHARE_NAME
提供对 AD 用户共享访问权限的配置
$ manila access-allow FILE_SHARE_NAME user AD_DOMAIN_NAME\\\\AD_USER
--access-level rw
检查用户权限是否设置正确
$ manila access-list FILE_SHARE_NAME
AD_DOMAIN_NAME\AD_USER 必须列在 access_to 列中,并且其状态列应显示 active,这是此命令的结果。
网络方法
存储阵列(SSH/CLI 和 WSAPI)与 manila 主机之间的连接对于共享管理是必需的。
客户端与 VFS 之间的连接对于挂载和使用共享是必需的。这包括
共享类型
创建共享时,可以指定共享类型以确定将在何处以及如何创建共享。如果未指定共享类型,则使用 manila 配置文件的 default_share_type 设置。
Manila 要求共享类型包括 driver_handles_share_servers 额外规范。这可确保共享将在支持请求的 driver_handles_share_servers(共享网络)功能的后端上创建。对于 HPE 3PAR 驱动程序,必须将其设置为 False。
另一个常用的 manila 额外规范是 share_backend_name。当此额外规范在共享类型中定义时,共享将在具有匹配 share_backend_name 的后端上创建。
HPE 3PAR 驱动程序根据用于每个后端的 FPG 自动报告功能。管理员可以创建带有额外规范的共享类型,以控制哪些共享类型允许使用具有或不具有特定功能的 FPG。以下额外规范与功能筛选器和 HPE 3PAR 驱动程序一起使用
hpe3par_flash_cache = ‘<is> True’ 或 ‘<is> False’
thin_provisioning = ‘<is> True’ 或 ‘<is> False’
dedupe = ‘<is> True’ 或 ‘<is> False’
hpe3par_flash_cache 对于启用 3PAR 自适应闪存缓存的后端,将报告为 True。
thin_provisioning 对于使用精简配置卷的后端,将报告为 True。使用完全配置卷的 FPG 将报告 False。使用精简配置的后端也支持 manila 的过度订阅功能。
dedupe 对于使用重复数据删除技术的后端,将报告为 True。
作用域额外的规范用于影响特定于供应商的实现细节。作用域额外的规范使用前缀后跟冒号。对于 HPE 3PAR,这些额外的规范具有 hpe3par 前缀。对于 HP 3PAR,这些额外的规范具有 hp3par 前缀。
以下 HPE 3PAR 额外的规范在创建 CIFS (SMB) 共享时使用
hpe3par:smb_access_based_enum = true 或 false
hpe3par:smb_continuous_avail = true 或 false
hpe3par:smb_cache = off, manual, optimized 或 auto
smb_access_based_enum(基于访问的枚举)指定用户是否只能看到他们被允许访问共享中的文件和目录。默认值为 false。
smb_continuous_avail(连续可用性)指定是否应为此共享启用 SMB3 连续可用性功能。如果未指定,则默认值为 true。此设置将在 hp3parclient 3.2.1 或更早版本中被忽略。
smb_cache 指定客户端离线文件的缓存。有效值为
off: 客户端不得缓存此共享中的任何文件。配置为禁止缓存共享。
manual: 客户端只能允许手动缓存从此共享打开的文件。
optimized: 客户端可以缓存它从此共享打开的每个文件。此外,客户端可以从其本地缓存满足文件请求。配置为允许自动缓存程序和文档。
auto: 客户端可以缓存它从此共享打开的每个文件。配置为允许自动缓存文档。
如果未指定此项,则默认值为 manual。
以下 HPE 3PAR 额外的规范在创建 NFS 共享时使用
NFS 导出选项具有以下限制
ro 和 rw 不允许(manila 将确定只读选项)
no_subtree_check 和 fsid 不允许,因为 HPE 3PAR CLI 支持
(in)secure 和 (no_)root_squash 不允许,因为 HPE 3PAR 驱动程序控制这些设置
所有其他 NFS 选项都转发到 HPE 3PAR 作为共享创建的一部分。HPE 3PAR 将在共享创建时进行额外的验证。有关更多详细信息,请参阅 HPE 3PAR CLI 帮助。
删除嵌套共享
当删除嵌套共享时(当 hpe_3par_fstore_per_share 设置为 False 时,将创建嵌套共享),文件树也会尝试被删除。
对于 NFS 共享,无需进行其他配置。
对于 CIFS 共享,必须提供 hpe3par_cifs_admin_access_username 和 hpe3par_cifs_admin_access_password。如果省略,则会保留原始功能,并且文件树保持不变。hpe3par_cifs_admin_access_domain 和 hpe3par_share_mount_path 也可以指定以创建进一步的自定义。
The manila.share.drivers.hpe.hpe_3par_driver 模块
HPE 3PAR Driver for OpenStack Manila。
-
class FPG(min_ip=0, max_ip=4, type_name='FPG')
Bases: String, IPAddress
FPG 类型。
用于表示每个后端多个池值。将配置值转换为 FPG 值。FPG 值格式
FPG name, IP address 1, IP address 2, ..., IP address 4
其中 FPG 名称是字符串值,IP 地址是 types.IPAddress 类型
可选地进行范围检查。如果值为空白或空字符串,将引发错误
- 参数:
min_ip – 可选检查 VFS 的最小 IP 地址数量。
max_ip – 可选检查 VFS 的最大 IP 地址数量。
type_name – 要在示例配置文件中使用的类型名称。
-
MAX_SUPPORTED_IP_PER_VFS = 4
-
class HPE3ParShareDriver(*args, **kwargs)
基类: ShareDriver
HPE 3PAR Manila 驱动程序。
支持具有文件 Persona 的数组上的 NFS 和 CIFS 协议。
版本历史
1.0.0 - Begin Liberty development (post-Kilo)
1.0.1 - Report thin/dedup/hp_flash_cache capabilities
1.0.2 - Add share server/share network support
2.0.0 - Rebranded HP to HPE
2.0.1 - Add access_level (e.g. read-only support)
2.0.2 - Add extend/shrink
2.0.3 - Remove file tree on delete when using nested shares #1538800
2.0.4 - Reduce the fsquota by share size
when a share is deleted #1582931
2.0.5 - Add update_access support
2.0.6 - Multi pool support per backend
2.0.7 - Fix get_vfs() to correctly validate conf IP addresses at
boot up #1621016
2.0.8 - Replace ConsistencyGroup with ShareGroup
-
VERSION = '2.0.8'
-
static build_share_comment(share)
创建一个仅供参考的注释,以帮助管理员和测试人员。
-
check_for_setup_error()
检查设置错误。
-
choose_share_server_compatible_with_share(context, share_servers, share, snapshot=None, share_group=None, encryption_key_ref=None)
允许驱动程序为提供的共享选择共享服务器的方法。
如果未找到兼容的共享服务器,该方法应返回 None。
- 参数:
-
- 返回值:
共享服务器或 None
-
create_share(context, share, share_server=None)
用于创建共享。
-
create_share_from_snapshot(context, share, snapshot, share_server=None, parent_share=None)
用于从快照创建共享。
-
create_snapshot(context, snapshot, share_server=None)
创建共享的快照。
-
delete_share(context, share, share_server=None)
删除共享及其 fstore。
-
delete_snapshot(context, snapshot, share_server=None)
删除共享的快照。
-
do_setup(context)
共享驱动程序启动时执行的任何初始化。
-
ensure_share(context, share, share_server=None)
调用以确保共享已导出。
驱动程序可以使用此方法更新共享的导出位置列表(如果发生更改)。为此,应返回包含导出位置的列表。
如果驱动程序实现“get_backend_info”和“ensure_shares”,则优选而不是此例程。
- 返回值:
None 或包含导出位置的列表
-
extend_share(share, new_size, share_server=None)
扩展现有共享的大小。
-
get_network_allocations_number()
返回创建 VIF 的网络分配数量。
使用 Nova 进行共享服务器的驱动程序应在此处返回零 (0),就像通用驱动程序一样。因为 Nova 将处理网络资源分配。自行处理网络的驱动程序应根据自己的要求进行计算。它可以有 1 个或多个网络接口。
-
static sha1_hash(clazz)
获取类的来源的 SHA1 哈希值。
-
shrink_share(share, new_size, share_server=None)
缩小现有共享的大小。
-
update_access(context, share, access_rules, add_rules, delete_rules, update_rules, share_server=None)
更新对共享的访问权限。
-
to_list(var)
如果不是,则将 var 转换为列表类型