1. 块存储服务
(1)创建镜像和网络:
[root@controller ~]# curl -O http://mirrors.douxuedu.com/newcloud/cirros-0.3.4-x86_64-disk.img
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# glance image-create --name cirros-0.3.4 --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img
…
[root@controller ~]# openstack network create --provider-network-type vlan --provider-physical-network provider network-vlan --provider-segment 200
…
[root@controller ~]# openstack subnet create --network network-vlan --allocation-pool start=192.168.200.100,end=192.168.200.200 --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 subnet-vlan
…
(2)修改OpenStack平台
修改Nova服务配置文件,设置参数“virt_type=qemu”。命令参数如下:
[root@controller ~]# crudini --set /etc/nova/nova.conf libvirt virt_type qemu
[root@controller ~]# systemctl restart openstack-nova-compute
(3)启动云主机:
[root@controller ~]# openstack server create --image cirros-0.3.4 --flavor 2 --network network-vlan cirros-test
(4)查看Cinder服务状态
使用“openstack volume service list”命令查询块存储服务状态,命令代码如下所示:
[root@controller ~]# openstack volume service list
+------------------+-------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-volume | compute@lvm | nova | enabled | up | 2022-02-10T05:21:08.000000 |
| cinder-scheduler | controller | nova | enabled | up | 2022-02-10T05:21:06.000000 |
+------------------+-------------+------+---------+-------+----------------------------+
(5)创建块存储
通过使用命令“openstack volume create”创建块存储,命令格式如下:
[root@controller ~]# openstack help volume create
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]
<name>
通过命令创建块存储,大小为2G,名称为“volume”。命令如下所示:
[root@controller ~]# openstack volume create --size 2 volume
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2022-02-10T05:21:32.000000 |
| description | None |
| encrypted | False |
| id | 67634904-65eb-471f-9ab6-79296e2494b7 |
| migration_status | None |
| multiattach | False |
| name | volume |
| properties | |
| replication_status | None |
| size | 2 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| type | None |
| updated_at | None |
| user_id | e415c8bc53884e72a7993dffbcde2a1e |
+---------------------+--------------------------------------+
(6)查看块存储
使用“openstack volume list”命令查看块存储列表信息。命令如下:
[root@controller ~]# openstack volume list
+--------------------------------------+--------+-----------+------+-------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| 67634904-65eb-471f-9ab6-79296e2494b7 | volume | available | 2 | |
+--------------------------------------+--------+-----------+------+-------------+
通过openstack命令查看某一块存储的详细信息。命令如下:
[root@controller ~]# openstack volume show volume
+--------------------------------+--------------------------------------+
| Field | Value |
+--------------------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2022-02-10T05:21:32.000000 |
| description | None |
| encrypted | False |
| id | 67634904-65eb-471f-9ab6-79296e2494b7 |
| migration_status | None |
| multiattach | False |
| name | volume |
| os-vol-host-attr:host | compute@lvm#LVM |
| os-vol-mig-status-attr:migstat | None |
| os-vol-mig-status-attr:name_id | None |
| os-vol-tenant-attr:tenant_id | 1776912d52a7444d8b2d09eb86e8d1d9 |
| properties | |
| replication_status | None |
| size | 2 |
| snapshot_id | None |
| source_volid | None |
| status | available |
| type | None |
| updated_at | 2022-02-10T05:21:33.000000 |
| user_id | e415c8bc53884e72a7993dffbcde2a1e |
+--------------------------------+--------------------------------------+
(7)挂载云硬盘
块存储设备创建成功后,可以在OpenStack上将该设备挂载至云主机上,可以作为一块云硬盘来进行使用。给云主机添加一块磁盘。
将块存储挂载至云主机的命令为“openstack server add volume”,其命令格式为:
[root@controller ~]# openstack help server add volume
usage: openstack server add volume [-h] [--device <device>] <server> <volume>
Add volume to server
positional arguments:
<server> Server (name or ID)
<volume> Volume to add (name or ID)
使用命令将创建的“volume”块存储添加至云主机“cirros-test”上。命令如下:
[root@controller ~]# openstack server add volume cirros-test volume
使用命令查看块存储的列表信息,命令代码如下所示:
[root@controller ~]# openstack volume list
+--------------------------------------+--------+--------+------+--------------------------------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+--------+--------+------+--------------------------------------+
| 67634904-65eb-471f-9ab6-79296e2494b7 | volume | in-use | 2 | Attached to cirros-test on /dev/vdb |
+--------------------------------------+--------+--------+------+--------------------------------------+
(1)扩展卷大小
创建完卷后可能因为需求的变更,需要对已有的卷进行扩容操作,这时需要用到“openstack volume set”命令修改卷的信息。命令格式如下:
[root@controller ~]# openstack help volume set
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>
分离卷,通过命令将“volume”卷大小从2G扩容至3G,使用–size参数可修改已创建好的卷大小。命令操作如下所示:
[root@controller ~]# openstack server remove volume cirros-test volume
[root@controller ~]# openstack volume set --size 3 volume
[root@controller ~]# openstack volume list
+--------------------------------------+--------+-----------+------+-------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| 67634904-65eb-471f-9ab6-79296e2494b7 | volume | available | 3 | |
+--------------------------------------+--------+-----------+------+-------------+
(2)验证卷大小
将扩容后的卷“volume”挂载至云主机“cirros-test”上,操作命令如下所示:
[root@controller ~]# openstack server add volume cirros-test volume
[root@controller ~]# openstack volume list
+--------------------------------------+--------+--------+------+--------------------------------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+--------+--------+------+--------------------------------------+
| 67634904-65eb-471f-9ab6-79296e2494b7 | volume | in-use | 3 | Attached to cirros-test on /dev/vdb |
+--------------------------------------+--------+--------+------+--------------------------------------+
可以看到卷“volume”挂载至云主机“cirros-test”上盘符的名称为/dev/vdb,使用virsh工具登录云主机,输入命令“lsblk”查看云硬盘大小是否为3G。命令操作如下所示:
[root@controller ~]# virsh list --all
Id Name State
----------------------------------------------------
1 instance-00000001 running
[root@controller ~]# virsh console instance-00000001
Connected to domain instance-00000001
Escape character is ^] #按Enter键 即可看到登录信息,输入对应的登录信息登录。
login as 'cirros' user. default password: 'cubswin:)'. use 'sudo' for root.
cirros-test login: cirros
Password:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
`-vda1 253:1 0 20G 0 part /
vdb 253:16 0 3G 0 disk
可以看到显示盘符“vdb”大小为3G。此时云硬盘已经扩展完成。