Atom feed of this document
  

 一致性组

OpenStack块存储服务支持一致性组,为一致性组创建快照来实现的。此特性利用了存储级别的一致性技术。它允许在同个一致性组在同一个点快照多个卷从而实现数据的一致性。使用块存储的命令行即可操作一致性组。

[注意]注意

只有块存储 V2 API支持一致性组。当使用块存储命令行来操作一致性组时,你可以指定参数--os-volume-api-version 2

在使用一致性组之前,要确保所使用的块存储驱动是支持一致性组的,这可以通过阅读块存储帮助文档或者咨询驱动的维护者。只有一小部分的驱动实现了此特性。默认的LVM驱动目前还不支持一致性组,因为在此级别还没有一致性技术的实现。

在使用一致性组之前,你必须为一致性组API更改规则,这在配置文件/etc/cinder/policy.json 中修改。默认情况下,一致性组API是禁用的。在运行一致性组操作之前启用它。

这里是一致性组已经存在的规则:

"consistencygroup:create": "group:nobody",
"consistencygroup:delete": "group:nobody",
"consistencygroup:get": "group:nobody",
"consistencygroup:get_all": "group:nobody",
"consistencygroup:create_cgsnapshot" : "group:nobody",
"consistencygroup:delete_cgsnapshot": "group:nobody",
"consistencygroup:get_cgsnapshot": "group:nobody",
"consistencygroup:get_all_cgsnapshots": "group:nobody",

通过删除 group:nobody 来启用这些API,按照下面来变更:

"consistencygroup:create": "",
"consistencygroup:delete": "",
"consistencygroup:update": "",
"consistencygroup:get": "",
"consistencygroup:get_all": "",
"consistencygroup:create_cgsnapshot" : "",
"consistencygroup:delete_cgsnapshot": "",
"consistencygroup:get_cgsnapshot": "",
"consistencygroup:get_all_cgsnapshots": "",

在变更规则后要重启块存储API服务。

下面的一致性组操作时被支持的:

  • 创建一个一致性组,指定卷的类型。

    [注意]注意

    一个一致性组可支持多于一个卷类型。调度器会响应所发现的后端所支持的所有给定的卷的类型。

    [注意]注意

    由同一个后端,一个一致性组只包含卷的托管。

    [注意]注意

    一个一致性组在创建后是空的,后续创建卷然后才能加入进来。

  • 展示一个一致性组。

  • 列出一致性组。

  • 创建一个卷然后将其添加到一致性组,需要指定卷的类型和一致性组ID。

  • 为一个一致性组创建一快照:

  • 展现一致性组的快照:

  • 列出一致性组快照:

  • 删除一致性组的快照:

  • 删除一致性组。

  • 修改一个一致性组。

  • 从另外的一致性组的快照创建一个一致性组。

如果卷在一致性组中,下面的操作是不被允许的:

  • 卷迁移。

  • 卷类型

  • 卷删除。

    [注意]注意

    删除一个一致性组,其包含的所有的卷都会被删除。

若卷的快照在一致性组的快照中,以下操作时不被允许的:

  • 卷快照删除。

    [注意]注意

    删除一个一致性组快照,其包含的所有的卷的快照都会被删除。

一致性组操作的细节如下所示。

创建一个一致性组:

cinder consisgroup-create
[--name name]
[--description description]
[--availability-zone availability-zone]
volume-types
[注意]注意

需要参数volume-types,可以是卷类型的名称或UUID的列表,中间使用逗号隔开,注意不是空格。举例来说, volumetype1,volumetype2,volumetype3.

$ cinder consisgroup-create --name bronzeCG2 volume_type_1

+-------------------+--------------------------------------+
|      Property     |                Value                 |
+-------------------+--------------------------------------+
| availability_zone |                 nova                 |
|     created_at    |      2014-12-29T12:59:08.000000      |
|    description    |                 None                 |
|         id        | 1de80c27-3b2f-47a6-91a7-e867cbe36462 |
|        name       |              bronzeCG2               |
|       status      |               creating               |
+-------------------+--------------------------------------+

显示一致性组:

$ cinder consisgroup-show 1de80c27-3b2f-47a6-91a7-e867cbe36462
+-------------------+--------------------------------------+
|      Property     |                Value                 |
+-------------------+--------------------------------------+
| availability_zone |                 nova                 |
|     created_at    |      2014-12-29T12:59:08.000000      |
|    description    |                 None                 |
|         id        | 2a6b2bda-1f43-42ce-9de8-249fa5cbae9a |
|        name       |              bronzeCG2               |
|       status      |              available               |
+-------------------+--------------------------------------+

列出一致性组:

$ cinder consisgroup-list
+--------------------------------------+-----------+-----------+
|                  ID                  |   Status  |    Name   |
+--------------------------------------+-----------+-----------+
| 1de80c27-3b2f-47a6-91a7-e867cbe36462 | available | bronzeCG2 |
| 3a2b3c42-b612-479a-91eb-1ed45b7f2ad5 |   error   |  bronzeCG |
+--------------------------------------+-----------+-----------+

