作者:李晓辉



环境介绍

类型

控制节点和计算节点等在一起,形成all-in-one

内存

8G

硬盘

200G

网卡

2块

块存储服务概览

块存储服务(cinder)为实例提供块存储。存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的。还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等。

典型情况下,块服务API和调度器服务运行在控制节点上。取决于使用的驱动,卷服务器可以运行在控制节点、计算节点或单独的存储节点。

OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷。此服务也会激活管理卷的快照和卷类型的功能。

块存储服务通常包含下列组件:

cinder-api

接受API请求,并将其路由到cinder-volume执行。

cinder-volume

与块存储服务和例如cinder-scheduler的进程进行直接交互。它也可以与这些进程通过一个消息队列进行交互。cinder-volume服务响应送到块存储服务的读写请求来维持状态。它也可以和多种存储提供者在驱动架构下进行交互。

cinder-scheduler守护进程

选择最优存储提供节点来创建卷。其与nova-scheduler组件类似。

cinder-backup守护进程

cinder-backup服务提供任何种类备份卷到一个备份存储提供者。就像cinder-volume服务,它与多种存储提供者在驱动架构下进行交互。

消息队列

在块存储的进程之间路由信息。

块存储管理

Web控制台块存储管理

创建卷

登陆控制台,点击项目、计算、卷,点击创建卷

OpenStack windows 没有驱动 openstack cinder driver_上传

输入卷名称、选择卷的来源、类型、大小、可用域范围,然后点击创建卷

OpenStack windows 没有驱动 openstack cinder driver_后端_02

分配卷到实例

查看一下实例中现在有几个硬盘,下图显示只有一个vda硬盘

Lsblk

OpenStack windows 没有驱动 openstack cinder driver_存储管理_03

现在分配刚创建的1G卷到实例

点击卷右侧的下箭头,点击管理连接,将卷连接到实例

OpenStack windows 没有驱动 openstack cinder driver_后端_04

点击连接卷

OpenStack windows 没有驱动 openstack cinder driver_存储管理_05

可以看出连结中

OpenStack windows 没有驱动 openstack cinder driver_5g_06

连接完成

OpenStack windows 没有驱动 openstack cinder driver_运维_07

再次检查实例中的硬盘个数

发现现在已经多了一个vdb硬盘,大小为1G

OpenStack windows 没有驱动 openstack cinder driver_运维_08

扩展卷大小

由于生产数据增长的需求,硬盘可能会不够用,这个时候我们可以直接对卷做扩容

如果需要扩展卷,那就需要先暂时把附加到实例的卷分离出来,然后扩容,最后再次附加

再次管理连接

OpenStack windows 没有驱动 openstack cinder driver_运维_09

点击分离卷

OpenStack windows 没有驱动 openstack cinder driver_运维_10

分离

OpenStack windows 没有驱动 openstack cinder driver_后端_11

分离中

OpenStack windows 没有驱动 openstack cinder driver_存储管理_12

点击扩展卷

OpenStack windows 没有驱动 openstack cinder driver_运维_13

输入新的大小,然后点击扩展卷

OpenStack windows 没有驱动 openstack cinder driver_5g_14

扩展完成,可以看到2G大小

OpenStack windows 没有驱动 openstack cinder driver_5g_15

再次附加到实例

OpenStack windows 没有驱动 openstack cinder driver_运维_16

我们现在可以看到大小以及为2G

OpenStack windows 没有驱动 openstack cinder driver_运维_17

创建卷快照

点击创建快照

OpenStack windows 没有驱动 openstack cinder driver_运维_18

注意上面的提示,最好的情况是先暂时卸载卷,确认后直接点击创建

OpenStack windows 没有驱动 openstack cinder driver_5g_19

下图就是创建好的快照

OpenStack windows 没有驱动 openstack cinder driver_存储管理_20

从快照创建卷

从快照创建卷的好处大家可以先想一下完整的复制了一块数据一模一样的硬盘,非常实用

在快照上点击创建卷

OpenStack windows 没有驱动 openstack cinder driver_上传_21

我们可以看到来源为一个快照,点击创建卷即可

OpenStack windows 没有驱动 openstack cinder driver_存储管理_22

我们发现正在创建中了

OpenStack windows 没有驱动 openstack cinder driver_5g_23

