跳转至

运维-03-存储服务-cinder

常用命令

云硬盘创建

usage: openstack volume create [-h] [-f {json,shell,table,value,yaml}]
                            [-c COLUMN] [--max-width <integer>]
                            [--fit-width] [--print-empty] [--noindent]
                            [--prefix PREFIX] [--size <size>]
                            [--type <volume-type>]
                            [--image <image> | --snapshot <snapshot> | --source <volume> | --source-replicated <replicated-volume>]
                            [--description <description>] [--user <user>]
                            [--project <project>]
                            [--availability-zone <availability-zone>]
                            [--consistency-group consistency-group>]
                            [--property <key=value>] [--hint <key=value>]
                            [--multi-attach] [--bootable | --non-bootable]
                            [--read-only | --read-write] [--count <number>]
                            <name>

创建单个云硬盘

[root@10e150e68e69 test]# openstack volume create --size 10 test2
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2018-08-09T02:38:52Z                 |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 7a347ba5-6aac-47db-9123-604cdee83331 |
| multiattach         | False                                |
| name                | test2                                |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 10                                   |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| updated_at          | 2018-08-09T02:38:52Z                 |
| user_id             | d7dde959c5b54c9c8cb689a517729f7d     |
+---------------------+--------------------------------------+

创建完成以后,查看云硬盘的状态,若 Status 为 available 时,云硬盘创建成功

[root@10e150e68e69 test]# openstack volume list
+--------------------------------------+------------------------------------------------+-----------+------+-----------------------------------+
| ID                                   | Name                                           | Status    | Size | Attached to                       |
+--------------------------------------+------------------------------------------------+-----------+------+-----------------------------------+
| 7a347ba5-6aac-47db-9123-604cdee83331 | test2                                          | available |   10 |                                   |
+--------------------------------------+------------------------------------------------+-----------+------+-------------------

创建多个云硬盘

[root@10e150e68e69 test]# openstack volume create --size 10 --count 3 test
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2018-08-09T02:45:51Z                 |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 2bbafaaf-ba2a-4b30-a5a3-471f26c1f63b |
| multiattach         | False                                |
| name                | test-0                               |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 10                                   |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| updated_at          | 2018-08-09T02:45:52Z                 |
| user_id             | d7dde959c5b54c9c8cb689a517729f7d     |
+---------------------+--------------------------------------+

通过镜像创建云硬盘

[root@10e150e68e69 test]# openstack volume create --image 1ef3e8f0-94d5-46fe-883e-ede1120cee09 --size 50 test-image
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2018-08-09T05:48:04Z                 |
| description         | None                                 |
| encrypted           | False                                |
| id                  | c2a88f1b-b13d-45ab-a7c0-39ddc15c5274 |
| multiattach         | False                                |
| name                | test-image                           |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 50                                   |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| updated_at          | 2018-08-09T05:48:04Z                 |
| user_id             | d7dde959c5b54c9c8cb689a517729f7d     |
+---------------------+--------------------------------------+

通过云硬盘创建云硬盘

[root@10e150e68e69 test]# openstack volume create --source 138d1b8f-9a69-4adc-82db-5282e9aa030b  --size 20 test-volume
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2018-08-09T05:59:47Z                 |
| description         | None                                 |
| encrypted           | False                                |
| id                  | abf1f9fc-be6c-475a-8213-1331af29b45a |
| multiattach         | False                                |
| name                | test-volume                          |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 20                                   |
| snapshot_id         | None                                 |
| source_volid        | 138d1b8f-9a69-4adc-82db-5282e9aa030b |
| status              | creating                             |
| type                | None                                 |
| updated_at          | 2018-08-09T05:59:47Z                 |
| user_id             | d7dde959c5b54c9c8cb689a517729f7d     |
+---------------------+--------------------------------------+

指定磁盘类型创建云硬盘

[root@10e150e68e69 test]# openstack volume create --type SSD --size 10 test-volume-ssd
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2018-08-09T06:12:06Z                 |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 244a3b8c-2d4b-4637-bc16-96259d908ccc |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | test-volume-ssd                      |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 10                                   |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | SSD                                  |
| updated_at          | 2018-08-09T06:12:06Z                 |
| user_id             | 3b46e70afdc245e699803191498bfe79     |
+---------------------+--------------------------------------+

云硬盘删除

usage: openstack volume delete [-h] [--force | --purge]
                            <volume> [<volume> ...]

删除单个云硬盘

[root@10e150e68e69 test]# openstack volume delete test1

删除完成以后,查看云硬盘,若查找不到名字为 test1 的云硬盘,云硬盘删除成功

