赞
踩
近期研究OpenStack相关技术,将学习过程中思路形成文字记录下来并进行分享,以便后期查阅。如有错误请不吝指出,我将虚心学习☺️
操作系统得到存储空间一般有两种方式:
理解了块存储,就能很容易的理解cinder。cinder是OpenStack平台中负责提供块存储服务的组件,它的任务就是管理volume从创建到删除的整个生命周期。
cinder的前身是nova中的nova-volume组件,后来被从nova中剥离出来成为一个独立的OpenStack组件。
cinder整体由以下主要模块组成:
cinder-api对外提供REST API、响应请求、调用cinder-volume,是整个cinder组件的门户。具体来说cinder-api的任务就是:
当用户向cinder-api发出请求创建一个volume时,有以下两种场景:
cinder-volume运行在存储节点上,负责管理具体存储设备的存储空间。每个存储节点都会运行cinder-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用于将volume备份到其他存储系统上,目前支持的备份存储系统有swift、ceph、IBM Tivoli storage manager(TSM)、glusterFS等,默认是swift。
以上就是今天要讲的内容,本文仅仅简单介绍了cinder的概念,cinder为OpenStack提供了块存储管理能力,后面的文章将就源码做一个简单导读。
参考文档
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。