共享服务器

共享服务器是由共享文件系统服务在驱动程序以 driver_handles_share_servers = True 模式运行时创建的资源。共享服务器导出用户的共享,管理它们的导出和访问规则。

共享服务器对最终用户是抽象的。以 driver_handles_share_servers = True 模式运行的驱动程序会自动管理这些共享服务器的生命周期。但是,管理员可以从共享文件系统服务的管理中移除共享服务器,而不会销毁它们。他们还可以将现有的共享服务器纳入共享文件系统服务的管理。他们可以列出所有可用的共享服务器并更新其状态属性。如果它没有依赖的共享,他们可以删除特定的共享服务器。

共享服务器管理

管理”共享服务器意味着当驱动程序以 driver_handles_share_servers = True 模式运行时,管理员可以将预先存在的共享服务器纳入共享文件系统服务的管理。

取消管理”意味着管理员能够从共享文件系统服务中注销现有的共享服务器,而无需从存储后端删除它。要取消管理,所指的共享服务器不能有任何已知于共享文件系统服务的共享。

管理共享服务器

要将共享服务器纳入共享文件系统服务,请使用 manila share-server-manage 命令

manila share-server-manage
    [--driver_options [<key=value> [<key=value> ...]]]
    [--share_network_subnet <share-network-subnet>]]
    <host> <share_network> <identifier>

位置参数是

  • host。管理共享服务主机采用 host@backend 格式,由后端的主机名和后端名称组成。

  • share_network。共享服务器所在的共享网络。

  • identifier。后端存储上共享服务器的标识符。

driver_options 是一个可选的、一个或多个驱动程序特定的元数据项的集合,以键值对的形式呈现。所需的特定键值对因驱动程序而异。请查阅驱动程序特定的文档,以确定是否需要提供任何特定参数。确保共享类型具有 driver_handles_share_servers = True 额外规格。

share_network_subnet 是一个在 Train 版本中引入的可选参数。由于共享网络结构的更改,共享网络不再包含以下属性:neutron_net_idneutron_subnet_idgatewaymtunetwork_typeip_versionsegmentation_id。这些属性现在属于共享网络子网实体,并且一个共享网络可以跨越不同可用区的多个共享网络子网。如果您没有指定共享网络子网,共享文件系统服务将选择默认子网(不属于任何可用区)。

如果使用基于 OpenStack Networking (Neutron) 的插件,请确保

  • 创建了一些端口,这些端口对应于共享服务器接口。

  • 将正确的 IP 地址分配给这些端口。

  • manila:share 设置为这些端口的所有者。

要管理共享服务器,请运行

$ manila share-server-manage \
    manila@paris \
    share_net_test \
    backend_server_1 \
+--------------------+------------------------------------------+
| Property           | Value                                    |
+--------------------+------------------------------------------+
| id                 | 441d806f-f0e0-4c90-b7e2-a553c6aa76b2     |
| project_id         | 907004508ef4447397ce6741a8f037c1         |
| updated_at         | None                                     |
| status             | manage_starting                          |
| host               | manila@paris                             |
| share_network_name | share_net_test                           |
| share_network_id   | c895fe26-92be-4152-9e6c-f2ad230efb13     |
| created_at         | 2019-04-25T18:25:23.000000               |
| backend_details    | {}                                       |
| is_auto_deletable  | False                                    |
| identifier         | backend_server_1                         |
+--------------------+------------------------------------------+

注意

is_auto_deletable 属性由共享文件系统服务用于标识可以由内部例程删除的共享服务器。

如果与它们关联的共享没有,该服务可以自动删除共享服务器。要删除最后一个共享时删除共享服务器,请设置选项:delete_share_server_with_last_share。如果需要计划的清理,可以设置 automatic_share_server_cleanupunused_share_server_cleanup_interval 选项。一次只能使用一种清理方法。

任何从其取消管理了共享的共享服务器都不能被共享文件系统服务自动删除。对于被管理到服务中的共享服务器也是如此。云管理员可以手动删除这些共享服务器(如果需要)。

取消管理共享服务器

取消管理 共享服务器,请运行 manila share-server-unmanage <share-server>

$ manila share-server-unmanage 441d806f-f0e0-4c90-b7e2-a553c6aa76b2
$ manila share-server-show 441d806f-f0e0-4c90-b7e2-a553c6aa76b2
ERROR: Share server 441d806f-f0e0-4c90-b7e2-a553c6aa76b2 could not be
found.

重置共享服务器状态

作为管理员,您可以重置共享服务器状态。要重置共享服务器的状态,请运行 manila share-server-reset-state <share-server> --state <state>

位置参数是

  • share-server。共享服务器名称或 ID。

  • state。要分配给共享服务器的状态。选项是
    • active

    • error

    • deleting

    • creating

    • managing

    • unmanaging

    • unmanage_error

    • manage_error

列出共享服务器

要列出共享服务器,请运行 manila share-server-list 命令

manila share-server-list [--host <hostname>] [--status <status>]
                         [--share-network <share_network>]
                         [--project-id <project_id>]
                         [--columns <columns>]

以上所有参数都是可选的。它们可以用于过滤共享服务器。过滤选项

  • host。显示与指定主机相关的所有共享服务器。

  • status。显示处于指定状态的所有共享服务器。

  • share_network。显示属于同一共享网络的所有共享服务器。

  • project_id。显示属于同一项目的所有共享服务器。

  • columns。管理员指定在列表操作的结果中显示哪些列。

$ manila share-server-list
+--------------------------------------+--------------+--------+----------------+----------------------------------+------------+
| Id                                   | Host         | Status | Share Network  | Project Id                       | Updated_at |
+--------------------------------------+--------------+--------+----------------+----------------------------------+------------+
| 441d806f-f0e0-4c90-b7e2-a553c6aa76b2 | manila@paris | active | share_net_test | fd6d30efa5ff4c99834dc0d13f96e8eb | None       |
+--------------------------------------+--------------+--------+----------------+----------------------------------+------------+

共享服务器限制(自 Wallaby 版本起)

自 Wallaby 版本起,可以指定共享服务器大小和实例数量的限制。这有助于管理员在云系统中配置其资源并平衡共享服务器的大小。如果未配置值,则不会有行为变化,manila 将将其视为无限制。然后,无论其大小和构建的实例数量如何,都将重用共享服务器。

  • max_share_server_size:考虑到其所有共享实例和快照,共享服务器可以拥有的最大千兆字节数。

  • max_shares_per_share_server:在共享服务器上创建的最大共享实例数。

注意

如果在需要提供共享服务器的请求期间达到其中一个限制,manila 将创建一个新的共享服务器来放置该请求。

注意

在将从父快照创建的新共享放置在与父快照相同的宿主机上时,可以忽略这些限制。对于这种场景,共享服务器必须相同,因此不考虑限制,无论如何都会重用共享服务器。