PowerScale Driver

EMC manila 驱动框架 (EMCShareDriver) 利用 Dell 存储产品向 OpenStack 提供共享文件系统。EMC manila 驱动是一个基于插件的驱动,旨在利用不同的插件来管理不同的 Dell 存储产品。

PowerScale manila 驱动是 EMC manila 驱动框架的一个插件,它允许 manila 与 PowerScale 后端接口,以提供共享文件系统。在此文档中,带有 PowerScale 插件的 EMC 驱动框架被称为“PowerScale Driver”。

此 PowerScale Driver 通过 REST PowerScale Platform API (PAPI) 和 RESTful Access to Namespace API (RAN) 与 PowerScale 集群接口。

需求

  • 运行 OneFS 9.10 或更高版本的 PowerScale 集群

支持的操作

以下操作在 PowerScale 集群上受支持

  • 创建 CIFS/NFS 共享

  • 删除 CIFS/NFS 共享

  • 允许 CIFS/NFS 共享访问
    • 仅支持 IP 访问类型用于 NFS 和 CIFS

    • 仅支持读写访问

  • 拒绝 CIFS/NFS 共享访问

  • 创建快照

  • 删除快照

  • 从快照创建共享

  • 扩展共享

后端配置

需要在 manila 配置文件中配置以下参数以用于 PowerScale 驱动程序

  • share_driver = manila.share.drivers.dell_emc.driver.EMCShareDriver

  • driver_handles_share_servers = False

  • emc_share_backend = powerscale

  • emc_nas_server = <PowerScale 集群的 IP 地址>

  • emc_nas_server_port = <用于 PowerScale 集群的端口 (可选)>

  • emc_nas_login = <用户名>

  • emc_nas_password = <密码>

  • emc_nas_root_dir = <创建共享的根目录路径 (例如/ifs/manila)>

需要重新启动 manila-share 服务才能使配置更改生效。

限制

PowerScale 驱动程序具有以下限制

  • 仅支持 IP 访问类型用于 NFS 和 CIFS。

  • 仅支持 FLAT 网络。

The manila.share.drivers.dell_emc.driver 模块

EMC 特定的 NAS 存储驱动程序。此驱动程序是一个可插拔的驱动程序,允许特定的 EMC NAS 设备作为底层后端插件。使用 Manila 配置变量“share_backend_name”来指定要使用的后端插件。

class EMCShareDriver(*args, **kwargs)

基类: ShareDriver

EMC 特定的 NAS 驱动程序。允许使用 NFS 和 CIFS NAS 存储。

allow_access(context, share, access, share_server=None)

允许访问共享。

check_for_setup_error()

检查设置错误。

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)

用于删除共享。

delete_snapshot(context, snapshot, share_server=None)

用于删除快照。

deny_access(context, share, access, share_server=None)

拒绝访问共享。

do_setup(context)

共享驱动程序启动时执行的任何初始化。

ensure_share(context, share, share_server=None)

调用以确保共享已导出。

ensure_shares(context, shares)

确保共享已导出。

extend_share(share, new_size, share_server=None)

调用以扩展共享。

get_backend_info(context)

获取驱动程序和阵列配置参数。

get_configured_ip_versions()

获取允许的 IP 版本。

支持的版本以列表形式返回,可能的值为:[4],[6] 或 [4, 6]

断言 ipv6_implemented = True 的驱动程序必须覆盖此方法。 如果返回的列表中包含 4,则由此驱动程序创建的共享必须具有 IPv4 导出位置。 如果列表包含 6,则由此驱动程序创建的共享必须具有 IPv6 导出位置。

驱动程序应检查其存储控制器是否实际启用了并正确配置了 IPv4/IPv6。

get_default_filter_function()

获取默认的 filter_function 字符串。

每个驱动程序都可以覆盖该方法以返回一个已知的默认字符串(如果可用)。

参数:

pool – 获取过滤器或 None 的池名称

返回值:

get_network_allocations_number()

返回创建 VIF 的网络分配数量。

get_share_server_network_info(context, share_server, identifier, driver_options)

获取共享服务器使用的网络分配。

参数:
  • context – 当前上下文。

  • share_server – 共享服务器模型。

  • identifier – 驱动程序特定的共享服务器标识符

  • driver_options – 用于协助管理共享服务器的驱动程序选项字典

返回值:

一个列表,包含后端分配的 IP 地址。

示例

['10.10.10.10', 'fd11::2000', '192.168.10.10']
manage_existing(share, driver_options)

管理现有的共享

manage_existing_snapshot(snapshot, driver_options)

管理现有的共享快照

manage_existing_snapshot_with_server(snapshot, driver_options, share_server=None)

管理现有的共享快照

manage_existing_with_server(share, driver_options, share_server=None)

管理现有的共享

manage_server(context, share_server, identifier, driver_options)

管理共享服务器并返回编译后的后端详细信息。

参数:
  • context – 当前上下文。

  • share_server – 共享服务器模型。

  • identifier – 驱动程序特定的共享服务器标识符

  • driver_options – 用于协助管理共享服务器的驱动程序选项字典

返回值:

标识符和字典,其中包含要保存在数据库中的后端详细信息。

