前言
近期研究OpenStack相关技术,将学习过程中思路形成文字记录下来并进行分享,以便后期查阅。如有错误请不吝指出,我将虚心学习☺️
一、什么是Cinder?
操作系统得到存储空间一般有两种方式:
- 块存储:挂接裸硬盘,分区,格式化,创建文件系统;或者直接使用裸硬盘存储数据
- 文件系统存储:通过nfs等方式挂载远程的文件系统
在块存储中,裸硬盘通常被称为volume(卷)。
理解了块存储,就能很容易的理解cinder。cinder是OpenStack平台中负责提供块存储服务的组件,它的任务就是管理volume从创建到删除的整个生命周期。
cinder的前身是nova中的nova-volume组件,后来被从nova中剥离出来成为一个独立的OpenStack组件。
二、cinder架构
cinder整体由以下主要模块组成:
- cinder-api
- cinder-scheduler
- cinder-volume
- cinder-backup
cinder-api
cinder-api对外提供REST API、响应请求、调用cinder-volume,是整个cinder组件的门户。具体来说cinder-api的任务就是:
- 检查客户端传入的参数是否有效
- 调用cinder其他子组件处理客户端请求
- 将其他子组件处理的结果返回客户端
cinder-scheduler
当用户向cinder-api发出请求创建一个volume时,有以下两种场景:
- 如果用户已经指定存储节点,则cinder-api会直接调用cinder-volume去创建volume
- 当用户没有指定节点时,cinder-api会将请求发送给cinder-scheduler,然后cinder-scheduler会根据调度算法选择最合适的存储节点创建volume
cinder-volume
cinder-volume运行在存储节点上,负责管理具体存储设备的存储空间。每个存储节点都会运行cinder-volume服务,多个存储节点便组成了一个存储资源池。
- cinder-volume运行在存储节点
通过OpenStack平台对volume的指令最后都会由cinder-volume完成。 - 真正的存储设备是volume provider
cinder-volume与volume provider一起实现了对volume全生命周期的管理。
volume provider有开源的也有商业的,如LVM、Huawei、IBM、Dell等商业块存储解决方案。
但是cinder在这里遇见了和neutron同样的问题,市面上有这么多volume provider,是将cinder-volume设计成与volume provider一一对应的形式吗,但这样就要设计很多代码相似度很高的cinder-volume。在这个问题上,cinder也运用了和neutron同样的思路:
通过驱动架构,cinder-volume为volume provider定义了统一的接口,对于volume provider来说,只要实现这些接口就可以以驱动的形式像插件一样插入OpenStack系统中。
cinder-backup
cinder-backup用于将volume备份到其他存储系统上,目前支持的备份存储系统有swift、ceph、IBM Tivoli storage manager(TSM)、glusterFS等,默认是swift。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了cinder的概念,cinder为OpenStack提供了块存储管理能力,后面的文章将就源码做一个简单导读。文章来源:https://www.toymoban.com/news/detail-403515.html
参考文档文章来源地址https://www.toymoban.com/news/detail-403515.html
- Cinder详解
到了这里,关于【OpenStack】Cinder简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!