openstack-cinder

cinder

概念

cinder 是 OpenStack 块存储服务,它的主要功能包括:

  • 卷管理:cinder可以创建,删除,扩容和缩小卷。管理员可以通过api或者命令行接口创建卷,指定卷的大小,类型,名称和描述等信息。当需要扩容或缩小卷时,管理员可以通过api或者命令行接口进行操作。

  • 卷快照:cinder支持卷的快照,即对现有卷的某个时刻的状态进行备份,可以用于数据的保护和还原。管理员可以通过api或命令行接口创建,删除和还原卷快照。

  • 卷的迁移和复制:cinder支持卷的迁移和复制,可以将卷从一个存储后端迁移到另一个存储后端,或者在同一个存储后端中复制卷。管理员可以通过api或命令行接口进行卷的迁移和复制。

  • 备份和还原:cinder支持卷的备份和还原,可以将卷的数据备份到其他地方进行保护。管理员可以通过api或者命令行接口创建,删除和还原卷的备份。

  • 存储后端支持:cinder支持多种存储后端,包括本地存储,ISCSI,NFS,CEPH,GLUSTERFS等,管理员可以根据需求选择和配置不同的存储后端。

  • 多租户支持:cinder支持多租户,可以为不同的租户提供独立的块存储服务,并且可以限制不同租户的配额和权限。

  • 高可用性和容错性:cinder具有高可用性和容错性,可以保存存储服务的可用性和数据的安全性。cinder支持多副本和数据荣誉,同时还支持故障转移和自动恢复。

  • 网络互通性:cinder可以与其它openstack组件进行交互,如nova,glance等,同时还支持api和命令行接口,可以方便地与其他系统进行集成。

总结

cinder是opensatck平台中的一个重要组件,为云计算环境中虚拟机提供持久化的块存储服务,支持多种存储后端和多租户,并具有高可用性和容错性。cinder的主要优势在于其可扩展性和灵活性,可以根据需要选择不用的存储后端,并且可以通过api和命令行接口和管理。

存储

文件存储

文件存储依靠文件系统来存储文件。文件直接存储在文件系统上,通过ftp,网络文件系统等服务进行访问。特点是使用简单,兼容性好,但响应速度和存储容量一般。

块存储

块存储中的是值得是存储系统采用的一整块的存储设备,如同一块硬盘。块存储技术通常是指将裸磁盘空间整个映射给主机时使用的技术。因此,块存储可以虚拟出整块硬盘给云主机使用,对云主机的操作系统来说,这就是挂载的物理硬盘。他的特点是响应速度极其快,同时具有高稳定性和可靠性,但受硬件容量限制,其容量不大。

对象存储

对象存储以对象(封装)的形式管理数据。对象和文件最大的不同就是对象在文件基础之上增加了元数据。对象数据可以分为两部分:

  • 数据,存储在对象存储服务器中
  • 对应的元数据,存储在元数据服务器中

总结

数据通常都是无结构的书,如图片、视频等。元数据值得是对数据的相关描述,例如图片的大小,数据存储的位置信息等。当需要访问某个对象时,先查询元数据服务器获得具体位置信息,再从对象存储服务器中获得具体数据。对象存储主要用于分布式存储,其存储容量巨大,但速度较慢。

文件存储就是存储的文件,文件自己有数据和元数据,对象存储只要被存储了就不可更改,只能下载,修改,在上传。

cinder架构

img

在块存储中,裸硬盘统称为卷,cinder的任务就是管理卷,包括卷的创建,删除等操作。

cinder的主要模块和功能

cinder-api

接收api请求,调用cinder-volume模块。是整个cinder组件的门户,所有cinder的请求都首先由cinder-api处理。cinder-api向外界暴露若干http rest api接口。在keystone中我们可以查询cinder-api的 endponits。

img

cinder-volume

数据的存储设备,为volume提供物理存储空间。cinder-colume支持多种volume provider,每种volume provider通过自己的driver与cinder-colume协调工作。

img

cinder-scheduler

schduler通过调度算法选择最合适的存储节点创建volume。创建volume时,cinder-scheduler会基于容量,volumetype等条件选择出最合适的存储节点,然后让其创建volume

img

Message Queue

cinder各个子服务通过消息队列实现进程间的通信和相互协作。因为有了消息队列,子服务之间实现了解耦,这种松散的结构也是分布式系统的重要特征

Database Cinder

有一些数据需要存放在数据库中,一般使用mysql。数据库是安装在控制节点上的,比如在我们的实验环境中,可以访问名称为"cinder"的数据库

cinder-backup

cinder-backup用于将volume备份到其他存储系统上,目前支持的备份存储系统有swift,ceph,ibmTivoli storage manager(TSM)、glusterFS等,默认是swift。

基本工作流程

cinder组件的主要功能就是对卷进行创建与管理

img

  • cinder-api接收到用户通过管理界面或命令行发起的卷创建请求后,完成必要处理后将其发送到消息队列中
  • cinder-scheduler从消息队列中获得请求和数据后,从若干存储节点选出一个能存放改卷的节点,并将消息发送给消息队列
  • cinder-volume从消息队列中获得请求后,通过volume-provider调用具体的卷管理系统在存储设备上创建卷

安装完成之后的验证

[root@controller ~]# openstack volume service list
+------------------+----------------+------+---------+-------+----------------------------+
| Binary           | Host           | Zone | Status  | State | Updated At                 |
+------------------+----------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller     | nova | enabled | up    | 2024-09-21T02:59:17.000000 |
| cinder-volume    | controller@lvm | nova | enabled | up    | 2024-09-21T02:59:17.000000 |
| cinder-backup    | controller     | nova | enabled | up    | 2024-09-21T02:59:15.000000 |
+------------------+----------------+------+---------+-------+----------------------------+
[root@controller ~]# 

posted on 2024-09-21 11:04  代码你敲我不敲  阅读(87)  评论(0编辑  收藏  举报

导航

返回顶端