[root@10e150e68e69 test]# openstack volume list | grep test1
[root@10e150e68e69 test]#

删除多个云硬盘

[root@10e150e68e69 test]# openstack volume delete test-0 test-1 test-2

强制删除云硬盘

[root@10e150e68e69 test]# openstack volume delete --force test-image

注解

在删除云硬盘时,–force 需要 Admin 权限,才能执行

云硬盘编辑

usage: openstack volume set [-h] [--name <name>] [--size <size>]
                            [--description <description>] [--no-property]
                            [--property <key=value>]
                            [--image-property <key=value>] [--state <state>]
                            [--type <volume-type>]
                            [--retype-policy <retype-policy>]
                            [--bootable | --non-bootable]
                            [--read-only | --read-write]
                            <volume>

修改云硬盘名称及描述

[root@10e150e68e69 test]# openstack volume set --description "test-description" --name test-new 7a347ba5-6aac-47db-9123-604cdee83331

修改完成以后,需要验证,当 description 为 test-description 并且 name 为 test-new 时,修改成功

[root@10e150e68e69 test]# cinder show 7a347ba5-6aac-47db-9123-604cdee83331
+------------------------------+--------------------------------------+
| Property                     | Value                                |
+------------------------------+--------------------------------------+
| attached_servers             | []                                   |
| attachment_ids               | []                                   |
| availability_zone            | nova                                 |
| bootable                     | false                                |
| consistencygroup_id          | None                                 |
| created_at                   | 2018-08-09T02:38:52Z                 |
| description                  | test-description                     |
| encrypted                    | False                                |
| id                           | 7a347ba5-6aac-47db-9123-604cdee83331 |
| metadata                     |                                      |
| multiattach                  | False                                |
| name                         | test-new                             |
| os-vol-tenant-attr:tenant_id | 1a74867b94b8464ea3573dbcb38875ee     |
| replication_status           | None                                 |
| size                         | 10                                   |
| snapshot_id                  | None                                 |
| source_volid                 | None                                 |
| status                       | available                            |
| updated_at                   | 2018-08-10T06:01:45Z                 |
| user_id                      | d7dde959c5b54c9c8cb689a517729f7d     |
| volume_type                  | None                                 |
+------------------------------+--------------------------------------+

修改云硬盘大小

[root@10e150e68e69 test]# openstack volume set --size 30 7a347ba5-6aac-47db-9123-604cdee83331

注解

修改云硬盘大小时,新的 size 只能比原来大

修改云硬盘状态

[root@10e150e68e69 test]# openstack volume set --state error  7a347ba5-6aac-47db-9123-604cdee83331

注解

修改云硬盘状态需 Admin 权限,New volume state 支持 (“available”,”error”,”creating”, “deleting”,”in-use”,”attaching”,”detaching”,”error_deleting” or “maintenance”)

修改云硬盘类型

[root@10e150e68e69 test]# openstack volume set --type SSD 7a347ba5-6aac-47db-9123-604cdee83331

指定云硬盘为可启动盘

[root@10e150e68e69 test]# openstack volume set --bootable 7a347ba5-6aac-47db-9123-604cdee83331

设置卷属性及卷的镜像属性

[root@10e150e68e69 test]# openstack volume set --property type=ssd --image-property image=null 7a347ba5-6aac-47db-9123-604cdee83331

清除卷属性及卷的镜像属性

[root@10e150e68e69 test]# openstack volume unset --image-property image --property type 7a347ba5-6aac-47db-9123-604cdee83331

云硬盘查询及显示

usage: openstack volume show [-h] [-f {json,shell,table,value,yaml}]
                             [-c COLUMN] [--max-width <integer>] [--fit-width]
                             [--print-empty] [--noindent] [--prefix PREFIX]
                             <volume>

显示单个云硬盘详情

[root@10e150e68e69 test]# openstack volume show af2ac0eb-24f6-41a9-ad25-4483c3756c89
+------------------------------+--------------------------------------+
| Field                        | Value                                |
+------------------------------+--------------------------------------+
| attachments                  | []                                   |
| availability_zone            | nova                                 |
| bootable                     | false                                |
| consistencygroup_id          | None                                 |
| created_at                   | 2018-08-10T08:26:20Z                 |
| description                  | None                                 |
| encrypted                    | False                                |
| id                           | af2ac0eb-24f6-41a9-ad25-4483c3756c89 |
| multiattach                  | False                                |
| name                         | test1                                |
| os-vol-tenant-attr:tenant_id | 1a74867b94b8464ea3573dbcb38875ee     |
| properties                   |                                      |
| replication_status           | None                                 |
| size                         | 1                                    |
| snapshot_id                  | None                                 |
| source_volid                 | None                                 |
| status                       | available                            |
| type                         | None                                 |
| updated_at                   | 2018-08-10T08:28:49Z                 |
| user_id                      | d7dde959c5b54c9c8cb689a517729f7d     |
+------------------------------+--------------------------------------+

