Cinder块存储
2016-10-26 本文已影响512人
K1024
一、什么是Cinder块存储
- Cinder是Openstack对块存储的实现
- 块存储服务主要是为虚拟机提供弹性的存储服务
二、什么是块存储服务,与Swift的区别是什么?
- Swift存储服务只是提供简单的上传下载功能,没有提供实时的读写功能,无法提供告诉的I/O功能的存储服务,不能像一般的文件系统使用
- Swift可以简单理解成:我们在个人PC电脑上的云网盘。而Cinder就是移动硬盘,可以通过操作系统直接做读写修改操作。
三、Cinder的架构
-
三种节点:API Node、Schedule Node、Volume Node
(1)API Node:主要功能是向外部服务提供Restful API,除此之外其他节点都是通过RabbitMQ进行通信
(2)Scheduler Node:就是调度服务,将客户端的各种请求转发到对应的Volume Node节点
(3)Volume Node:提供了真正的块存储服务,就相当于提供给虚拟机的移动硬盘所占用的空间是位于Volume Node -
创建Volume的流程
Cinder多节点部署方式.jpg
(1)client想API节点发送创建volume的请求
(2)API节点验证请求的合法性
(3)API节点将合法请求转给Schedule节点,如果存在多个,那么随机找一个
(4)收到消息的Scheduler节点,查看正常运行的Volume节点,选择一个合适的Volume节点,将创建请求转发上去
(5)接收到请求的Volume节点会准备资源创建Volume,返回创建结果
(6)之前的Scheduler节点接收到创建结果之后,返回给API节点。API节点再将此结果返回Client端
四、Cinder内部模块通信示意图
Cinder的内部通信.jpg主要就是靠MQ进行内部消息的传递,做到了解耦,但是MQ服务器的稳定性成为关键