共享组¶
自 Ocata 版本以来,Manila 中提供了共享组支持。共享组是共享的集合,用户可以在其上执行基于组的操作,例如一起创建快照。该框架旨在允许在 Manila 的未来版本中同步迁移或复制一组共享。目前支持创建组类型和组规范、创建共享组以及创建组快照。可以使用命令行客户端执行这些组操作。
要创建共享组并访问它,以下一般概念是先决知识
要创建共享组,请使用 manila share-group-create 命令。
您可以指定
share-network、共享组类型、source-share-group-snapshot、availability-zone、共享类型。共享组可用后,使用 manila create 命令在共享组内创建共享。
注意
共享组限制为单个后端,即在特定共享组内创建的所有共享最终都位于同一后端上。如果后端支持池,则可以在单独的池中创建共享。因此,此功能适合于需要不同共享协同定位的用户。
共享组上的操作¶
某些操作,例如扩展和缩小,本质上仅适用于单个共享。理论上可以将扩展应用于组,增加每个成员的大小,但这最初不会涵盖用例。此类别中的任何操作都必须仍然可用于组成员,并且可以允许对组成员进行快照等操作,但迁移或复制等操作仅在组级别可用,而不是在其成员上。
共享操作 |
共享组操作 |
|---|---|
创建(共享类型) |
创建(共享类型、组类型) |
删除 |
删除(组) |
快照 |
快照(可能是或可能不是一致的组快照) |
从快照创建 |
从组快照创建 |
克隆 |
克隆组(及其所有成员)(计划中) |
复制 |
复制(计划中) |
迁移 |
迁移(计划中) |
扩展/缩小 |
不适用 |
使用共享组创建共享¶
创建共享组类型¶
在此示例中,我们将创建一个新的共享组类型,并在 share-group-type-create 中使用的组规范中指定 consistent_snapshot_support。
使用 manila type-list 命令获取共享类型。然后使用共享类型创建共享组类型。
$ manila type-list
+--------------------------------------+---------------------+------------+------------+--------------------------------------+-----------------------------+
| ID | Name | visibility | is_default | required_extra_specs | optional_extra_specs |
+--------------------------------------+---------------------+------------+------------+--------------------------------------+-----------------------------+
| ee6287aa-448b-432b-a928-41ce9d8e149f | default_share_type | public | - | driver_handles_share_servers : False | |
+--------------------------------------+---------------------+------------+------------+--------------------------------------+-----------------------------+
使用 manila share-group-type-create 命令创建新的共享组类型。指定名称和共享类型。
$ manila share-group-type-create group_type_for_cg default_share_type
+------------+--------------------------------------+
| Property | Value |
+------------+--------------------------------------+
| is_default | - |
| ID | cfe42f20-d13e-4348-9370-f0763e426db3 |
| Visibility | public |
| Name | group_type_for_cg |
+------------+--------------------------------------+
使用 manila share-group-type-key 命令将组规范设置为共享组类型。
$ manila share-group-type-key group_type_for_cg set consistent_snapshot_support=host
注意
此命令没有输出。要验证组规范,请使用 manila share-group-type-specs-list 命令,并将共享组类型的名称或 ID 作为参数指定。
创建共享组¶
使用 manila share-group-create 命令创建共享组。指定我们创建的共享组类型。
$ manila share-group-create --share-group-type group_type_for_cg
+--------------------------------+--------------------------------------+
| Property | Value |
+--------------------------------+--------------------------------------+
| status | creating |
| description | None |
| created_at | 2017-09-11T02:08:52.319921 |
| source_share_group_snapshot_id | None |
| share_network_id | None |
| share_server_id | None |
| host | None |
| share_group_type_id | cfe42f20-d13e-4348-9370-f0763e426db3 |
| project_id | 87ba30b5315c40ec8ec5e3346112eae4 |
| share_types | ee6287aa-448b-432b-a928-41ce9d8e149f |
| id | ecf78d45-546a-48df-a969-c153e68f0376 |
| name | None |
+--------------------------------+--------------------------------------+
注意
一个共享组可以包含多个共享类型。共享类型将直接从共享组类型继承而来。
使用 manila share-group-show 命令检索共享的详细信息。指定共享 ID 或名称作为参数。
$ manila share-group-show ecf78d45-546a-48df-a969-c153e68f0376
+--------------------------------+-------------------------------------------+
| Property | Value |
+--------------------------------+-------------------------------------------+
| status | available |
| description | None |
| created_at | 2017-09-11T02:08:53.000000 |
| source_share_group_snapshot_id | None |
| share_network_id | None |
| share_server_id | None |
| host | ubuntu@generic2#test_pool |
| share_group_type_id | cfe42f20-d13e-4348-9370-f0763e426db3 |
| project_id | 87ba30b5315c40ec8ec5e3346112eae4 |
| share_types | ee6287aa-448b-432b-a928-41ce9d8e149f |
| id | ecf78d45-546a-48df-a969-c153e68f0376 |
| name | None |
+--------------------------------+-------------------------------------------+
使用共享组创建共享¶
使用 manila create 命令创建共享。指定共享协议、大小、共享组类型和共享名称。
$ manila create NFS 1 --share-group ecf78d45-546a-48df-a969-c153e68f0376 --name test_group_share_1
+---------------------------------------+-------------------------------------------+
| Property | Value |
+---------------------------------------+-------------------------------------------+
| status | creating |
| share_type_name | default_share_type |
| description | None |
| availability_zone | None |
| share_network_id | None |
| share_server_id | None |
| share_group_id | ecf78d45-546a-48df-a969-c153e68f0376 |
| host | ubuntu@generic2#test_pool |
| revert_to_snapshot_support | False |
| access_rules_status | active |
| snapshot_id | None |
| create_share_from_snapshot_support | False |
| is_public | False |
| task_state | None |
| snapshot_support | False |
| id | 21997eaf-712e-433e-8872-4ff085683657 |
| size | 1 |
| source_share_group_snapshot_member_id | None |
| user_id | b7f2c522a5644a83b78b3f61f50c6d71 |
| name | test_group_share_1 |
| share_type | ee6287aa-448b-432b-a928-41ce9d8e149f |
| has_replicas | False |
| replication_type | None |
| created_at | 2017-09-11T02:28:16.000000 |
| share_proto | NFS |
| mount_snapshot_support | False |
| project_id | 87ba30b5315c40ec8ec5e3346112eae4 |
| metadata | {} |
+---------------------------------------+-------------------------------------------+
创建另一个具有相同共享组的共享,并命名为“test_group_share_2”。
$ manila create NFS 1 --share-group ecf78d45-546a-48df-a969-c153e68f0376 --name test_group_share_2
+---------------------------------------+-------------------------------------------+
| Property | Value |
+---------------------------------------+-------------------------------------------+
| status | creating |
| share_type_name | default_share_type |
| description | None |
| availability_zone | None |
| share_network_id | None |
| share_server_id | None |
| share_group_id | ecf78d45-546a-48df-a969-c153e68f0376 |
| host | ubuntu@generic2#test_pool |
| revert_to_snapshot_support | False |
| access_rules_status | active |
| snapshot_id | None |
| create_share_from_snapshot_support | False |
| is_public | False |
| task_state | None |
| snapshot_support | False |
| id | 8d34a9a3-3b8c-4771-af2c-66c78fe1e0b1 |
| size | 1 |
| source_share_group_snapshot_member_id | None |
| user_id | b7f2c522a5644a83b78b3f61f50c6d71 |
| name | test_group_share_2 |
| share_type | ee6287aa-448b-432b-a928-41ce9d8e149f |
| has_replicas | False |
| replication_type | None |
| created_at | 2017-09-11T21:01:36.000000 |
| share_proto | NFS |
| mount_snapshot_support | False |
| project_id | 87ba30b5315c40ec8ec5e3346112eae4 |
| metadata | {} |
+---------------------------------------+-------------------------------------------+
创建共享组快照¶
创建共享组的快照
使用 manila share-group-snapshot-create 命令创建共享组快照。指定共享组 ID 或名称。
$ manila share-group-snapshot-create ecf78d45-546a-48df-a969-c153e68f0376
+----------------+--------------------------------------+
| Property | Value |
+----------------+--------------------------------------+
| status | creating |
| name | None |
| created_at | 2017-09-11T21:04:54.612737 |
| share_group_id | ecf78d45-546a-48df-a969-c153e68f0376 |
| project_id | 87ba30b5315c40ec8ec5e3346112eae4 |
| id | ac387240-08dc-4b23-80f6-ffc481e6c87a |
| description | None |
+----------------+--------------------------------------+
显示共享组快照的成员
使用 manila share-group-snapshot-create 命令查看共享组快照的所有共享成员。指定共享组快照 ID 或名称。
$ manila share-group-snapshot-list-members ac387240-08dc-4b23-80f6-ffc481e6c87a
+--------------------------------------+------+
| Share ID | Size |
+--------------------------------------+------+
| 21997eaf-712e-433e-8872-4ff085683657 | 1 |
| 8d34a9a3-3b8c-4771-af2c-66c78fe1e0b1 | 1 |
+--------------------------------------+------+
显示共享组快照的详细信息
$ manila share-group-snapshot-show ac387240-08dc-4b23-80f6-ffc481e6c87a
+----------------+--------------------------------------+
| Property | Value |
+----------------+--------------------------------------+
| status | available |
| name | None |
| created_at | 2017-09-11T21:04:55.000000 |
| share_group_id | ecf78d45-546a-48df-a969-c153e68f0376 |
| project_id | 87ba30b5315c40ec8ec5e3346112eae4 |
| id | ac387240-08dc-4b23-80f6-ffc481e6c87a |
| description | None |
+----------------+--------------------------------------+
删除共享组¶
使用 manila share-group-delete <group_id> 删除共享组。
删除共享组快照¶
使用 manila share-group-snapshot-delete <group_snapshot_id> 删除共享组快照。
重要提示
在尝试删除共享组或共享组快照之前,请确保已删除其所有组成共享和快照。用户需要先删除共享组快照,然后才能尝试删除共享组内的共享或组本身。