显示所有云硬盘

[root@10e150e68e69 test]# openstack volume list
+--------------------------------------+------------------------------------------------+-----------+------+-----------------------------------+
| ID                                   | Name                                           | Status    | Size | Attached to                       |
+--------------------------------------+------------------------------------------------+-----------+------+-----------------------------------+
| af2ac0eb-24f6-41a9-ad25-4483c3756c89 | test1                                          | available |    1 |                                   |
| 9dacf85a-c48d-4647-9bf1-d9f8e3e62f1a |                                                | in-use    |  100 | Attached to wwz-test on /dev/vda  |
| 7ba0e71d-a75d-4d58-acd2-1c8ad57f6d97 | 5c59caab-0bd6-494d-80ca-f85ad1902378-blank-vol | in-use    |  500 | Attached to wwz-1 on /dev/vdb     |
| 6d64efa6-553c-43e4-abaf-2c1ac8ec68d4 |                                                | in-use    |  100 | Attached to wwz-1 on /dev/vda     |
+--------------------------------------+------------------------------------------------+-----------+------+-----------------------------------+

卷备份创建

usage: openstack volume backup create [-h] [-f {json,shell,table,value,yaml}]
                                      [-c COLUMN] [--max-width <integer>]
                                      [--fit-width] [--print-empty]
                                      [--noindent] [--prefix PREFIX]
                                      [--name <name>]
                                      [--description <description>]
                                      [--container <container>]
                                      [--snapshot <snapshot>] [--force]
                                      [--incremental]
                                      <volume>

不指定名字创建卷备份

[root@10e150e68e69 test]# openstack volume backup create 76c26621-4b46-4b7c-9b9a-6cbdd83632d8
+-------+--------------------------------------+
| Field | Value                                |
+-------+--------------------------------------+
| id    | f4b189f9-5f03-4029-9fad-6fa1bf12718b |
| name  | None                                 |
+-------+--------------------------------------+

验证备份创建成功,显示 Status 为 available 状态

[root@10e150e68e69 test]# openstack volume backup list
+--------------------------------------+------+-------------+-----------+------+
| ID                                   | Name | Description | Status    | Size |
+--------------------------------------+------+-------------+-----------+------+
| f4b189f9-5f03-4029-9fad-6fa1bf12718b | None | None        | available |   10 |
+--------------------------------------+------+-------------+-----------+------+

指定名字和描述创建卷备份

[root@10e150e68e69 test]# openstack volume backup create --name test-backup --description "backup1" 76c26621-4b46-4b7c-9b9a-6cbdd83632d8
+-------+--------------------------------------+
| Field | Value                                |
+-------+--------------------------------------+
| id    | e2b9b224-5be8-4de5-8625-153357483593 |
| name  | test-backup                          |
+-------+--------------------------------------+

修改卷备份状态

[root@10e150e68e69 test]# openstack volume backup set --state error f4b189f9-5f03-4029-9fad-6fa1bf12718b

验证状态修改成功,卷备份的 Status 为 error

[root@10e150e68e69 test]# openstack volume backup list
+--------------------------------------+-------------+-------------+-----------+------+
| ID                                   | Name        | Description | Status    | Size |
+--------------------------------------+-------------+-------------+-----------+------+
| f4b189f9-5f03-4029-9fad-6fa1bf12718b | None        | None        | error     |   10 |
+--------------------------------------+-------------+-------------+-----------+------+

注解

在修改卷备份状态时,需要 Admin 权限,才能执行

卷备份恢复

usage: cinder backup-restore [--volume <volume>] [--name <name>] <backup>

卷备份恢复到新卷

[root@10e150e68e69 test]# cinder backup-restore e2b9b224-5be8-4de5-8625-153357483593
+-------------+-----------------------------------------------------+
| Property    | Value                                               |
+-------------+-----------------------------------------------------+
| backup_id   | e2b9b224-5be8-4de5-8625-153357483593                |
| volume_id   | 25b22f32-9c6a-49e8-9325-46706a20ce22                |
| volume_name | restore_backup_e2b9b224-5be8-4de5-8625-153357483593 |
+-------------+-----------------------------------------------------+

卷备份恢复到已有卷

