如何创建OpenStack Cinder卷并添加到VM实例
如何在OpenStack中创建Cinder卷并添加到实例?
OpenStack Cinder服务为虚拟硬盘驱动器提供持久的块存储管理。
通过OpenStack CLI和Horizo n Web界面,我们可以管理块设备的创建,添加和分离到服务器。
在本教程中,我们将讨论如何为在OpenStack环境中运行的服务器创建,添加和分离的Cinder卷。
我们需要配置OpenStack的CLI界面,本教程是相关的。
我们有一个单独的文章有关如何在Linux上安装和配置OpenStack客户端的单独文章。
请参阅Linux系统上的OpenStack客户端的安装和配置。
第1步:检查OpenStack Cinder Services
设置OpenStack客户端后,选中以确认运行的所有Cinder服务。
Cinder由以下内容组成: openstack-cinder-volume
,这对虚拟机的储存量为需求。
提供了许多驱动程序,用于与存储提供商的交互。 openstack-cinder-api
,它响应并处理请求,并将它们放在消息队列中。 openstack-cinder-scheduler
,它将任务分配给队列并确定配置卷服务器。
使用以下命令确认这些服务的状态。
for i in volume api scheduler; do systemctl status openstack-cinder-$i done
示例输出 - 所有状态应运行。
...... ● openstack-cinder-volume.service - OpenStack Cinder Volume Server Loaded: loaded (/usr/lib/systemd/system/openstack-cinder-volume.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-09-07 10:13:38 EAT; 14min ago Main PID: 6427 (cinder-volume) Tasks: 2 CGroup: /system.slice/openstack-cinder-volume.service ├─6427 /usr/bin/python2 /usr/bin/cinder-volume --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf… └─6468 /usr/bin/python2 /usr/bin/cinder-volume --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf… ............... ● openstack-cinder-api.service - OpenStack Cinder API Server Loaded: loaded (/usr/lib/systemd/system/openstack-cinder-api.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-09-07 10:13:42 EAT; 14min ago Main PID: 6599 (cinder-api) Tasks: 9 CGroup: /system.slice/openstack-cinder-api.service ├─6599 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… ├─6691 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… ├─6692 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… ├─6693 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… ├─6694 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… ├─6695 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… ├─6696 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… ├─6697 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… └─6699 /usr/bin/python2 /usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --… ...................... ● openstack-cinder-scheduler.service - OpenStack Cinder Scheduler Server Loaded: loaded (/usr/lib/systemd/system/openstack-cinder-scheduler.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-09-07 10:13:46 EAT; 14min ago Main PID: 6792 (cinder-schedule) Tasks: 1 CGroup: /system.slice/openstack-cinder-scheduler.service └─6792 /usr/bin/python2 /usr/bin/cinder-scheduler --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.c…
第2步:创建煤渣量
我们需要配置Cinder存储后端并确认工作。
我在我的设置中使用LVM后端。
$pvs | grep cinder /dev/nvme0n1p1 cinder-volumes lvm2 a-- <476.94g 23.59g $vgs | grep cinder cinder-volumes 1 4 0 wz--n- <476.94g 23.59g
创建使用以下命令语法煤渣卷。
$openstack volume create --size <size> <name>
其中:<size>是gb <name>中的卷大小是要创建的卷的名称。
下面的示例将创建一个名为C4Geeks-DB备份的卷大小30GB
$openstack volume create --size 30 c4geeks-db-backups +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2019-09-07T07:37:14.000000 | | description | None | | encrypted | False | | id | 4a4f5cf1-9122-4147-83c1-5aa622f7ba57 | | migration_status | None | | multiattach | False | | name | c4geeks-db-backups | | properties | | | replication_status | None | | size | 30 | | snapshot_id | None | | source_volid | None | | status | creating | | type | None | | updated_at | None | | user_id | 336acbb7421f47f8be4891eabf0c9cc8 | +---------------------+--------------------------------------+
确认创建卷的状态。
$openstack volume list +--------------------------------------+---------------------+----------------+------+--------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+---------------------+----------------+------+--------------------------------------+ | 4a4f5cf1-9122-4147-83c1-5aa622f7ba57 | c4geeks-db-backups | available | 30 | | +--------------------------------------+---------------------+----------------+------+--------------------------------------+
我们可以确认尺寸为30GB已成功创建并准备好使用。
让我们将其添加到OpenStack上运行的服务器。
但首先,拉动虚拟机名称/ID
$openstack server list +--------------------------------------+-------------------+--------+-----------------------------------+----------+-----------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+-------------------+--------+-----------------------------------+----------+-----------+ | 08df4929-4d9e-4881-9f01-6d89e9862385 | c4geeks-db-server | ACTIVE | private=10.10.1.196 | CentOS-7 | m1.large | +--------------------------------------+-------------------+--------+-----------------------------------+----------+-----------+
将创建的卷添加到服务器。
openstack server add volume c4geeks-db-server c4geeks-db-backups
检查Ciness卷附件。
$openstack volume list +--------------------------------------+---------------------+----------------+------+--------------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+---------------------+----------------+------+--------------------------------------------+ | 4a4f5cf1-9122-4147-83c1-5aa622f7ba57 | c4geeks-db-backups | in-use | 30 | Attached to c4geeks-db-server on /dev/vdc | +--------------------------------------+---------------------+----------------+------+--------------------------------------------+
第3步:在虚拟机上消耗Cinder音量
登录服务器并检查原始块设备是否可见。
$lsblk /dev/vdc NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vdc 253:32 0 30G 0 disk
现在让我们分区并安装它。
sudo parted -s -a optimal -- /dev/vdc mklabel gpt sudo parted -s -a optimal -- /dev/vdc mkpart primary 0% 100% sudo parted -s -- /dev/vdc align-check optimal 1 sudo mkfs.xfs /dev/vdc1 sudo mkdir /data echo "/dev/vdc1 /data xfs defaults 0 0" | sudo tee -a /etc/fstab sudo mount -a
查看当前安装的地图。
$df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 xfs 40G 2.6G 38G 7% / devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 17M 3.9G 1% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs tmpfs 783M 0 783M 0% /run/user/1000 /dev/vdc1 xfs 30G 33M 30G 1% /data
开始利用日常操作中添加的块存储。
从服务器分离剪切虚拟磁盘
要分离和删除磁盘,请在服务器上卸载它,然后运行:
openstack server remove volume c4geeks-db-server c4geeks-db-backups openstack volume delete c4geeks-db-backups