Cinder

Cinder采用的是松散的架构理念,由cinder-api统一管理外部对cinder的调用,cinder-scheduler负责调度合适的节点去构建volume存储。volume-provider通过driver负责具体的存储空间,然后cinder内部依旧通过消息队列queue沟通,解耦各子服务支持异步调用

存储技术

DAS(直接附加存储):将存储设备通过 SCSI 线缆或 FC(FiberChannel)直接连接到服务器上

NAS(网络附加存储):按照 TCP/IP 协议进行通信,以文件的 I/O 方式进行数据传 输。它拥有自己的文件系统,通过网络文件系统 NFS 或通用文件系统 CIFS (common Internet file system)对外提供文件访问服务

SAN(存储区域网络):SAN 是一种通过网络方式连接存储设备和应用服务器的架 构。这个网络专用于服务器和存储设备之间的访问。SAN 代表的是一种专用于存 储的网络架构,与协议和设备类型无关。有 FC SAN 和 IP SAN 两种方案

存储方式

对象存储(swift):基于文件系统,通过文件系统来存储访问数据

块存储(cinder):是以块为基本单元的存储方式,其传输不存在数据打包/解包 的过程,可提供更高的传输性能

文件存储设备通过以太网与服务器连接。服务器通过 NFS、CIFS、HTTP、FTP 等 协议进行数据访问。数据通过以太网传输,有打包/解包的过程

OpenStack 块存储服务——cinder:目前,cinder 对本地存储和 NAS 的支持比较不错,可以提供完整的 Cinder API V2 支持,而对于其他类型的存储设备,Cinder 的支持会受到一些限制

volumetype 是卷的一种标识,各个 OpenStack 的发行者可根据自身对系统的约束 来定义卷类型的使用

 

计算节点存储

主要用来给虚拟机提供系统盘空间(和 cinder 的后端存储不同),所以我们一般 会把虚拟机的磁盘目录(默认是/var/lib/nova/instances)作为单独的挂载点,提 供一个较大的空间,一是可以满足创建虚拟机对存储空间的需求,二是可以满足 虚拟机迁移的需求

1.使用独立的存储共享

需要一个独立的共享存储节点,典型的是使用 NFS 服务器,意味着虚拟 机和它的存储不在一个节点上,对应的,对这两类节点的要求也不一样:计算节 点可能需要更多地 CPU 和内存,而存储节点需要关注磁盘 IO 性能

优势:

1) 降低计算节点维护成本,不影响虚拟机当前的运行状态

2) 计算节点的宕机不会引起虚拟机的磁盘数据丢失

3) 虚拟机迁移功能效率更高

4)共享存储可以用作他用

劣势:

1) 需要额外的存储节点

2) 一些重负载的虚拟机可能会影响其他虚拟机的性能,无论是否在同一节点

3) 因为需要通过网络访问存储资源,性能不会很好

4) 使用统一共享存储

2.不使用独立的存储节点(典型的如 Ceph、sheepdog 等),而是将计算节点上 的存储连接起来形成一个存储池,提供共享、高可靠、高可用的存储特性

优势:

1)不需要额外的存储节点

2)充分利用分布式存储的优势

劣势:

1)因为中间层的存在,会失去对磁盘的逻辑管理

2)对虚拟机数据的恢复变得复杂

3)这种方式仍然需要从网络访问存储资源,降低性能

4)本地存储

3.最常见的方式,不需要额外的配置

优势:

1)重负载的虚拟机不会对其他节点的虚拟机造成影响

2)因为是直接磁盘 IO,性能是最好的(配合 SSD 效果更好)

劣势:

1)无共享,意味着一个节点宕机会造成该节点上虚拟机数据不可用

2)虚拟机迁移变得复杂

 

cinder架构

OpenStack 到 Folsom 版本有比较大的改变,其中之一就是将之前在 Nova 中的部分持久性块存储功能(Nova-Volume)分离了出来,独立为新的组件 Cinder。 主要核心是对卷的管理,允许对卷、卷的类型、卷的快照进行处理。它并没有实 现对块设备的管理和实际服务,而是为后端不同的存储结构提供了统一的接口, 不同的块设备服务厂商在 Cinder 中实现其驱动支持以与 OpenStack 进行整合

 

卷类型管理

