Cinder块存储

一、什么是Cinder块存储

  1. Cinder是Openstack对块存储的实现
  2. 块存储服务主要是为虚拟机提供弹性的存储服务

二、什么是块存储服务,与Swift的区别是什么?

  1. Swift存储服务只是提供简单的上传下载功能,没有提供实时的读写功能,无法提供告诉的I/O功能的存储服务,不能像一般的文件系统使用
  2. Swift可以简单理解成:我们在个人PC电脑上的云网盘。而Cinder就是移动硬盘,可以通过操作系统直接做读写修改操作。

三、Cinder的架构

  1. 三种节点:API Node、Schedule Node、Volume Node
    (1)API Node:主要功能是向外部服务提供Restful API,除此之外其他节点都是通过RabbitMQ进行通信
    (2)Scheduler Node:就是调度服务,将客户端的各种请求转发到对应的Volume Node节点
    (3)Volume Node:提供了真正的块存储服务,就相当于提供给虚拟机的移动硬盘所占用的空间是位于Volume Node

  2. 创建Volume的流程


    Cinder块存储_第1张图片
    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块存储_第2张图片
Cinder的内部通信.jpg

主要就是靠MQ进行内部消息的传递,做到了解耦,但是MQ服务器的稳定性成为关键

你可能感兴趣的:(Cinder块存储)