示例

'my_new_server_identifier',{'server_name': 'my_old_server'}
revert_to_snapshot(context, snapshot, share_access_rules, snapshot_access_rules, share_server=None)

将共享(就地)恢复到指定的快照。

不删除共享快照。 必须将共享和快照都设置为“可用”,才能尝试还原。 快照必须是由 Manila 拍摄的最新快照;API 层执行此检查,因此驱动程序无需执行此操作。

必须就地将共享恢复到快照的内容。 应用程序管理员应使应用程序静默或以其他方式准备共享文件系统内容突然更改。

参数:
  • context – 当前上下文

  • snapshot – 要还原的快照

  • share_access_rules – 受影响共享的所有访问规则的列表

  • snapshot_access_rules – 受影响快照的所有访问规则的列表

  • share_server – 可选 – 共享服务器模型或 None

shrink_share(share, new_size, share_server=None)

调用以缩小共享。

unmanage(share)

从 Manila 管理中删除指定的共享。

不删除底层的后端共享。

对于大多数驱动程序,这不需要执行任何操作。但是,某些驱动程序可能会利用此调用来清理与后端共享关联的任何 Manila 特定配置。

如果提供的共享无法取消管理,则引发 UnmanageInvalidShare 异常,并指定失败原因。

当正在取消管理共享时,如果共享类型具有设置为 False 的 driver_handles_share_servers 额外规范,则调用此方法。

unmanage_server(server_details, security_services=None)

取消管理共享服务器。

如果驱动程序支持取消管理共享服务器,则驱动程序必须覆盖此方法并成功返回。

参数:
  • server_details – 共享服务器后端详细信息。

  • security_services – 配置此共享服务器的安全服务列表。

unmanage_snapshot(snapshot)

从 Manila 管理中删除指定的快照。

不删除底层的后端共享快照。

对于大多数驱动程序,这不需要执行任何操作。但是,某些驱动程序可能会利用此调用来清理与后端共享快照关联的任何 Manila 特定配置。

如果提供的共享快照无法取消管理,则引发 UnmanageInvalidShareSnapshot 异常,并指定失败原因。

当正在取消管理快照时,如果快照属于具有设置为 False 的 driver_handles_share_servers 额外规范的共享类型,则调用此方法。

unmanage_snapshot_with_server(snapshot, share_server=None)

从 Manila 管理中删除指定的快照。

不删除底层的后端共享快照。

对于大多数驱动程序,这不需要执行任何操作。但是,某些驱动程序可能会利用此调用来清理与后端共享快照关联的任何 Manila 特定配置。

如果提供的共享快照无法取消管理,则引发 UnmanageInvalidShareSnapshot 异常,并指定失败原因。

当正在取消管理快照时,如果快照属于具有设置为 True 的 driver_handles_share_servers 额外规范的共享类型,则调用此方法。

unmanage_with_server(share, share_server=None)

从 Manila 管理中删除指定的共享。

不删除底层的后端共享。

对于大多数驱动程序,这不需要执行任何操作。但是,某些驱动程序可能会利用此调用来清理与后端共享关联的任何 Manila 特定配置。

如果提供的共享无法取消管理,则引发 UnmanageInvalidShare 异常,并指定失败原因。

当正在取消管理共享时,如果共享类型具有设置为 True 的 driver_handles_share_servers 额外规范,则调用此方法。

update_access(context, share, access_rules, add_rules, delete_rules, update_rules, share_server=None)

更新对共享的访问权限。

The manila.share.drivers.dell_emc.plugins.powerscale.powerscale 模块

PowerScale 特定的 NAS 后端插件。

class PowerScaleStorageConnection(*args, **kwargs)

Bases: StorageConnection

实现 EMC Manila 驱动程序的 PowerScale 特定功能。

allow_access(context, share, access, share_server)

允许访问共享。

check_for_setup_error()

检查设置错误。

connect(emc_share_driver, context)

连接到 PowerScale 集群。

create_share(context, share, share_server)

用于创建共享。

create_share_from_snapshot(context, share, snapshot, share_server)

从快照创建共享。

create_snapshot(context, snapshot, share_server)

用于创建快照。

delete_share(context, share, share_server)

用于删除共享。

delete_snapshot(context, snapshot, share_server)

用于删除快照。

deny_access(context, share, access, share_server)

拒绝访问共享。

ensure_share(context, share, share_server)

调用以确保共享已导出。

ensure_shares(context, shares)

确保共享已导出。

Shares:

用于更新的所有共享的列表。

返回值:

无或以以下格式更新的字典。

extend_share(share, new_size, share_server=None)

扩展共享。

get_backend_info(context)

获取驱动程序和阵列配置参数。

返回值:

包含驱动程序特定信息的字典。

get_network_allocations_number()

返回创建 VIF 的网络分配数量。

setup_server(network_info, metadata=None)

使用给定的网络参数设置和配置共享服务器。

teardown_server(server_details, security_services=None)

拆除共享服务器。

update_access(context, share, access_rules, add_rules, delete_rules, share_server=None)

更新共享访问权限。

update_share_stats(stats_dict)

检索共享的统计信息。