[root@10e150e68e69 test]# cinder backup-restore --volume 2ca3d80c-d524-457a-b93b-8758d1f0f5d3  e2b9b224-5be8-4de5-8625-153357483593
+-------------+--------------------------------------+
| Property    | Value                                |
+-------------+--------------------------------------+
| backup_id   | e2b9b224-5be8-4de5-8625-153357483593 |
| volume_id   | 2ca3d80c-d524-457a-b93b-8758d1f0f5d3 |
| volume_name | test12                               |
+-------------+--------------------------------------+

注解

当卷备份恢复到已有卷时,已创建好卷的大小不小于备份的大小才能成功。

显示卷备份详情

[root@10e150e68e69 test]# openstack volume backup show e2b9b224-5be8-4de5-8625-153357483593
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| availability_zone     | nova                                 |
| container             | backups                              |
| created_at            | 2018-08-21T09:59:25Z                 |
| data_timestamp        | 2018-08-21T09:59:25.000000           |
| description           | backup1                              |
| fail_reason           | None                                 |
| has_dependent_backups | False                                |
| id                    | e2b9b224-5be8-4de5-8625-153357483593 |
| is_incremental        | False                                |
| name                  | test-backup                          |
| object_count          | 0                                    |
| size                  | 10                                   |
| snapshot_id           | None                                 |
| status                | available                            |
| updated_at            | 2018-08-22T01:49:17Z                 |
| volume_id             | 76c26621-4b46-4b7c-9b9a-6cbdd83632d8 |
+-----------------------+--------------------------------------+

删除卷备份

usage: openstack volume backup delete [-h] [--force] <backup> [<backup> ...]

删除单个卷备份

[root@10e150e68e69 test]# openstack volume backup delete e2b9b224-5be8-4de5-8625-153357483593

批量删除卷备份

[root@10e150e68e69 test]# openstack volume backup delete 5f3fb9d6-4b78-4aa7-b9c4-b81dd0d38bbd 7809ae42-420b-4cba-95ba-6f1568a0870c f60af0f3-95b7-4070-8537-d92f672d156e

卷迁移

usage: cinder-manage [-h] [--config-dir DIR] [--config-file PATH] [--debug]
                  [--log-config-append PATH]
                  [--log-date-format DATE_FORMAT] [--log-dir LOG_DIR]
                  [--log-file PATH] [--nodebug] [--nouse-journal]
                  [--nouse-json] [--nouse-syslog] [--nowatch-log-file]
                  [--state_path STATE_PATH]
                  [--syslog-log-facility SYSLOG_LOG_FACILITY]
                  [--use-journal] [--use-json] [--use-syslog] [--version]
                  [--watch-log-file]

查找下线的计算节点上 cinder-volume 管理的卷

[root@hb02-other-172e28e8e132 ~]# cinder --os-volume-api-version 3.33 list --all --filters host=hb02-other-172e28e8e137
+--------------------------------------+-----------+------+------+-------------+----------+-------------+
| ID                                   | Status    | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+------+------+-------------+----------+-------------+
| 003e92af-397d-44d0-aeae-6efe7045b42b | available | -    | 40   | SATA        | false    |             |
+--------------------------------------+-----------+------+------+-------------+----------+-------------+

迁移计算节点上 cinder 管理的卷

[root@hb02-other-172e28e8e132 ~]# cinder-manage --config-file /etc/cinder/cinder.conf volume update_host --currenthost hb02-other-172e28e8e137@ceph --newhost hb02-other-172e28e8e138@ceph

迁移后分别查找下线和上线的计算节点上 cinder-volume 管理的卷

[root@hb02-other-172e28e8e132 ~]# cinder --os-volume-api-version 3.33 list --all --filters host=hb02-other-172e28e8e137
+----+--------+------+------+-------------+----------+-------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+----+--------+------+------+-------------+----------+-------------+
+----+--------+------+------+-------------+----------+-------------+
[root@hb02-other-172e28e8e132 ~]# cinder --os-volume-api-version 3.33 list --all --filters host=hb02-other-172e28e8e138
+--------------------------------------+-----------+------+------+-------------+----------+-------------+
| ID                                   | Status    | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+------+------+-------------+----------+-------------+
| 003e92af-397d-44d0-aeae-6efe7045b42b | available | -    | 40   | SATA        | false    |             |
+--------------------------------------+-----------+------+------+-------------+----------+-------------+

查看下线节点的 cinder 服务

[root@hb02-other-172e28e8e132 ~]# cinder service-list|grep hb02-other-172e28e8e137
| cinder-backup    | hb02-other-172e28e8e137      | nova | enabled | up    | 2019-10-30T06:22:43.000000 | -               |
| cinder-volume    | hb02-other-172e28e8e137@ceph | nova | enabled | up    | 2019-10-30T06:22:45.000000 | -               |

