运维-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,多次创建,都会报错。
处理过程¶
- 根据创建 Volume 报错,查看 cinder-service 的状态,发现大量的 cinder-volume 处于 down 的状态。
- 出现这种问题怀疑是后端 Ceph 或者 RabbitMQ 出现问题,因为别的服务都正常,所以初步怀疑 Ceph 集群可能有问题。
- 查看 cinder-volume 日志,发现有 RADOS 相关报错。
- 检查 Ceph 集群状态,Ceph 状态为 error;大量 OSD 节点出现 down 的状态。
- 尝试启动 OSD,发现可以正常启动,过一会儿还会 down,考虑 OSD 是自杀或者被他杀。
- 再次启动 OSD,观察 osd.0 日志,发现无法收到 peer OSD 心跳信息,考虑网络问题。
- 互相 ping 正常,telnet OSD 的相应端口,发现不通,检查防火墙,发现相应端口没有放开。
- 添加相应防火墙规则。
问题原因¶
OpenStack Cinder 后端对接 Ceph 存储,Ceph出现问题,故无法创建 Volume; OSD 端口防火墙规则丢失,导致 peer OSD 心跳无法正常发送收取,由于 Ceph 的存活检测机制,致使 Monitor 将 OSD 标记为 down,当 PG 内 OSD down 数量超过最小副本数,Ceph 集群就会处于 error 状态。
问题2:卷删除的时候失败¶
问题现象¶
创建虚拟机时,以卷启动,然后删除虚拟机,之后删除卷,发现卷无法删除。
处理过程¶
- 通过 cinder list 查看卷的状态。
- 切换为 Admin 权限,修改卷的状态为 available。
# cinder reset-state --attach-status detached --state available a4a23529-be0c-49c8-b9d5-0ceda5bf821f
-
确认卷的状态修改成功。
-
执行 cinder delete 删除卷。
问题原因¶
在删除虚拟机时,程序没有完成将卷和虚拟机的分离,导致卷的状态错误,最终无法正常删除。