Vastdata Share Driver¶
VAST Share Driver 将 OpenStack 与 VAST Data 的存储系统集成。共享文件系统服务中的共享映射到 VAST 上的目录,并通过虚拟 IP 池使用 NFS 协议进行访问。
支持的共享文件系统¶
该驱动程序支持 NFS 共享。
支持的操作¶
该驱动程序支持 NFS 共享。
支持以下操作
创建共享。
删除共享。
允许共享访问。
拒绝共享访问。
扩展共享。
缩小共享。
需求¶
必须在 VAST 集群上启用垃圾箱文件夹访问功能。
驱动程序选项¶
下表包含特定于共享驱动程序的配置选项。
配置选项 = 默认值 |
描述 |
|---|---|
[vast] |
|
|
(字符串) VAST 存储系统管理 VIP 的主机名或 IP 地址。 |
|
(字符串) VAST 管理 API 的端口。 |
|
(字符串) 虚拟 IP 池的名称。 |
|
(字符串) 共享的基本路径。 |
|
(字符串) VAST 管理 API 的用户名。 |
|
(字符串) VAST 管理 API 的密码。 |
|
(字符串) 用于访问 VAST 管理的 API 令牌。如果提供,它将代替“vast_mgmt_user”和“vast_mgmt_password”使用。 |
VAST Share Driver 配置示例¶
以下示例显示了用于配置 VAST Share Driver 的 manila.conf 文件中的参数。它们包括 [DEFAULT] 下的两个选项以及 [vast] 下的参数。请注意,一个真实的 manila.conf 文件也会包含其他不特定于 VAST Share Driver 的参数。
[DEFAULT]
enabled_share_backends = vast
enabled_share_protocols = NFS
[vast]
share_driver = manila.share.drivers.vastdata.driver.VASTShareDriver
share_backend_name = vast
driver_handles_share_servers = False
snapshot_support = True
vast_mgmt_host = {vms_ip}
vast_mgmt_port = {vms_port}
vast_mgmt_user = {mgmt_user}
vast_mgmt_password = {mgmt_password}
vast_api_token = {vast_api_token}
vast_vippool_name = {vip_pool}
vast_root_export = {root_export}
需要重新启动 manila-share 服务才能使配置更改生效。
共享支持的预配置¶
要创建文件共享,您需要
创建共享类型
openstack share type create ${share_type_name} False \
--extra-specs share_backend_name=${share_backend_name}
创建 NFS 共享
openstack share create NFS ${size} --name ${share_name} --share-type ${share_type_name}
快照支持的预配置¶
共享类型必须指定以下参数
snapshot_support = True
您可以在创建新的共享类型时指定它
openstack share type create ${share_type_name} false \
--snapshot-support=true \
--extra-specs share_backend_name=${share_backend_name}
或者,您可以将其添加到现有的共享类型
openstack share type set ${share_type_name} --extra-specs snapshot_support=True
对共享进行快照并从快照创建共享¶
使用 snapshot_support=True 的共享类型创建共享。然后,使用以下命令创建共享的快照
openstack share snapshot create ${source_share_name} --name ${target_snapshot_name}
The manila.share.drivers.vastdata.driver 模块¶
VAST 的共享驱动程序
配置
[DEFAULT] enabled_share_backends = vast
[vast] share_driver = manila.share.drivers.vastdata.driver.VASTShareDriver share_backend_name = vast snapshot_support = true driver_handles_share_servers = false vast_mgmt_host = v11 vast_vippool_name = vippool-1 vast_root_export = manila vast_mgmt_user = admin vast_mgmt_password = 123456
- class VASTShareDriver(*args, **kwargs)
基类:
ShareDriverVastData 文件系统的驱动程序。
- VERSION = '1.0'
- create_share(context, share, share_server=None)
用于创建共享。
- create_snapshot(context, snapshot, share_server=None)
用于创建快照。
- delete_share(context, share, share_server=None)
用于删除共享
- delete_snapshot(context, snapshot, share_server=None)
用于删除共享。
- do_setup(context)
驱动程序初始化
- ensure_shares(context, shares)
确保共享已导出。
驱动程序可以使用此方法更新共享的“状态”和/或导出位置列表(如果它们发生更改)。为此,应返回一个共享字典。此外,驱动程序可以尝试“重新应用访问规则”(布尔值),按共享进行设置。如果此属性存在且设置为 True,则服务管理器服务将使用来自服务数据库的所有访问规则调用“更新访问”。 :shares: 用于更新的所有共享的列表。 :returns: 无或以下格式的更新字典。
示例
{ '09960614-8574-4e03-89cf-7cf267b0bd08': { 'export_locations': [{...}, {...}], 'status': 'error', 'reapply_access_rules': False, }, '28f6eabb-4342-486a-a7f4-45688f0c0295': { 'export_locations': [{...}, {...}], 'status': 'available', 'reapply_access_rules': True, }, }
- extend_share(share, new_size, share_server=None)
使用 resize_share 扩展共享
- get_backend_info(context)
获取驱动程序和阵列配置参数。
驱动程序可以使用此方法获取特殊的配置信息并返回以供评估。服务管理器服务使用此评估在服务启动期间调用“确保共享”。
- 返回值:
包含驱动程序特定信息的字典。
示例
{ 'version': '2.23' 'port': '80', 'logicalportip': '1.1.1.1', ... }
- get_network_allocations_number()
返回创建 VIF 的网络分配数量。
使用 Nova 进行共享服务器的驱动程序应在此处返回零 (0),就像通用驱动程序一样。因为 Nova 将处理网络资源分配。自行处理网络的驱动程序应根据自己的要求进行计算。它可以有 1 个或多个网络接口。
- shrink_share(share, new_size, share_server=None)
使用 resize_share 缩小共享
- update_access(context, share, access_rules, add_rules, delete_rules, update_rules, share_server=None)
更新共享的访问规则。
- policy_payload_from_rules(rules, policy, action)
将 manila 规则列表转换为
用于更新/创建策略的 vast 兼容负载。
- validate_access_rule(access_rule)