对刚下线的节点的 cinder-volume service 进行 disable 操作

[root@hb02-other-172e28e8e132 ~]# cinder service-disable hb02-other-172e28e8e137@ceph cinder-volume
+-------------------------+---------------+----------+
| Host                    | Binary        | Status   |
+-------------------------+---------------+----------+
| hb02-other-172e28e8e137 | cinder-volume | disabled |
+-------------------------+---------------+----------+
[root@hb02-other-172e28e8e132 ~]# cinder service-disable hb02-other-172e28e8e137 cinder-backup
+-------------------------+---------------+----------+
| Host                    | Binary        | Status   |
+-------------------------+---------------+----------+
| hb02-other-172e28e8e137 | cinder-backup | disabled |
+-------------------------+---------------+----------+

对刚下线的节点的 cinder-volume service 进行 remove 操作

[root@hb02-other-172e28e8e132 ~]# cinder-manage service remove cinder-volume hb02-other-172e28e8e137@ceph
Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from group "DEFAULT".
Service cinder-volume on host hb02-other-172e28e8e137 removed.
[root@hb02-other-172e28e8e132 ~]# cinder-manage service remove cinder-backup hb02-other-172e28e8e137
Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from group "DEFAULT".
Service cinder-backup on host hb02-other-172e28e8e137 removed.

注解

计算节点下线时,需要对计算节点上 cinder-volume 管理的卷进行迁移。

创建 Qos

usage: openstack volume qos create [-h] [-f {json,shell,table,value,yaml}]
                                   [-c COLUMN] [--max-width <integer>]
                                   [--fit-width] [--print-empty] [--noindent]
                                   [--prefix PREFIX] [--consumer <consumer>]
                                   [--property <key=value>]
                                   <name>

注解

Qos 的所有操作都需要 Admin 权限,包括 Qos 的创建、删除、查询、编辑等。

创建 Qos 指定读写速率及读写 IOPS 数

[root@10e150e68e69 test]# openstack volume qos create --consumer front-end --property read_bytes_sec=104857600 --property write_bytes_sec=104857600 --property read_iops_sec=1000 --property write_iops_sec=1000 qos-ssd
+------------+------------------------------------------------------------------------------------------------------+
| Field      | Value                                                                                                |
+------------+------------------------------------------------------------------------------------------------------+
| consumer   | front-end                                                                                            |
| id         | 8b9cc9d6-d09f-4a58-83b6-07a800cce1d3                                                                 |
| name       | qos-ssd                                                                                              |
| properties | read_bytes_sec='104857600', read_iops_sec='1000', write_bytes_sec='104857600', write_iops_sec='1000' |
+------------+------------------------------------------------------------------------------------------------------+

创建完成,验证 Qos

[root@10e150e68e69 test]# openstack volume qos list
+--------------------------------------+---------+-----------+--------------+------------------------------------------------------------------------------------------------------+
| ID                                   | Name    | Consumer  | Associations | Properties                                                                                           |
+--------------------------------------+---------+-----------+--------------+------------------------------------------------------------------------------------------------------+
| 8b9cc9d6-d09f-4a58-83b6-07a800cce1d3 | qos-ssd | front-end |              | read_bytes_sec='104857600', read_iops_sec='1000', write_bytes_sec='104857600', write_iops_sec='1000' |
+--------------------------------------+---------+-----------+--------------+------------------------------------------------------------------------------------------------------+

注解

Qos 创建时,现有版本要求 Consumer 指定 front-end 这种方式,不要使用默认方式;另外 read_bytes_sec、read_iops_sec、write_bytes_sec、write_iops_sec 和 total_bytes_sec、total_iops_sec 不能混用。

创建 Qos 指定混合读写速率及混合读写 IOPS 数

[root@10e150e68e69 test]# openstack volume qos create --consumer front-end --property total_bytes_sec=52428800 --property total_iops_sec=500 qos-sas
+------------+--------------------------------------------------+
| Field      | Value                                            |
+------------+--------------------------------------------------+
| consumer   | front-end                                        |
| id         | 031616e2-f4fb-4d7e-adcc-1bc77a1caaf0             |
| name       | qos-sas                                          |
| properties | total_bytes_sec='52428800', total_iops_sec='500' |
+------------+--------------------------------------------------+

注解

total 和上面四个的区别: total 是限制总共的 IOPS,混合读写的上限;上面四个是限制单个读或者单个写

修改 Qos 的属性

[root@10e150e68e69 test]# openstack volume qos set --property total_bytes_sec=104857600 --property total_iops_sec=800 qos-sas

修改完成,验证修改

