首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》第3章 存储管理(Cinder)

关灯直达底部

3.1 Cinder的架构

OpenStack早期版本是使用nova-volume为云平台提供持久性块存储服务器的。从Folsom版本后,就把作为Nova组成部分的nova-volume分离了出来,形成了独立的Cinder组件。

Cinder本身并不直接提供块存储设备实际的管理和服务,而是在虚拟机和具体的存储设备之间引入一个抽象的“逻辑存储卷”。Cinder通过添加了不同厂家的DRIVE来整合多种厂家的后端存储设备,并通过提供统一的API接口的方式为云平台提供持久性的块设备存储服务,类似于Amazon的EBS(Elastic Block Storage)。

Cinder的架构如图3-1所示。

图3-1 Cinder架构

从架构图可以看出,Cinder主要由4部分服务组成。

1)API服务器:cinder-api是主要的服务接口,负责接受和处理外界的API请求,并将请求放入RabbitMQ队列,交由后端执行。

2)调度器服务:处理任务队列的任务,并根据预定策略选择合适的卷服务节点来执行任务。目前版本的Cinder仅仅提供了一个简单的调度器,该调度器选择卷数量最少的一个活跃节点来创建卷。

3)卷服务:该服务运行在存储节点上,管理存储空间,处理Cinder数据库的维护状态的读写请求,通过消息队列和直接在块存储设备或软件上与其他进程交互。每个存储节点都有一个卷服务,若干个这样的存储节点联合起来可以构成一个存储资源池。

4)备份服务:提供把Cinder卷备份到备份存储设备上去的服务,如Swift和Ceph的对象。