创建一个卷且将其添加到一个一致性组:

[注意]注意

当创建一个卷然后将其添加到一致性组时,卷的类型和一致性组的ID是必须提供的。这是因为一致性组可以支持多个卷类型。

$ cinder create --volume-type volume_type_1 --name cgBronzeVol --consisgroup-id 1de80c27-3b2f-47a6-91a7-e867cbe36462 1
+---------------------------------------+----------------------------------------+
|                Property               |                 Value                  |
+---------------------------------------+----------------------------------------+
|              attachments              |                   []                   |
|           availability_zone           |                  nova                  |
|                bootable               |                 false                  |
|          consistencygroup_id          |  1de80c27-3b2f-47a6-91a7-e867cbe36462  |
|               created_at              |       2014-12-29T13:16:47.000000       |
|              description              |                  None                  |
|               encrypted               |                 False                  |
|                   id                  |  5e6d1386-4592-489f-a56b-9394a81145fe  |
|                metadata               |                   {}                   |
|                  name                 |              cgBronzeVol               |
|         os-vol-host-attr:host         |       server-1@backend-1#pool-1        |
|     os-vol-mig-status-attr:migstat    |                  None                  |
|     os-vol-mig-status-attr:name_id    |                  None                  |
|      os-vol-tenant-attr:tenant_id     |    1349b21da2a046d8aa5379f0ed447bed    |
|   os-volume-replication:driver_data   |                  None                  |
| os-volume-replication:extended_status |                  None                  |
|           replication_status          |                disabled                |
|                  size                 |                   1                    |
|              snapshot_id              |                  None                  |
|              source_volid             |                  None                  |
|                 status                |                creating                |
|                user_id                |    93bdea12d3e04c4b86f9a9f172359859    |
|              volume_type              |             volume_type_1              |
+---------------------------------------+----------------------------------------+

为一个一致性组创建一快照:

$ cinder cgsnapshot-create 1de80c27-3b2f-47a6-91a7-e867cbe36462
+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
| consistencygroup_id | 1de80c27-3b2f-47a6-91a7-e867cbe36462 |
|      created_at     |      2014-12-29T13:19:44.000000      |
|     description     |                 None                 |
|          id         | d4aff465-f50c-40b3-b088-83feb9b349e9 |
|         name        |                 None                 |
|        status       |               creating               |
+---------------------+-------------------------------------+

展现一致性组的快照:

$ cinder cgsnapshot-show d4aff465-f50c-40b3-b088-83feb9b349e9

列出一致性组快照:

$ cinder cgsnapshot-list
+--------------------------------------+--------+----------+
|                  ID                  | Status | Name     |
+--------------------------------------+--------+----------+
| 6d9dfb7d-079a-471e-b75a-6e9185ba0c38 | available  | None |
| aa129f4d-d37c-4b97-9e2d-7efffda29de0 | available  | None |
| bb5b5d82-f380-4a32-b469-3ba2e299712c | available  | None |
| d4aff465-f50c-40b3-b088-83feb9b349e9 | available  | None |
+--------------------------------------+--------+----------+

删除一致性组的快照:

$ cinder cgsnapshot-delete d4aff465-f50c-40b3-b088-83feb9b349e9

删除一致性组:

[注意]注意

当卷在一致性组时需要强制标记。

$ cinder consisgroup-delete --force 1de80c27-3b2f-47a6-91a7-e867cbe36462

修改一个一致性组:

cinder consisgroup-update
[--name NAME]
[--description DESCRIPTION]
[--add-volumes UUID1,UUID2,......]
[--remove-volumes UUID3,UUID4,......]
CG

需要参数CG,它可以使一致性组的名称或UUID。 UUID1,UUID2,......是由逗号隔开的已经添加到一致性组的卷,默认为None。 UUID3,UUID4,......是已经删除的一致性组的卷,默认也为None。

$ cinder consisgroup-update --name 'new name' --description 'new description' --add-volumes 0b3923f5-95a4-4596-a536-914c2c84e2db,1c02528b-3781-4e32-929c-618d81f52cf3 --remove-volumes 8c0f6ae4-efb1-458f-a8fc-9da2afcc5fb1,a245423f-bb99-4f94-8c8c-02806f9246d8 1de80c27-3b2f-47a6-91a7-e867cbe36462

从另外的一致性组的快照创建一个一致性组。

cinder consisgroup-create-from-src
[--cgsnapshot CGSNAPSHOT]
[--name NAME]
[--description DESCRIPTION]

参数CGSNAPSHOT是一致性组的快照的名称或UUID。

$ cinder consisgroup-create-from-src --cgsnapshot 6d9dfb7d-079a-471e-b75a-6e9185ba0c38 --name 'new cg' --description 'new cg from cgsnapshot'
Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...