[root@10e150e68e69 test]# openstack volume qos list
+--------------------------------------+---------+-----------+--------------+------------------------------------------------------------------------------------------------------+
| ID                                   | Name    | Consumer  | Associations | Properties                                                                                           |
+--------------------------------------+---------+-----------+--------------+------------------------------------------------------------------------------------------------------+
| 031616e2-f4fb-4d7e-adcc-1bc77a1caaf0 | qos-sas | front-end |              | total_bytes_sec='104857600', total_iops_sec='800'                                                    |
+--------------------------------------+---------+-----------+--------------+---------------------------------

清除 Qos 的属性

[root@10e150e68e69 test]# openstack volume qos unset --property total_iops_sec qos-sas

验证清除,查看 Qos 的现有属性

[root@10e150e68e69 test]# openstack volume qos list
+--------------------------------------+---------+-----------+--------------+------------------------------------------------------------------------------------------------------+
| ID                                   | Name    | Consumer  | Associations | Properties                                                                                           |
+--------------------------------------+---------+-----------+--------------+------------------------------------------------------------------------------------------------------+
| 031616e2-f4fb-4d7e-adcc-1bc77a1caaf0 | qos-sas | front-end |              | total_bytes_sec='104857600'                                                                          |
+--------------------------------------+---------+-----------+--------------+--------------------------------------

Qos 解绑卷类型

usage: openstack volume qos disassociate [-h]
                                         [--volume-type <volume-type> | --all]
                                         <qos-spec>

Qos 解绑单个卷类型

[root@10e150e68e69 test]# openstack volume qos disassociate --volume-type sas_test qos-sas

Qos 解绑所有卷类型

[root@10e150e68e69 test]# openstack volume qos disassociate --all qos-sas

显示 Qos 的详情

[root@10e150e68e69 test]# openstack volume qos show 031616e2-f4fb-4d7e-adcc-1bc77a1caaf0
+------------+--------------------------------------+
| Field      | Value                                |
+------------+--------------------------------------+
| consumer   | front-end                            |
| id         | 031616e2-f4fb-4d7e-adcc-1bc77a1caaf0 |
| name       | qos-sas                              |
| properties | total_bytes_sec='104857600'          |
+------------+--------------------------------------+

删除 Qos

usage: openstack volume qos delete [-h] [--force] <qos-spec> [<qos-spec> ...]

删除单个 Qos

[root@10e150e68e69 test]# openstack volume qos delete qos-sas1

删除多个 Qos

[root@10e150e68e69 test]# openstack volume qos delete qos-sas2 qos-sas3

强制删除 Qos

[root@10e150e68e69 test]# openstack volume qos delete --force qos-sas

注解

强制删除正在使用(与卷类型绑定)的 Qos

创建卷类型

usage: openstack volume type create [-h] [-f {json,shell,table,value,yaml}]
                                    [-c COLUMN] [--max-width <integer>]
                                    [--fit-width] [--print-empty] [--noindent]
                                    [--prefix PREFIX]
                                    [--description <description>]
                                    [--public | --private]
                                    [--property <key=value>]
                                    [--project <project>]
                                    [--encryption-provider <provider>]
                                    [--encryption-cipher <cipher>]
                                    [--encryption-key-size <key-size>]
                                    [--encryption-control-location <control-location>]
                                    [--project-domain <project-domain>]
                                    <name>

注解

卷类型的操作除了 list、show 是所有的用户都可以执行,其余创建、删除、编辑都需要 Admin 权限

创建公共卷类型

[root@10e150e68e69 test]# openstack volume type create sas_test
+-------------+--------------------------------------+
| Field       | Value                                |
+-------------+--------------------------------------+
| description | None                                 |
| id          | 7ffddc3e-6d3c-42b0-9eef-cace3502fcb2 |
| is_public   | True                                 |
| name        | sas_test                             |
+-------------+--------------------------------------+

创建完成,验证

[root@10e150e68e69 test]# openstack volume type list
+--------------------------------------+----------+-----------+
| ID                                   | Name     | Is Public |
+--------------------------------------+----------+-----------+
| 7ffddc3e-6d3c-42b0-9eef-cace3502fcb2 | sas_test | True      |
| 814e4d74-51ad-4710-8272-fcfb07515c4b | SATA1    | True      |
| 8c53245e-43f9-48e6-8927-c24f37de23b4 | fox      | True      |
| 987b69d6-e6a4-4b91-aec0-f172b44f9950 | SAS      | True      |
| c6bf836d-20b0-4a23-992a-7e0a2074f841 | SATA     | True      |
| e99d661d-1d7d-4327-9519-84d946770174 | SSD      | True      |
| 55fee3de-9078-4e4d-83c4-7d43bad657f8 | os_type  | True      |
+--------------------------------------+----------+-----------+

