Dell EMC Unity 驱动程序¶
EMC 共享文件系统服务驱动程序框架 (EMCShareDriver) 利用 EMC 存储产品为 OpenStack 提供共享文件系统。EMC 驱动程序是一个基于插件的驱动程序,旨在利用不同的插件来管理不同的 EMC 存储产品。
Unity 插件管理 Unity 系统以提供共享文件系统。在此文档中,带有 Unity 插件的 EMC 驱动程序框架被称为 Unity 驱动程序。
此驱动程序通过 RESTful API 执行 Unity 上的操作。每个后端管理 Unity 的一个存储处理器。配置多个共享文件系统服务后端以管理多个 Unity 系统。
需求¶
Unity OE 4.1.x 或更高版本。
StorOps 1.1.0 或更高版本已安装在 Manila 节点上。
Unity 上已激活以下许可证
CIFS/SMB 支持
网络文件系统 (NFS)
稀疏配置
光纤通道 (FC)
互联网小型计算机系统接口 (iSCSI)
支持的网络拓扑¶
扁平
Unity 共享驱动程序完全支持这种类型,但是由于可以从其中创建的租户网络数量有限,因此限制了扁平网络。
VLAN
我们建议在 Manila 中使用这种类型的网络拓扑。在大多数用例中,VLAN 用于隔离不同的租户并为每个租户提供隔离的网络。为了支持此功能,管理员需要在与 Unity 以太网端口连接的插槽中设置
Trunk模式或允许来自该插槽的多个 VLAN。VXLAN
Unity 原生 VXLAN 尚不可用。但是,通过 Networking 和共享文件系统服务中的 HPB(分层端口绑定),Unity 可以与启用了 VXLAN 的网络环境共存。
预配置¶
在 Manila 节点上¶
需要 Python 库 storops 才能运行 Unity 驱动程序。使用 pip 命令安装它。您可能需要 root 权限才能安装 Python 库。
$ pip install storops
在 Unity 系统上¶
配置系统级别的 NTP 服务器。
打开 Unity 系统的
Unisphere并导航到Unisphere -> Settings -> Management -> System Time and NTP选择
启用 NTP 同步并添加您的 NTP 服务器。Unity 系统和安全服务中使用的 Active Directory 域上的时间应保持同步。我们建议在 Unity 系统和 Active Directory 域上使用相同的 NTP 服务器。
配置系统级别的 DNS 服务器。
打开 Unity 系统的
Unisphere并导航到Unisphere -> Settings -> Management -> DNS Server选择
手动配置 DNS 服务器 地址并添加您的 DNS 服务器。
后端配置¶
需要在 /etc/manila/manila.conf 中配置以下配置
share_driver = manila.share.drivers.dell_emc.driver.EMCShareDriver
emc_share_backend = unity
emc_nas_server = <management IP address of the Unity system>
emc_nas_login = <user with administrator privilege>
emc_nas_password = <password>
unity_server_meta_pool = <pool name>
unity_share_data_pools = <comma separated pool names>
unity_ethernet_ports = <comma separated ports list>
driver_handles_share_servers = True/False
unity_share_server = <name of NAS server in Unity system>
report_default_filter_function = True/False
- emc_share_backend
插件名称。将其设置为 Unity 驱动程序的 unity。
- emc_nas_server
Unity 的管理 IP。
- unity_server_meta_pool
用于持久化 NAS 服务器元数据的池的名称。此选项是必需的。
- unity_share_data_pools
逗号分隔的列表,指定此后端要使用的池的名称。如果系统上的所有存储池都可以使用,则不要设置此选项。支持通配符。
示例
# Only use pool_1 unity_share_data_pools = pool_1 # Only use pools whose name stars from pool_ unity_share_data_pools = pool_* # Use all pools on Unity unity_share_data_pools = *
- unity_ethernet_ports
逗号分隔的列表,指定 Unity 系统可以用于共享的以太网端口。如果所有以太网端口都可以使用,则不要设置此选项。支持通配符。Unity 共享驱动程序可以使用正常的以太网端口和链路聚合端口。
示例
# Only use spa_eth1 unity_ethernet_ports = spa_eth1 # Use port whose name stars from spa_ unity_ethernet_ports = spa_* # Use all Link Aggregation ports unity_ethernet_ports = sp*_la_* # Use all available ports unity_ethernet_ports = *
- driver_handles_share_servers
Unity 驱动程序需要此选项设置为 True 或 False。当值为 False 时,需要设置 unity_share_server。
- unity_share_server
Unity 中的 NAS 服务器名称之一,用于在驱动程序处于 DHSS=False 模式时创建共享。
- report_default_filter_function
是否报告默认过滤器函数。默认值为 False。但是,此值将在未来的版本中更改为 True,以确保符合 Manila 的设计期望。因此,我们建议在部署中始终将此选项设置为 True 或 False,具体取决于您期望的行为。
需要重新启动 manila-share 服务才能使配置更改生效。
支持的 MTU 大小¶
Unity 当前仅支持 1500 和 9000 作为 mtu 大小,用户可以从 Unity Unisphere 更改上述 mtu 大小
在 Unisphere 中,转到 设置、访问,然后 以太网。
双击以太网端口。
从下拉列表中选择 MTU 大小。
Unity 驱动程序将在共享服务器创建期间选择 mtu 等于共享网络 mtu 的端口。
IPv6 支持¶
Unity 驱动程序的 IPv6 支持是在 Queens 版本中引入的。此功能分为两部分
驱动程序能够管理 Neutron IPv6 网络中的共享或快照。
驱动程序可以使用其 IPv6 地址连接 Unity 管理接口。
IPv6 支持的预配置¶
需要在 /etc/manila/manila.conf 中配置以下参数以用于 Unity 驱动程序
network_plugin_ipv6_enabled = True
network_plugin_ipv6_enabled 指示已启用 IPv6。
如果您想使用 IPv6 地址连接 Unity,您应该使用 /net/if/mgmt uemcli 命令、mgmtInterfaceSettings RESTful api 或 Unity GUI 的系统设置来配置 IPv6 地址,并在 /etc/manila/manila.conf 中指定该地址
emc_nas_server = <IPv6 地址>
快照支持¶
在 OpenStack 的 Mitaka 和 Newton 版本中,默认情况下为新创建的共享类型启用快照支持。从 Ocata 版本开始,必须将 snapshot_support 额外规范设置为 True 才能允许共享类型的快照。如果省略了 ‘snapshot_support’ 额外规范或将其设置为 False,用户将无法在此共享类型上创建快照。此功能分为两部分
驱动程序能够创建/删除共享的快照。
驱动程序能够从快照创建共享。
快照支持的预配置¶
需要使用共享类型配置以下附加规格。
snapshot_support = True
create_share_from_snapshot_support = True
对于新的共享类型,可以在创建共享类型时直接设置这些附加规格
$ manila type-create --snapshot_support True --create_share_from_snapshot_support True ${share_type_name} True
或者,可以使用以下命令更新已有的共享类型
$ manila type-key ${share_type_name} set snapshot_support=True
$ manila type-key ${share_type_name} set create_share_from_snapshot_support=True
支持的安全服务¶
Unity 共享驱动程序为 NFS 共享提供基于 IP 的身份验证方法支持,并为 CIFS 共享提供基于 用户 的身份验证方法支持。对于 CIFS 共享,Microsoft Active Directory 是唯一支持的安全服务。
IO 负载均衡¶
Unity 驱动程序根据选项 unity_ethernet_ports 自动分配每个存储处理器的文件接口。这平衡了 IO 流量。对于 unity_ethernet_ports 的推荐配置是指定每个存储处理器的平衡端口。例如
# Use eth2 from both SPs
unity_ethernet_ports = spa_eth2, spb_eth2
默认过滤器函数¶
Unity 不支持创建小于 3GB 大小的文件系统,如果用户创建的共享大小小于 3GB,Unity 驱动程序将在 Unity 中补充大小到 3GB。
Unity 驱动程序实现了 get_default_filter_function API 以报告默认过滤器函数,如果共享大小小于 3GB,Manila 将不会将共享创建调度到 Unity 后端。
Unity 驱动程序提供了一个选项 report_default_filter_function 以禁用或启用过滤器函数报告,默认值为禁用。
限制¶
Unity 驱动程序具有以下限制。
EMC Unity 不支持不同 VLAN 中的相同 IP。
仅支持 NFS 的 IP 访问类型。
仅支持 CIFS 的用户访问类型。
API 实现¶
以下驱动程序功能在插件中实现。
create_share:创建共享并根据使用的协议(NFS 或 CIFS)导出它。
create_share_from_snapshot:从快照创建共享 - 克隆快照。
delete_share:删除共享。
extend_share:扩展共享的最大大小。
shrink_share:缩小共享的最小大小。
create_snapshot:为指定的共享创建快照。
delete_snapshot:删除共享的快照。
update_access:恢复、添加或删除用户/主机对共享的访问权限。
allow_access:允许用户对 CIFS 共享进行访问(读写/只读)。允许主机对 NFS 共享进行访问(读写/只读)。
deny_access:删除用户对 CIFS 共享的访问权限(读写/只读)。删除主机对 NFS 共享的访问权限(读写/只读)。
ensure_share:检查共享是否存在。
update_share_stats:从 Unity 检索共享相关的统计信息。
get_network_allocations_number:返回创建 VIF 的网络分配数量。
setup_server:使用给定的网络参数设置和配置共享服务器。
teardown_server:拆除共享服务器。
revert_to_snapshot:将共享恢复到快照。
get_default_filter_function:报告默认过滤器函数。
驱动程序选项¶
此驱动程序特定的配置选项
配置选项 = 默认值 |
描述 |
|---|---|
[DEFAULT] |
|
|
(List) 用逗号分隔的端口列表,可用于共享服务器接口。列表成员可以使用类 Unix 风格的 glob 表达式。 |
|
(String) 用于持久化 NAS 服务器元数据的池。 |
|
(List) 用逗号分隔的池列表,可用于持久化共享数据。 |
|
Unity 中的 NAS 服务器名称之一,当驱动程序处于 |