“OpenStack:Cinder组件的运维”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
(创建页面,内容为“==Cinder的安装== ==修改配置文件== vi /etc/xiandian/openrc.sh <nowiki>##--------------------Cinder Config--------------------## ##Password for Mysql cinder…”)
 
第1行: 第1行:
 
==Cinder的安装==
 
==Cinder的安装==
==修改配置文件==
+
===修改配置文件===
 
vi /etc/xiandian/openrc.sh
 
vi /etc/xiandian/openrc.sh
  
第14行: 第14行:
 
</nowiki>
 
</nowiki>
  
==执行脚本文件==
+
===执行脚本文件===
 
控制节点:
 
控制节点:
 +
 +
cd /usr/local/bin
  
 
iaas-install-cinder-controller.sh
 
iaas-install-cinder-controller.sh
第22行: 第24行:
  
 
iaas-install-cinder-compute.sh
 
iaas-install-cinder-compute.sh
 +
 +
== Cinder的CLI命令行使用 ==
 +
 +
Cinder作为OpenStack平台的块存储组件,提供了一系列存储操作的CLI命令行用于管理存储卷,可以灵活地对存储卷进行创建、扩容、删除和加密等操作。
 +
==创建cinder存储卷==
 +
用户可以通过CLI命令创建一个简单的Cinder存储卷,命令如下。
 +
 +
[root@controller ~]# cinder create --display-name test1 1
 +
 +
<nowiki>
 +
+---------------------+--------------------------------------+
 +
|      Property      |                Value                |
 +
+---------------------+--------------------------------------+
 +
|    attachments    |                  []                  |
 +
|  availability_zone  |                nova                |
 +
|      bootable      |                false                |
 +
|      created_at    |      2018-12-14T10:14:36.111709      |
 +
| display_description |                None                |
 +
|    display_name    |                test1                |
 +
|      encrypted      |                False                |
 +
|          id        | 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |
 +
|      metadata      |                  {}                  |
 +
|        size        |                  1                  |
 +
|    snapshot_id    |                None                |
 +
|    source_volid    |                None                |
 +
|        status      |              creating              |
 +
|    volume_type    |                None                |
 +
+---------------------+--------------------------------------+</nowiki>
 +
 +
[root@controller ~]# cinder list
 +
 +
<nowiki>+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
 +
|                  ID                  |  Status  |    Display Name    | Size | Volume Type | Bootable | Attached to |
 +
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
 +
| 0a30c060-425d-4c74-8623-1ea42f01f3aa |  error  |  type_test_demo  |  1  |    test1    |  false  |            |
 +
| 3ea86c92-4f15-4aa0-90fa-99b37b107b3a |  error  | cinder-volume-demo | 100  |    None    |  false  |            |
 +
| 4bf67c03-2c12-43f8-842b-f971e5c0d97b | available | cinder-volume-demo |  1  |    None    |  false  |            |
 +
| 5d4127c8-0c9d-4703-ada8-d9e716d87565 | available | cinder-volume-demo |  10  |    None    |  false  |            |
 +
| 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 | available |      test1        |  1  |    None    |  false  |            |
 +
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
 +
[root@controller ~]#</nowiki>
 +
 +
==删除指定的Cinder卷==
 +
删除Cinder卷的方法比较简单,用户可以通过命令cinder delete <volume> [<volume> ...] 来删除一个或多个Cinder卷。
 +
 +
比如说:删除我们上面新创建的type_test_demo这个cinder卷
 +
 +
[root@controller ~]# cinder delete test1
 +
 +
==指定Cinder卷类型==
 +
===查询type标识的卷类型===
 +
可以通过“cinder type-list”命令来查看现有的卷类型
 +
 +
[root@controller ~]# cinder type-list
 +
 +
<nowiki>+----+------+
 +
| ID | Name |
 +
+----+------+
 +
+----+------+</nowiki>
 +
 +
===创建卷类型===
 +
 +
[root@controller ~]# cinder type-create test1
 +
 +
<nowiki>+--------------------------------------+-------+
 +
|                  ID                  |  Name |
 +
+--------------------------------------+-------+
 +
| 6ddb6645-a948-40cc-b614-0457f802f66d | test1 |
 +
+--------------------------------------+-------+</nowiki>
 +
 +
[root@controller ~]# cinder type-list
 +
 +
<nowiki>+--------------------------------------+-------+
 +
|                  ID                  |  Name |
 +
+--------------------------------------+-------+
 +
| 6ddb6645-a948-40cc-b614-0457f802f66d | test1 |
 +
+--------------------------------------+-------+</nowiki>
 +
 +
===创建并查询extra_spec表示的卷类型===
 +
除了可以通过cinder创建type类型的卷标识外,OpenStack还允许通过cinder创建extra_spec类型的卷类型,两个功能基本类似,extra_spec利用一组键值对来对cinder卷进行标识。
 +
 +
可以通过命令cinder type-key lvm set volume_backend_name=LVM_iSCSI来创建键为volume_backend_name,值为LVM_iSCSI的extra_spec类型标识。
 +
 +
通过cinder extra-specs-list来查看已创建的extra_spec标识。
 +
 +
[root@controller ~]# cinder extra-specs-list
 +
 +
<nowiki>+--------------------------------------+-------+-------------+
 +
|                  ID                  |  Name | extra_specs |
 +
+--------------------------------------+-------+-------------+
 +
| 6ddb6645-a948-40cc-b614-0457f802f66d | test1 |      {}    |
 +
+--------------------------------------+-------+-------------+</nowiki>
 +
 +
会发现标记红色椭圆的地方是空的,然后我们运行
 +
 +
[root@controller ~]# cinder type-key test1 set volume_backend_name=1
 +
 +
[root@controller ~]# cinder extra-specs-list
 +
 +
<nowiki>
 +
+--------------------------------------+-------+--------------------------------+
 +
|                  ID                  |  Name |          extra_specs          |
 +
+--------------------------------------+-------+--------------------------------+
 +
| 6ddb6645-a948-40cc-b614-0457f802f66d | test1 | {u'volume_backend_name': u'1'} |
 +
+--------------------------------------+-------+--------------------------------+</nowiki>
 +
 +
===创建云硬盘===
 +
[root@controller ~]#  cinder create --display-name type_test_demo --volume_type test1 1
 +
 +
<nowiki>+---------------------+--------------------------------------+
 +
|      Property      |                Value                |
 +
+---------------------+--------------------------------------+
 +
|    attachments    |                  []                  |
 +
|  availability_zone  |                nova                |
 +
|      bootable      |                false                |
 +
|      created_at    |      2018-12-14T10:13:36.937899      |
 +
| display_description |                None                |
 +
|    display_name    |            type_test_demo            |
 +
|      encrypted      |                False                |
 +
|          id        | 0a30c060-425d-4c74-8623-1ea42f01f3aa |
 +
|      metadata      |                  {}                  |
 +
|        size        |                  1                  |
 +
|    snapshot_id    |                None                |
 +
|    source_volid    |                None                |
 +
|        status      |              creating              |
 +
|    volume_type    |                test1                |
 +
+---------------------+--------------------------------------+</nowiki>
 +
 +
创建成功后可以通过命令查看结果,可以看到该卷的volume_type字段已修改为“test1”。查询命令如下
 +
 +
[root@controller ~]#  cinder show type_test_demo
 +
 +
<nowiki>+--------------------------------+--------------------------------------+
 +
|            Property            |                Value                |
 +
+--------------------------------+--------------------------------------+
 +
|          attachments          |                  []                  |
 +
|      availability_zone        |                nova                |
 +
|            bootable            |                false                |
 +
|          created_at          |      2018-12-14T10:13:36.000000      |
 +
|      display_description      |                None                |
 +
|          display_name          |            type_test_demo            |
 +
|          encrypted            |                False                |
 +
|              id              | 0a30c060-425d-4c74-8623-1ea42f01f3aa |
 +
|            metadata            |                  {}                  |
 +
|    os-vol-host-attr:host      |                None                |
 +
| os-vol-mig-status-attr:migstat |                None                |
 +
| os-vol-mig-status-attr:name_id |                None                |
 +
|  os-vol-tenant-attr:tenant_id  |  00d9dcd033d542b68614c88d19fa0544  |
 +
|              size              |                  1                  |
 +
|          snapshot_id          |                None                |
 +
|          source_volid          |                None                |
 +
|            status            |                error                |
 +
|          volume_type          |                test1                |
 +
+--------------------------------+--------------------------------------+
 +
[root@controller ~]#</nowiki>
 +
 +
 +
 +
== 对Cinder后端逻辑卷进行扩容 ==
 +
 +
===创建一个1G的云硬盘extend-demo===
 +
[root@controller ~]# source admin-openrc.sh
 +
 +
[root@controller ~]# cinder create --display-name cinder-volume-demo 1
 +
 +
<nowiki>+---------------------+--------------------------------------+
 +
|      Property      |                Value                |
 +
+---------------------+--------------------------------------+
 +
|    attachments    |                  []                  |
 +
|  availability_zone  |                nova                |
 +
|      bootable      |                false                |
 +
|      created_at    |      2018-12-14T09:42:46.382604      |
 +
| display_description |                None                |
 +
|    display_name    |          cinder-volume-demo          |
 +
|      encrypted      |                False                |
 +
|          id        | 4bf67c03-2c12-43f8-842b-f971e5c0d97b |
 +
|      metadata      |                  {}                  |
 +
|        size        |                  1                  |
 +
|    snapshot_id    |                None                |
 +
|    source_volid    |                None                |
 +
|        status      |              creating              |
 +
|    volume_type    |                None                |
 +
+---------------------+--------------------------------------+</nowiki>
 +
 +
===通过cinder-list命令查看云硬盘信息===
 +
 +
[root@controller ~]#  cinder list
 +
 +
<nowiki>+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
 +
|                  ID                  |  Status  |    Display Name    | Size | Volume Type | Bootable | Attached to |
 +
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
 +
| 4bf67c03-2c12-43f8-842b-f971e5c0d97b | available | cinder-volume-demo |  1  |    None    |  false  |            |
 +
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
 +
</nowiki>
 +
 +
 +
用户可以在存储节点运行vgdisplay命令查看逻辑卷空间。
 +
 +
[root@controller ~]# vgdisplay
 +
 +
  <nowiki>--- Volume group ---
 +
  VG Name              cinder-volumes
 +
  System ID           
 +
  Format                lvm2
 +
  Metadata Areas        1
 +
  Metadata Sequence No  2
 +
  VG Access            read/write
 +
  VG Status            resizable
 +
  MAX LV                0
 +
  Cur LV                1
 +
  Open LV              0
 +
  Max PV                0
 +
  Cur PV                1
 +
  Act PV                1
 +
  VG Size              9.76 GiB
 +
  PE Size              4.00 MiB
 +
  Total PE              2499
 +
  Alloc PE / Size      256 / 1.00 GiB
 +
  Free  PE / Size      2243 / 8.76 GiB
 +
  VG UUID              phbML6-I5rB-rn7k-uGaa-ek46-c0u2-VCAgo2
 +
</nowiki>
 +
 +
===对LVM卷进行扩容===
 +
====首先我们通过“pvcreate”命令创建pv====
 +
首先,因为在我们的单节点中,没有md126p2分区,所以我们需要先创建一个分区/dev/sda6
 +
 +
[root@controller ~]# fdisk /dev/sda
 +
 +
<nowiki>WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
 +
        switch off the mode (command 'c') and change display units to
 +
        sectors (command 'u').
 +
 +
Command (m for help): n
 +
First cylinder (10461-13055, default 10461): 10461
 +
Last cylinder, +cylinders or +size{K,M,G} (10461-13055, default 13055): +10g^H^H
 +
Unsupported suffix: '.
 +
Supported: 10^N: KB (KiloByte), MB (MegaByte), GB (GigaByte)
 +
            2^N: K  (KibiByte), M  (MebiByte), G  (GibiByte)
 +
Last cylinder, +cylinders or +size{K,M,G} (10461-13055, default 13055): 10G'
 +
Value out of range.
 +
Last cylinder, +cylinders or +size{K,M,G} (10461-13055, default 13055): +10G
 +
 +
Command (m for help): W
 +
The partition table has been altered!
 +
 +
Calling ioctl() to re-read partition table.
 +
 +
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
 +
The kernel still uses the old table. The new table will be used at
 +
the next reboot or after you run partprobe(8) or kpartx(8)
 +
Syncing disks.</nowiki>
 +
 +
[root@controller ~]# reboot
 +
 +
<nowiki>Broadcast message from root@controller
 +
        (/dev/pts/0) at 4:54 ...
 +
 +
The system is going down for reboot NOW!</nowiki>
 +
 +
[root@controller ~]# lsblk
 +
 +
<nowiki>NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 +
sr0    11:0    1 1024M  0 rom 
 +
sda      8:0    0  100G  0 disk
 +
├─sda1  8:1    0 48.8G  0 part /
 +
├─sda2  8:2    0 19.5G  0 part /srv/node
 +
├─sda3  8:3    0  9.8G  0 part
 +
│ └─cinder--volumes-volume--4bf67c03--2c12--43f8--842b--f971e5c0d97b (dm-0)
 +
      253:0    0    1G  0 lvm 
 +
├─sda4  8:4    0    1K  0 part
 +
├─sda5  8:5    0    2G  0 part [SWAP]
 +
└─sda6  8:6    0  10G  0 part</nowiki>
 +
 +
[root@controller ~]#  pvcreate /dev/sda6
 +
 +
  <nowiki>dev_is_mpath: failed to get device for 8:6
 +
  Physical volume "/dev/sda6" successfully created</nowiki>
 +
 +
[root@controller ~]# pvdisplay
 +
 +
  <nowiki>--- Physical volume ---
 +
  PV Name              /dev/sda3
 +
  VG Name              cinder-volumes
 +
  PV Size              9.77 GiB / not usable 4.00 MiB
 +
  Allocatable          yes
 +
  PE Size              4.00 MiB
 +
  Total PE              2499
 +
  Free PE              2243
 +
  Allocated PE          256
 +
  PV UUID              5yJoVV-H5ll-aWDh-7p7t-CcKp-Mjn2-zcjZre
 +
 
 +
  "/dev/sda6" is a new physical volume of "10.00 GiB"
 +
  --- NEW Physical volume ---
 +
  PV Name              /dev/sda6
 +
  VG Name             
 +
  PV Size              10.00 GiB
 +
  Allocatable          NO
 +
  PE Size              0 
 +
  Total PE              0
 +
  Free PE              0
 +
  Allocated PE          0
 +
  PV UUID              LwE4wf-fFd3-T441-Fihp-2le1-f50J-Nba2y2</nowiki>
 +
 
 +
这样就成功的创建了一个名为/dev/sda6的物理分区
 +
 +
==== 接着,我们通过“vgextend”命令扩展已有VG的容量====
 +
 +
首先我们先看一下cinder-volumes卷组的大小
 +
 +
[root@controller ~]# vgdisplay
 +
 +
  <nowiki>--- Volume group ---
 +
  VG Name              cinder-volumes
 +
  System ID           
 +
  Format                lvm2
 +
  Metadata Areas        1
 +
  Metadata Sequence No  2
 +
  VG Access            read/write
 +
  VG Status            resizable
 +
  MAX LV                0
 +
  Cur LV                1
 +
  Open LV              0
 +
  Max PV                0
 +
  Cur PV                1
 +
  Act PV                1
 +
  VG Size              9.76 GiB
 +
  PE Size              4.00 MiB
 +
  Total PE              2499
 +
  Alloc PE / Size      256 / 1.00 GiB
 +
  Free  PE / Size      2243 / 8.76 GiB
 +
  VG UUID              phbML6-I5rB-rn7k-uGaa-ek46-c0u2-VCAgo2</nowiki>
 +
 +
然后进行卷组宽展:
 +
 
 +
[root@controller ~]# vgextend cinder-volumes /dev/sda6
 +
 +
  Volume group "cinder-volumes" successfully extended
 +
 +
====查看扩展后的VG容量====
 +
[root@controller ~]# vgdisplay
 +
 +
  <nowiki>--- Volume group ---
 +
  VG Name              cinder-volumes
 +
  System ID           
 +
  Format                lvm2
 +
  Metadata Areas        2
 +
  Metadata Sequence No  3
 +
  VG Access            read/write
 +
  VG Status            resizable
 +
  MAX LV                0
 +
  Cur LV                1
 +
  Open LV              0
 +
  Max PV                0
 +
  Cur PV                2
 +
  Act PV                2
 +
  VG Size              19.76 GiB
 +
  PE Size              4.00 MiB
 +
  Total PE              5059
 +
  Alloc PE / Size      256 / 1.00 GiB
 +
  Free  PE / Size      4803 / 18.76 GiB
 +
  VG UUID              phbML6-I5rB-rn7k-uGaa-ek46-c0u2-VCAgo2</nowiki>
 +
 +
====重启cinder-volume服务后再次创建该云硬盘====
 +
 
 +
[root@controller ~]# cinder create --display-name cinder-volume-demo 10
 +
 +
<nowiki>+---------------------+--------------------------------------+
 +
|      Property      |                Value                |
 +
+---------------------+--------------------------------------+
 +
|    attachments    |                  []                  |
 +
|  availability_zone  |                nova                |
 +
|      bootable      |                false                |
 +
|      created_at    |      2018-12-14T10:09:49.916306      |
 +
| display_description |                None                |
 +
|    display_name    |          cinder-volume-demo          |
 +
|      encrypted      |                False                |
 +
|          id        | 5d4127c8-0c9d-4703-ada8-d9e716d87565 |
 +
|      metadata      |                  {}                  |
 +
|        size        |                  10                  |
 +
|    snapshot_id    |                None                |
 +
|    source_volid    |                None                |
 +
|        status      |              creating              |
 +
|    volume_type    |                None                |
 +
+---------------------+--------------------------------------+</nowiki>
 +
 +
[root@controller ~]# cinder list
 +
 +
<nowiki>+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
 +
|                  ID                  |  Status  |    Display Name    | Size | Volume Type | Bootable | Attached to |
 +
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
 +
| 3ea86c92-4f15-4aa0-90fa-99b37b107b3a |  error  | cinder-volume-demo | 100  |    None    |  false  |            |
 +
| 4bf67c03-2c12-43f8-842b-f971e5c0d97b | available | cinder-volume-demo |  1  |    None    |  false  |            |
 +
| 5d4127c8-0c9d-4703-ada8-d9e716d87565 | available | cinder-volume-demo |  10  |    None    |  false  |            |
 +
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+</nowiki>
 +
 +
 +
 +
==Cinder快照操作==
 +
===创建Cinder卷快照===
 +
用户可以通过如下命令来创建一个简单的Cinder 卷快照。
 +
 +
# cinder snapshot-create --display-name snapshot_test1 test1
 +
 +
<nowiki>+---------------------+--------------------------------------+
 +
|      Property      |                Value                |
 +
+---------------------+--------------------------------------+
 +
|      created_at    |      2018-12-14T10:15:52.333696      |
 +
| display_description |                None                |
 +
|    display_name    |            snapshot_test1            |
 +
|          id        | 9fd3fae4-5804-42bb-a807-218083dd0c76 |
 +
|      metadata      |                  {}                  |
 +
|        size        |                  1                  |
 +
|        status      |              creating              |
 +
|      volume_id      | 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |
 +
+---------------------+--------------------------------------+</nowiki>
 +
===查看Cinder卷、快照信息===
 +
我们可以通过cinder-list命令查看镜像列表
 +
 +
# cinder list查看cinder卷的列表
 +
 +
# cinder snapshot-list查看snapshot的列表
 +
 +
还可以通过“cinder show <volume>”命令来查看指定云硬盘的详细信息,命令如下。
 +
 +
#cinder show d679d729-85b7-49fa-ab89-f7b87153b62d
 +
 +
 +
==将已创建的Cinder卷挂载到虚拟机实例==
 +
首先查看有没有云主机实例:
 +
 +
nova list
 +
 +
<nowiki>+----+------+--------+------------+-------------+----------+
 +
| ID | Name | Status | Task State | Power State | Networks |
 +
+----+------+--------+------------+-------------+----------+
 +
+----+------+--------+------------+-------------+----------+</nowiki>
 +
 +
如果没有的话,我们可以创建一个最简单的实例:
 +
 +
nova boot --flavor m1.tiny --image cirros  test1
 +
 +
<nowiki>+--------------------------------------+-----------------------------------------------+
 +
| Property                            | Value                                        |
 +
+--------------------------------------+-----------------------------------------------+
 +
| OS-DCF:diskConfig                    | MANUAL                                        |
 +
| OS-EXT-AZ:availability_zone          | nova                                          |
 +
| OS-EXT-SRV-ATTR:host                | -                                            |
 +
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                            |
 +
| OS-EXT-SRV-ATTR:instance_name        | instance-00000002                            |
 +
| OS-EXT-STS:power_state              | 0                                            |
 +
| OS-EXT-STS:task_state                | scheduling                                    |
 +
| OS-EXT-STS:vm_state                  | building                                      |
 +
| OS-SRV-USG:launched_at              | -                                            |
 +
| OS-SRV-USG:terminated_at            | -                                            |
 +
| accessIPv4                          |                                              |
 +
| accessIPv6                          |                                              |
 +
| adminPass                            | koMo8S7iKqD5                                  |
 +
| config_drive                        |                                              |
 +
| created                              | 2018-12-14T11:41:38Z                          |
 +
| flavor                              | m1.tiny (2)                                  |
 +
| hostId                              |                                              |
 +
| id                                  | e3c8ef21-673d-43fd-bc7b-75f7bda37021          |
 +
| image                                | cirros (498ef44c-0d77-4c8f-ad1e-508c8ca858b1) |
 +
| key_name                            | -                                            |
 +
| metadata                            | {}                                            |
 +
| name                                | test1                                        |
 +
| os-extended-volumes:volumes_attached | []                                            |
 +
| progress                            | 0                                            |
 +
| security_groups                      | default                                      |
 +
| status                              | BUILD                                        |
 +
| tenant_id                            | 00d9dcd033d542b68614c88d19fa0544              |
 +
| updated                              | 2018-12-14T11:41:38Z                          |
 +
| user_id                              | 83cbfd254b294529853aa51200bd6fe4              |
 +
+--------------------------------------+-----------------------------------------------+</nowiki>
 +
 +
然后在nova list查看
 +
 +
<nowiki>+--------------------------------------+--------+--------+------------+-------------+--------------------------+
 +
| ID                                  | Name  | Status | Task State | Power State | Networks                |
 +
+--------------------------------------+--------+--------+------------+-------------+--------------------------+
 +
| 4b2cae1f-8eaf-4531-83b0-7c60619e83c7 | test03 | ACTIVE | -          | Running    | sharednet1=192.168.1.103 |
 +
+--------------------------------------+--------+--------+------------+-------------+--------------------------+</nowiki>
 +
 +
接下来就是将我们创建好的cinder卷挂载到我们创建的云主机实例中:
 +
 +
nova volume-attach 4b2cae1f-8eaf-4531-83b0-7c60619e83c7 (云主机实例的id) d679d729-85b7-49fa-ab89-f7b87153b62d(cinder卷的id)
 +
 +
<nowiki>+----------+--------------------------------------+
 +
| Property | Value                                |
 +
+----------+--------------------------------------+
 +
| device  | /dev/vdb                            |
 +
| id      | 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |
 +
| serverId | 4b2cae1f-8eaf-4531-83b0-7c60619e83c7 |
 +
| volumeId | 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |
 +
+----------+--------------------------------------+</nowiki>
 +
 +
最后查看挂载情况:
 +
 +
cinder list
 +
 +
<nowiki>+--------------------------------------+-----------+--------------------+------+-------------+----------+--------------------------------------+
 +
|                  ID                  |  Status  |    Display Name    | Size | Volume Type | Bootable |            Attached to              |
 +
+--------------------------------------+-----------+--------------------+------+-------------+----------+--------------------------------------+
 +
| 0a30c060-425d-4c74-8623-1ea42f01f3aa |  error  |  type_test_demo  |  1  |    test1    |  false  |                                      |
 +
| 3ea86c92-4f15-4aa0-90fa-99b37b107b3a |  error  | cinder-volume-demo | 100  |    None    |  false  |                                      |
 +
| 4bf67c03-2c12-43f8-842b-f971e5c0d97b | available | cinder-volume-demo |  1  |    None    |  false  |                                      |
 +
| 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |  in-use  |      test1        |  1  |    None    |  false  | 4b2cae1f-8eaf-4531-83b0-7c60619e83c7 |
 +
| feaa8688-cefd-4f2e-987c-2a59cd951885 | available | cinder-volume-demo |  1  |    None    |  false  |                                      |
 +
+--------------------------------------+-----------+--------------------+------+-------------+----------+--------------------------------------+</nowiki>

2019年4月24日 (三) 14:08的版本

Cinder的安装

修改配置文件

vi /etc/xiandian/openrc.sh

##--------------------Cinder Config--------------------##
##Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000

##Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000

##Cinder Block Disk. example:md126p3
#BLOCK_DISK=

执行脚本文件

控制节点:

cd /usr/local/bin

iaas-install-cinder-controller.sh

计算节点:

iaas-install-cinder-compute.sh

Cinder的CLI命令行使用

Cinder作为OpenStack平台的块存储组件,提供了一系列存储操作的CLI命令行用于管理存储卷,可以灵活地对存储卷进行创建、扩容、删除和加密等操作。

创建cinder存储卷

用户可以通过CLI命令创建一个简单的Cinder存储卷,命令如下。

[root@controller ~]# cinder create --display-name test1 1

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2018-12-14T10:14:36.111709      |
| display_description |                 None                 |
|     display_name    |                test1                 |
|      encrypted      |                False                 |
|          id         | 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

[root@controller ~]# cinder list

+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
|                  ID                  |   Status  |    Display Name    | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
| 0a30c060-425d-4c74-8623-1ea42f01f3aa |   error   |   type_test_demo   |  1   |    test1    |  false   |             |
| 3ea86c92-4f15-4aa0-90fa-99b37b107b3a |   error   | cinder-volume-demo | 100  |     None    |  false   |             |
| 4bf67c03-2c12-43f8-842b-f971e5c0d97b | available | cinder-volume-demo |  1   |     None    |  false   |             |
| 5d4127c8-0c9d-4703-ada8-d9e716d87565 | available | cinder-volume-demo |  10  |     None    |  false   |             |
| 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 | available |       test1        |  1   |     None    |  false   |             |
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
[root@controller ~]# 

删除指定的Cinder卷

删除Cinder卷的方法比较简单,用户可以通过命令cinder delete <volume> [<volume> ...] 来删除一个或多个Cinder卷。

比如说:删除我们上面新创建的type_test_demo这个cinder卷

[root@controller ~]# cinder delete test1

指定Cinder卷类型

查询type标识的卷类型

可以通过“cinder type-list”命令来查看现有的卷类型

[root@controller ~]# cinder type-list

+----+------+
| ID | Name |
+----+------+
+----+------+

创建卷类型

[root@controller ~]# cinder type-create test1

+--------------------------------------+-------+
|                  ID                  |  Name |
+--------------------------------------+-------+
| 6ddb6645-a948-40cc-b614-0457f802f66d | test1 |
+--------------------------------------+-------+

[root@controller ~]# cinder type-list

+--------------------------------------+-------+
|                  ID                  |  Name |
+--------------------------------------+-------+
| 6ddb6645-a948-40cc-b614-0457f802f66d | test1 |
+--------------------------------------+-------+

创建并查询extra_spec表示的卷类型

除了可以通过cinder创建type类型的卷标识外,OpenStack还允许通过cinder创建extra_spec类型的卷类型,两个功能基本类似,extra_spec利用一组键值对来对cinder卷进行标识。

可以通过命令cinder type-key lvm set volume_backend_name=LVM_iSCSI来创建键为volume_backend_name,值为LVM_iSCSI的extra_spec类型标识。

通过cinder extra-specs-list来查看已创建的extra_spec标识。

[root@controller ~]# cinder extra-specs-list

+--------------------------------------+-------+-------------+
|                  ID                  |  Name | extra_specs |
+--------------------------------------+-------+-------------+
| 6ddb6645-a948-40cc-b614-0457f802f66d | test1 |      {}     |
+--------------------------------------+-------+-------------+

会发现标记红色椭圆的地方是空的,然后我们运行

[root@controller ~]# cinder type-key test1 set volume_backend_name=1

[root@controller ~]# cinder extra-specs-list

+--------------------------------------+-------+--------------------------------+
|                  ID                  |  Name |          extra_specs           |
+--------------------------------------+-------+--------------------------------+
| 6ddb6645-a948-40cc-b614-0457f802f66d | test1 | {u'volume_backend_name': u'1'} |
+--------------------------------------+-------+--------------------------------+

创建云硬盘

[root@controller ~]# cinder create --display-name type_test_demo --volume_type test1 1

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2018-12-14T10:13:36.937899      |
| display_description |                 None                 |
|     display_name    |            type_test_demo            |
|      encrypted      |                False                 |
|          id         | 0a30c060-425d-4c74-8623-1ea42f01f3aa |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                test1                 |
+---------------------+--------------------------------------+

创建成功后可以通过命令查看结果,可以看到该卷的volume_type字段已修改为“test1”。查询命令如下

[root@controller ~]# cinder show type_test_demo

+--------------------------------+--------------------------------------+
|            Property            |                Value                 |
+--------------------------------+--------------------------------------+
|          attachments           |                  []                  |
|       availability_zone        |                 nova                 |
|            bootable            |                false                 |
|           created_at           |      2018-12-14T10:13:36.000000      |
|      display_description       |                 None                 |
|          display_name          |            type_test_demo            |
|           encrypted            |                False                 |
|               id               | 0a30c060-425d-4c74-8623-1ea42f01f3aa |
|            metadata            |                  {}                  |
|     os-vol-host-attr:host      |                 None                 |
| os-vol-mig-status-attr:migstat |                 None                 |
| os-vol-mig-status-attr:name_id |                 None                 |
|  os-vol-tenant-attr:tenant_id  |   00d9dcd033d542b68614c88d19fa0544   |
|              size              |                  1                   |
|          snapshot_id           |                 None                 |
|          source_volid          |                 None                 |
|             status             |                error                 |
|          volume_type           |                test1                 |
+--------------------------------+--------------------------------------+
[root@controller ~]# 


对Cinder后端逻辑卷进行扩容

创建一个1G的云硬盘extend-demo

[root@controller ~]# source admin-openrc.sh

[root@controller ~]# cinder create --display-name cinder-volume-demo 1

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2018-12-14T09:42:46.382604      |
| display_description |                 None                 |
|     display_name    |          cinder-volume-demo          |
|      encrypted      |                False                 |
|          id         | 4bf67c03-2c12-43f8-842b-f971e5c0d97b |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

通过cinder-list命令查看云硬盘信息

[root@controller ~]# cinder list

+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
|                  ID                  |   Status  |    Display Name    | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
| 4bf67c03-2c12-43f8-842b-f971e5c0d97b | available | cinder-volume-demo |  1   |     None    |  false   |             |
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+


用户可以在存储节点运行vgdisplay命令查看逻辑卷空间。

[root@controller ~]# vgdisplay

 --- Volume group ---
  VG Name               cinder-volumes
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9.76 GiB
  PE Size               4.00 MiB
  Total PE              2499
  Alloc PE / Size       256 / 1.00 GiB
  Free  PE / Size       2243 / 8.76 GiB
  VG UUID               phbML6-I5rB-rn7k-uGaa-ek46-c0u2-VCAgo2

对LVM卷进行扩容

首先我们通过“pvcreate”命令创建pv

首先,因为在我们的单节点中,没有md126p2分区,所以我们需要先创建一个分区/dev/sda6

[root@controller ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
First cylinder (10461-13055, default 10461): 10461
Last cylinder, +cylinders or +size{K,M,G} (10461-13055, default 13055): +10g^H^H
Unsupported suffix: '.
Supported: 10^N: KB (KiloByte), MB (MegaByte), GB (GigaByte)
            2^N: K  (KibiByte), M  (MebiByte), G  (GibiByte)
Last cylinder, +cylinders or +size{K,M,G} (10461-13055, default 13055): 10G'
Value out of range.
Last cylinder, +cylinders or +size{K,M,G} (10461-13055, default 13055): +10G

Command (m for help): W
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

[root@controller ~]# reboot

Broadcast message from root@controller
        (/dev/pts/0) at 4:54 ...

The system is going down for reboot NOW!

[root@controller ~]# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom  
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0 48.8G  0 part /
├─sda2   8:2    0 19.5G  0 part /srv/node
├─sda3   8:3    0  9.8G  0 part 
│ └─cinder--volumes-volume--4bf67c03--2c12--43f8--842b--f971e5c0d97b (dm-0)
       253:0    0    1G  0 lvm  
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0    2G  0 part [SWAP]
└─sda6   8:6    0   10G  0 part 

[root@controller ~]# pvcreate /dev/sda6

 dev_is_mpath: failed to get device for 8:6
  Physical volume "/dev/sda6" successfully created

[root@controller ~]# pvdisplay

 --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               cinder-volumes
  PV Size               9.77 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2499
  Free PE               2243
  Allocated PE          256
  PV UUID               5yJoVV-H5ll-aWDh-7p7t-CcKp-Mjn2-zcjZre
   
  "/dev/sda6" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda6
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               LwE4wf-fFd3-T441-Fihp-2le1-f50J-Nba2y2
  

这样就成功的创建了一个名为/dev/sda6的物理分区

接着,我们通过“vgextend”命令扩展已有VG的容量

首先我们先看一下cinder-volumes卷组的大小

[root@controller ~]# vgdisplay

 --- Volume group ---
  VG Name               cinder-volumes
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9.76 GiB
  PE Size               4.00 MiB
  Total PE              2499
  Alloc PE / Size       256 / 1.00 GiB
  Free  PE / Size       2243 / 8.76 GiB
  VG UUID               phbML6-I5rB-rn7k-uGaa-ek46-c0u2-VCAgo2

然后进行卷组宽展:

[root@controller ~]# vgextend cinder-volumes /dev/sda6

 Volume group "cinder-volumes" successfully extended

查看扩展后的VG容量

[root@controller ~]# vgdisplay

 --- Volume group ---
  VG Name               cinder-volumes
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.76 GiB
  PE Size               4.00 MiB
  Total PE              5059
  Alloc PE / Size       256 / 1.00 GiB
  Free  PE / Size       4803 / 18.76 GiB
  VG UUID               phbML6-I5rB-rn7k-uGaa-ek46-c0u2-VCAgo2

重启cinder-volume服务后再次创建该云硬盘

[root@controller ~]# cinder create --display-name cinder-volume-demo 10

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2018-12-14T10:09:49.916306      |
| display_description |                 None                 |
|     display_name    |          cinder-volume-demo          |
|      encrypted      |                False                 |
|          id         | 5d4127c8-0c9d-4703-ada8-d9e716d87565 |
|       metadata      |                  {}                  |
|         size        |                  10                  |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

[root@controller ~]# cinder list

+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
|                  ID                  |   Status  |    Display Name    | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+
| 3ea86c92-4f15-4aa0-90fa-99b37b107b3a |   error   | cinder-volume-demo | 100  |     None    |  false   |             |
| 4bf67c03-2c12-43f8-842b-f971e5c0d97b | available | cinder-volume-demo |  1   |     None    |  false   |             |
| 5d4127c8-0c9d-4703-ada8-d9e716d87565 | available | cinder-volume-demo |  10  |     None    |  false   |             |
+--------------------------------------+-----------+--------------------+------+-------------+----------+-------------+


Cinder快照操作

创建Cinder卷快照

用户可以通过如下命令来创建一个简单的Cinder 卷快照。

  1. cinder snapshot-create --display-name snapshot_test1 test1
+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|      created_at     |      2018-12-14T10:15:52.333696      |
| display_description |                 None                 |
|     display_name    |            snapshot_test1            |
|          id         | 9fd3fae4-5804-42bb-a807-218083dd0c76 |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|        status       |               creating               |
|      volume_id      | 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |
+---------------------+--------------------------------------+

查看Cinder卷、快照信息

我们可以通过cinder-list命令查看镜像列表

  1. cinder list查看cinder卷的列表
  1. cinder snapshot-list查看snapshot的列表

还可以通过“cinder show <volume>”命令来查看指定云硬盘的详细信息,命令如下。

  1. cinder show d679d729-85b7-49fa-ab89-f7b87153b62d


将已创建的Cinder卷挂载到虚拟机实例

首先查看有没有云主机实例:

nova list

+----+------+--------+------------+-------------+----------+
| ID | Name | Status | Task State | Power State | Networks |
+----+------+--------+------------+-------------+----------+
+----+------+--------+------------+-------------+----------+

如果没有的话,我们可以创建一个最简单的实例:

nova boot --flavor m1.tiny --image cirros test1

+--------------------------------------+-----------------------------------------------+
| Property                             | Value                                         |
+--------------------------------------+-----------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                        |
| OS-EXT-AZ:availability_zone          | nova                                          |
| OS-EXT-SRV-ATTR:host                 | -                                             |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                             |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000002                             |
| OS-EXT-STS:power_state               | 0                                             |
| OS-EXT-STS:task_state                | scheduling                                    |
| OS-EXT-STS:vm_state                  | building                                      |
| OS-SRV-USG:launched_at               | -                                             |
| OS-SRV-USG:terminated_at             | -                                             |
| accessIPv4                           |                                               |
| accessIPv6                           |                                               |
| adminPass                            | koMo8S7iKqD5                                  |
| config_drive                         |                                               |
| created                              | 2018-12-14T11:41:38Z                          |
| flavor                               | m1.tiny (2)                                  |
| hostId                               |                                               |
| id                                   | e3c8ef21-673d-43fd-bc7b-75f7bda37021          |
| image                                | cirros (498ef44c-0d77-4c8f-ad1e-508c8ca858b1) |
| key_name                             | -                                             |
| metadata                             | {}                                            |
| name                                 | test1                                         |
| os-extended-volumes:volumes_attached | []                                            |
| progress                             | 0                                             |
| security_groups                      | default                                       |
| status                               | BUILD                                         |
| tenant_id                            | 00d9dcd033d542b68614c88d19fa0544              |
| updated                              | 2018-12-14T11:41:38Z                          |
| user_id                              | 83cbfd254b294529853aa51200bd6fe4              |
+--------------------------------------+-----------------------------------------------+

然后在nova list查看

+--------------------------------------+--------+--------+------------+-------------+--------------------------+
| ID                                   | Name   | Status | Task State | Power State | Networks                 |
+--------------------------------------+--------+--------+------------+-------------+--------------------------+
| 4b2cae1f-8eaf-4531-83b0-7c60619e83c7 | test03 | ACTIVE | -          | Running     | sharednet1=192.168.1.103 |
+--------------------------------------+--------+--------+------------+-------------+--------------------------+

接下来就是将我们创建好的cinder卷挂载到我们创建的云主机实例中:

nova volume-attach 4b2cae1f-8eaf-4531-83b0-7c60619e83c7 (云主机实例的id) d679d729-85b7-49fa-ab89-f7b87153b62d(cinder卷的id)

+----------+--------------------------------------+
| Property | Value                                |
+----------+--------------------------------------+
| device   | /dev/vdb                             |
| id       | 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |
| serverId | 4b2cae1f-8eaf-4531-83b0-7c60619e83c7 |
| volumeId | 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |
+----------+--------------------------------------+

最后查看挂载情况:

cinder list

+--------------------------------------+-----------+--------------------+------+-------------+----------+--------------------------------------+
|                  ID                  |   Status  |    Display Name    | Size | Volume Type | Bootable |             Attached to              |
+--------------------------------------+-----------+--------------------+------+-------------+----------+--------------------------------------+
| 0a30c060-425d-4c74-8623-1ea42f01f3aa |   error   |   type_test_demo   |  1   |    test1    |  false   |                                      |
| 3ea86c92-4f15-4aa0-90fa-99b37b107b3a |   error   | cinder-volume-demo | 100  |     None    |  false   |                                      |
| 4bf67c03-2c12-43f8-842b-f971e5c0d97b | available | cinder-volume-demo |  1   |     None    |  false   |                                      |
| 9a523cfc-ab43-49f6-84b3-f8ad5867c2e0 |   in-use  |       test1        |  1   |     None    |  false   | 4b2cae1f-8eaf-4531-83b0-7c60619e83c7 |
| feaa8688-cefd-4f2e-987c-2a59cd951885 | available | cinder-volume-demo |  1   |     None    |  false   |                                      |
+--------------------------------------+-----------+--------------------+------+-------------+----------+--------------------------------------+