编辑卷类型

usage: openstack volume type set [-h] [--name <name>]
                                 [--description <description>]
                                 [--property <key=value>]
                                 [--project <project>]
                                 [--project-domain <project-domain>]
                                 [--encryption-provider <provider>]
                                 [--encryption-cipher <cipher>]
                                 [--encryption-key-size <key-size>]
                                 [--encryption-control-location <control-location>]
                                 <volume-type>

编辑卷类型的描述及添加属性

[root@10e150e68e69 test]# openstack volume type set --description sas_des --property tpye=sas 7ffddc3e-6d3c-42b0-9eef-cace3502fcb2

编辑完成以后,验证

[root@10e150e68e69 test]# openstack volume type show sas_test
+--------------------+--------------------------------------+
| Field              | Value                                |
+--------------------+--------------------------------------+
| access_project_ids | None                                 |
| description        | sas_des                              |
| id                 | 7ffddc3e-6d3c-42b0-9eef-cace3502fcb2 |
| is_public          | True                                 |
| name               | sas_test                             |
| properties         | tpye='sas'                           |
| qos_specs_id       | None                                 |
+--------------------+--------------------------------------+

清除卷类型的设置

[root@10e150e68e69 test]# openstack volume type unset --property tpye 7ffddc3e-6d3c-42b0-9eef-cace3502fcb2

删除卷类型

usage: openstack volume type delete [-h] <volume-type> [<volume-type> ...]

删除单个卷类型

[root@10e150e68e69 test]# openstack volume type delete sas_test

删除多个卷类型

[root@10e150e68e69 test]# openstack volume type delete 77f7ad6d-42dc-49d9-babc-fb5147b62d0d d25d9345-977a-4aae-980f-e52608f13f8e

Cinder 服务查询

usage: openstack volume service list [-h] [-f {csv,json,table,value,yaml}]
                                     [-c COLUMN] [--max-width <integer>]
                                     [--fit-width] [--print-empty]
                                     [--noindent]
                                     [--quote {all,minimal,none,nonnumeric}]
                                     [--sort-column SORT_COLUMN]
                                     [--host <host>] [--service <service>]
                                     [--long]

注解

Cinder 服务查询需 Admin 权限

以 host 查询服务

[root@10e150e68e69 test]# openstack volume service list --host 10e150e68e3
+---------------+------------------+------+---------+-------+----------------------------+
| Binary        | Host             | Zone | Status  | State | Updated At                 |
+---------------+------------------+------+---------+-------+----------------------------+
| cinder-volume | 10e150e68e3@ceph | nova | enabled | up    | 2018-08-23T02:09:13.000000 |
| cinder-backup | 10e150e68e3      | nova | enabled | up    | 2018-08-23T02:09:19.000000 |
+---------------+------------------+------+---------+-------+----------------------------+

以 service 查询服务

[root@10e150e68e69 test]# openstack volume service list --service cinder-volume
+---------------+-------------------+------+---------+-------+----------------------------+
| Binary        | Host              | Zone | Status  | State | Updated At                 |
+---------------+-------------------+------+---------+-------+----------------------------+
| cinder-volume | 10e150e68e3@ceph  | nova | enabled | up    | 2018-08-23T02:08:53.000000 |
| cinder-volume | 10e150e68e4@ceph  | nova | enabled | up    | 2018-08-23T02:08:57.000000 |
| cinder-volume | 10e150e68e5@ceph  | nova | enabled | up    | 2018-08-23T02:08:49.000000 |
| cinder-volume | 10e150e68e6@ceph  | nova | enabled | up    | 2018-08-23T02:08:51.000000 |
+---------------+-------------------+------+---------+-------+----------------------------+

查询全部服务