创建卷类型

[root@controller ~]# cinder type-create lvm / nfs     
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| ddad594c-6dc7-483a-ab0f-094da136b70a | lvm  | -           | True      |
+--------------------------------------+------+-------------+-----------+

 

查看卷类型信息

[root@controller ~]# cinder type-list
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| ddad594c-6dc7-483a-ab0f-094da136b70a | lvm  | -           | True      |
+--------------------------------------+------+-------------+-----------+

 

更新卷类型信息

[root@controller ~]# cinder type-update --name nfs ddad594c-6dc7-483a-ab0f-094da136b70a
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| ddad594c-6dc7-483a-ab0f-094da136b70a | nfs  | -           | True      |
+--------------------------------------+------+-------------+-----------+

 

卷管理

创建卷

[root@controller ~]# cinder create --name block1 --volume-type lvm 1
+--------------------------------+--------------------------------------+
| Property                       | Value                                |
+--------------------------------+--------------------------------------+
| attachments                    | []                                   |
| availability_zone              | nova                                 |
| bootable                       | false                                |
| consistencygroup_id            | None                                 |
| created_at                     | 2021-12-07T02:10:02.000000           |
| description                    | None                                 |
| encrypted                      | False                                |
| id                             | 901ba104-3f4f-4b6d-a73d-ab100135479b |
| metadata                       | {}                                   |
| migration_status               | None                                 |
| multiattach                    | False                                |
| name                           | block1                               |
| 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   | 2f1b48e86a2f4e1ab59730d9fff7c584     |
| replication_status             | None                                 |
| size                           | 1                                    |
| snapshot_id                    | None                                 |
| source_volid                   | None                                 |
| status                         | creating                             |
| updated_at                     | None                                 |
| user_id                        | d4463a3c93fc41429ab215bf04418374     |
| volume_type                    | lvm                                  |
+--------------------------------+--------------------------------------+

 

挂载卷

# nova volume-attach {云主机id} {卷id}

[root@controller ~]# nova volume-attach b5a3e477-33a0-49fe-af90-78c9b44d39bb 901ba104-3f4f-4b6d-a73d-ab100135479b
+----------+--------------------------------------+
| Property | Value                                |
+----------+--------------------------------------+
| device   | /dev/vdb                             |
| id       | 901ba104-3f4f-4b6d-a73d-ab100135479b |
| serverId | b5a3e477-33a0-49fe-af90-78c9b44d39bb |
| volumeId | 901ba104-3f4f-4b6d-a73d-ab100135479b |
+----------+--------------------------------------+

 

卸载卷

[root@controller ~]# nova volume-detach b5a3e477-33a0-49fe-af90-78c9b44d39bb 901ba104-3f4f-4b6d-a73d-ab100135479b

 

查看卷

[root@controller ~]# openstack volume list
+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| 901ba104-3f4f-4b6d-a73d-ab100135479b | block1 | available |    1 |             |
+--------------------------------------+--------+-----------+------+-------------+

[root@controller ~]# cinder list
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+
| ID                                   | Status    | Name   | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+
| 901ba104-3f4f-4b6d-a73d-ab100135479b | available | block1 | 1    | lvm         | false    |             |
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+

 

重命名卷

# cinder rename block1 <volume_name>

[root@controller ~]# cinder rename block1 block

 

修改状态

# cinder rest-state available/false <volume_name>

 

扩容

# cinder migrate <volume_name> <host>

 

迁移

# cinder migrate <volume_name> <host>

 

删除卷

[root@controller ~]# cinder delete block1

 


Snapshot管理

查看snapshot信息

[root@controller ~]# cinder snapshot-list 
+----+-----------+--------+------+------+
| ID | Volume ID | Status | Name | Size |
+----+-----------+--------+------+------+
+----+-----------+--------+------+------+

 

创建snapshot

[root@controller ~]# cinder snapshot-create --name backhot volume 

 

删除snapshot

[root@controller ~]# cinder snapshot-delete backhot

 

cinder扩容

某公司出现块存储的空间不足的情况,需要扩容,这时候计算节点就要多分出一个区,加入到cinder块存储的后端存储去

 

posted @ 2021-12-07 10:16  衡衡酱  阅读(704)  评论(0)    收藏  举报
Live2D