如何创建OpenStack Cinder卷并添加到VM实例

时间:2020-02-23 14:41:12  来源:igfitidea点击:

如何在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