将卷上传到镜像

在卷上面点击上传到镜像

OpenStack windows 没有驱动 openstack cinder driver_后端_24

我们可以输入名称和格式,点击上传即可

OpenStack windows 没有驱动 openstack cinder driver_5g_25

OpenStack windows 没有驱动 openstack cinder driver_5g_26

我们可以看到镜像中已经做了一个镜像,已经可以用于创建实例

OpenStack windows 没有驱动 openstack cinder driver_存储管理_27

转让卷到另一个租户

我们可以想象一下,两家公司达成了合作,需要其中一个公司的一个卷里的数据,就可以直接转让即可

OpenStack windows 没有驱动 openstack cinder driver_上传_28

完成名称的输入,点击创建转让

OpenStack windows 没有驱动 openstack cinder driver_上传_29

保存好凭据和密钥等信息

OpenStack windows 没有驱动 openstack cinder driver_存储管理_30

看到等待传输

OpenStack windows 没有驱动 openstack cinder driver_后端_31

登陆另一家公司的控制台

OpenStack windows 没有驱动 openstack cinder driver_上传_32

右上角可以看出,当前登录的用户为lixiaohui,在卷处点击接受转让

OpenStack windows 没有驱动 openstack cinder driver_存储管理_33

输入ID和密钥

OpenStack windows 没有驱动 openstack cinder driver_5g_34

完成卷的转让

OpenStack windows 没有驱动 openstack cinder driver_上传_35

删除卷

选中后点击删除即可

OpenStack windows 没有驱动 openstack cinder driver_后端_36

命令行块存储管理

创建卷

查看现在已经有的卷

openstack volume list

OpenStack windows 没有驱动 openstack cinder driver_后端_37

创建新的卷,大小为20G,名称为xiaohui

openstack volume create --size 20 xiaohui

openstack volume list

OpenStack windows 没有驱动 openstack cinder driver_运维_38

分配卷到实例

我们可以看到下图最后一栏,已经分配到实例了

openstack server add volume Host1 xiaohui

openstack volume list

OpenStack windows 没有驱动 openstack cinder driver_上传_39

扩展卷大小

先卸载卷

openstack server remove volume Host1 xiaohui

openstack volume list

OpenStack windows 没有驱动 openstack cinder driver_运维_40

openstack volume set --size 5 xiaohui

openstack volume list

下图我们看出大小已经变为5G

OpenStack windows 没有驱动 openstack cinder driver_5g_41

重新附加到实例

openstack server add volume Host1 xiaohui

openstack volume list

OpenStack windows 没有驱动 openstack cinder driver_5g_42

创建卷快照

查看现有卷的快照

openstack snapshot list

OpenStack windows 没有驱动 openstack cinder driver_上传_43

创建了一个名为xiaohui-snap的快照

openstack snapshot create --name xiaohui-snap xiaohui

OpenStack windows 没有驱动 openstack cinder driver_运维_44

从快照创建卷

openstack snapshot list

openstack volume create --snapshot xiaohui-snap volume2 --size 6

我们从xiaohui-snap创建了一个volume2,大小为6G的卷

OpenStack windows 没有驱动 openstack cinder driver_运维_45

将卷上传到镜像

openstack image create --volume xiaohui --container-format bare --disk-format qcow2 image1

openstack image list

OpenStack windows 没有驱动 openstack cinder driver_存储管理_46

我们可以看到status部分,从uploading、queued到active

OpenStack windows 没有驱动 openstack cinder driver_运维_47

转让卷到另一个租户

openstack volume list

cinder transfer-create Xiaohui

创建了一个key和id

OpenStack windows 没有驱动 openstack cinder driver_后端_48

切换身份到另一个租户

cat keystonerc_lixiaohui

OpenStack windows 没有驱动 openstack cinder driver_运维_49

cinder transfer-accept 33ed420c-2112-468b-9911-5a2aba2f8da5 ebdad68f694c0aad

OpenStack windows 没有驱动 openstack cinder driver_5g_50

OpenStack windows 没有驱动 openstack cinder driver_上传_51

删除卷

openstack volume list

openstack volume delete xiaohui    
openstack volume list

OpenStack windows 没有驱动 openstack cinder driver_上传_52

下一篇介绍Ceilometer Telemetry服务