Vastdata Share Driver

VAST Share Driver 将 OpenStack 与 VAST Data 的存储系统集成。共享文件系统服务中的共享映射到 VAST 上的目录,并通过虚拟 IP 池使用 NFS 协议进行访问。

支持的共享文件系统

该驱动程序支持 NFS 共享。

支持的操作

该驱动程序支持 NFS 共享。

支持以下操作

  • 创建共享。

  • 删除共享。

  • 允许共享访问。

  • 拒绝共享访问。

  • 扩展共享。

  • 缩小共享。

需求

  • 必须在 VAST 集群上启用垃圾箱文件夹访问功能。

驱动程序选项

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

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

配置选项 = 默认值

描述

[vast]

vast_mgmt_host =

(字符串) VAST 存储系统管理 VIP 的主机名或 IP 地址。

vast_mgmt_port = 443

(字符串) VAST 管理 API 的端口。

vast_vippool_name =

(字符串) 虚拟 IP 池的名称。

vast_root_export = manila

(字符串) 共享的基本路径。

vast_mgmt_user =

(字符串) VAST 管理 API 的用户名。

vast_mgmt_password =

(字符串) VAST 管理 API 的密码。

vast_api_token =

(字符串) 用于访问 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)

基类: ShareDriver

VastData 文件系统的驱动程序。

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)