[root@10e150e68e69 test]# openstack volume service list
+------------------+-------------------+------+---------+-------+----------------------------+
| Binary           | Host              | Zone | Status  | State | Updated At                 |
+------------------+-------------------+------+---------+-------+----------------------------+
| cinder-scheduler | 10e150e68e69      | nova | enabled | up    | 2018-08-23T02:05:43.000000 |
| cinder-scheduler | 10e150e68e71      | nova | enabled | up    | 2018-08-23T02:05:50.000000 |
| cinder-scheduler | 10e150e68e70      | nova | enabled | up    | 2018-08-23T02:05:48.000000 |
| cinder-volume    | 10e150e68e3@ceph  | nova | enabled | up    | 2018-08-23T02:05:43.000000 |
| cinder-backup    | 10e150e68e3       | nova | enabled | up    | 2018-08-23T02:05:49.000000 |
| cinder-volume    | 10e150e68e4@ceph  | nova | enabled | up    | 2018-08-23T02:05:47.000000 |
| cinder-backup    | 10e150e68e4       | nova | enabled | up    | 2018-08-23T02:05:49.000000 |
| cinder-volume    | 10e150e68e5@ceph  | nova | enabled | up    | 2018-08-23T02:05:49.000000 |
| cinder-backup    | 10e150e68e5       | nova | enabled | up    | 2018-08-23T02:05:45.000000 |
| cinder-backup    | 10e150e68e6       | nova | enabled | up    | 2018-08-23T02:05:50.000000 |
| cinder-volume    | 10e150e68e6@ceph  | nova | enabled | up    | 2018-08-23T02:05:41.000000 |
+------------------+-------------------+------+---------+-------+----------------------------+

Cinder 服务状态修改

usage: openstack volume service set [-h] [--enable | --disable]
                                    [--disable-reason <reason>]
                                    <host> <service>

注解

Cinder 服务状态修改需 Admin 权限

[root@10e150e68e69 test]# openstack volume service set --disable 10e150e68e3 cinder-backup

服务修改完成以后,验证

[root@10e150e68e69 test]# openstack volume service list --host 10e150e68e3
+---------------+------------------+------+----------+-------+----------------------------+
| Binary        | Host             | Zone | Status   | State | Updated At                 |
+---------------+------------------+------+----------+-------+----------------------------+
| cinder-volume | 10e150e68e3@ceph | nova | enabled  | up    | 2018-08-23T02:32:14.000000 |
| cinder-backup | 10e150e68e3      | nova | disabled | up    | 2018-08-23T02:32:09.000000 |
+---------------+------------------+------+----------+-------+----------------------------+
[root@10e150e68e69 test]# openstack volume service set --enable 10e150e68e3 cinder-backup

服务修改完成以后,验证

[root@10e150e68e69 test]# openstack volume service list --host 10e150e68e3
+---------------+------------------+------+---------+-------+----------------------------+
| Binary        | Host             | Zone | Status  | State | Updated At                 |
+---------------+------------------+------+---------+-------+----------------------------+
| cinder-volume | 10e150e68e3@ceph | nova | enabled | up    | 2018-08-23T02:33:04.000000 |
| cinder-backup | 10e150e68e3      | nova | enabled | up    | 2018-08-23T02:33:03.000000 |
+---------------+------------------+------+---------+-------+----------------------------+

故障处理

问题1:创建 Volume 一直失败

问题现象

创建 Volume,Volume 会报 ERROR,多次创建,都会报错。

处理过程

  1. 根据创建 Volume 报错,查看 cinder-service 的状态,发现大量的 cinder-volume 处于 down 的状态。
  2. 出现这种问题怀疑是后端 Ceph 或者 RabbitMQ 出现问题,因为别的服务都正常,所以初步怀疑 Ceph 集群可能有问题。
  3. 查看 cinder-volume 日志,发现有 RADOS 相关报错。
  4. 检查 Ceph 集群状态,Ceph 状态为 error;大量 OSD 节点出现 down 的状态。
  5. 尝试启动 OSD,发现可以正常启动,过一会儿还会 down,考虑 OSD 是自杀或者被他杀。
  6. 再次启动 OSD,观察 osd.0 日志,发现无法收到 peer OSD 心跳信息,考虑网络问题。
  7. 互相 ping 正常,telnet OSD 的相应端口,发现不通,检查防火墙,发现相应端口没有放开。
  8. 添加相应防火墙规则。

问题原因

OpenStack Cinder 后端对接 Ceph 存储,Ceph出现问题,故无法创建 Volume; OSD 端口防火墙规则丢失,导致 peer OSD 心跳无法正常发送收取,由于 Ceph 的存活检测机制,致使 Monitor 将 OSD 标记为 down,当 PG 内 OSD down 数量超过最小副本数,Ceph 集群就会处于 error 状态。

问题2:卷删除的时候失败

问题现象

创建虚拟机时,以卷启动,然后删除虚拟机,之后删除卷,发现卷无法删除。

处理过程

  1. 通过 cinder list 查看卷的状态。

2-1-cinder-list

  1. 切换为 Admin 权限,修改卷的状态为 available。
# cinder reset-state --attach-status detached --state available a4a23529-be0c-49c8-b9d5-0ceda5bf821f
  1. 确认卷的状态修改成功。

  2. 执行 cinder delete 删除卷。

问题原因

在删除虚拟机时,程序没有完成将卷和虚拟机的分离,导致卷的状态错误,最终无法正常删除。