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
[root@controller ~]# cinder snapshot-delete backhot
cinder扩容
某公司出现块存储的空间不足的情况,需要扩容,这时候计算节点就要多分出一个区,加入到cinder块存储的后端存储去
略

浙公网安备 33010602011771号