Cinder 组件

2021SC@SDUSC

Cinder 组件

一. Cinder 简介

cinder 是OpenStack 块存储的服务,为Nova虚拟机,容器等提供volume。

cinder的目的

  • 以组件为基础的架构:快速添加新行为
  • 高可用性:大负载规模
  • 容错性:将进程隔离以防止错误剧增
  • 可恢复性:错误更容易被发现和纠正
  • 开放标准:成为社区驱动api的一个实现

块存储:

  1. 操作系统获得存储空间的方式一般有两种:

​ 1. 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区、格式化、创建文件系统;或者直接使用裸硬盘存储数据(数据库)。

​ 2. 通过 NFS、CIFS 等 协议,mount 远程的文件系统。

   2. 第一种裸硬盘的方式叫做 Block Storage(块存储),每个裸硬盘通常也称作 Volume(卷) 第二种叫做文件系统存储。NAS 和 NFS 服务器,以及各种分布式文件系统提供的都是这种存储。

块存储服务提供对 volume 从创建到删除整个生命周期的管理。从 instance 的角度看,挂载的每一个 Volume 都是一块硬盘。OpenStack 提供 Block Storage Service 的是 Cinder,其具体功能是:

​ 1. 提供 REST API 使用户能够查询和管理 volume、volume snapshot 以及 volume type。

​ 2. 提供 scheduler 调度 volume 创建请求,合理优化存储资源的分配

​ 3. 通过 driver 架构支持多种 back-end(后端)存储方式,包括 LVM,NFS,Ceph 和其他诸如 EMC、IBM 等商业存储产品和方案

二 .架构简图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jPD394sG-1635174897985)(C:\Users\Jeremiah\AppData\Roaming\Typora\typora-user-images\image-20211025213146992.png)]

cinder-api :

  1. 控制卷的创建,删除,保存(从卷,镜像和快照中创建)

     				2. 快照的创建,删除和保存
     				3. volume attach and detach (call by nova)
     				4. 管理卷的种类,配额和备份
    

cinder-volume:

主要组件:

  • API:cinder-api与cinder-volume的交互

  • manager:真正实现api的组件

  • driver:manager 组件调用,包含与多种存储类型交流的后端专用代码。

    注:

    1. admin 控制多个cinder-volume 的实例 (每个实例拥有其配置文件和存储后端)
    2. 一个cinder-volume实例管理多个后端
    3. 每个后端驱动与一个存储池相交互

cinder - scheduler:

  1. 选择哪个后端用于放置新的volume

  2. 设置scheduler的插件 (Filter scheduler has plugins for filters and weights)

    filter scheduler

    流程:

    1. 查看所有后端
    2. 按照要求过滤(如:driver要求的容量和状态,admin 创建volumn时的具体要求和user可能指定的volumn_type)
    3. 按照权重排序(如:可用空间)
    4. 返回最佳可用卷

volume-provider:

数据的存储设备,为volume提供存储空间,每个provider通过自己的driver与cinder-volume相协作。

三.Nova与Cinder的控制流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XJN2nQyw-1635174897988)(C:\Users\Jeremiah\AppData\Roaming\Typora\typora-user-images\image-20211025214907243.png)]

  1. Nova 通过 cinder的api调用cinder,传递连接信息
  2. cinder-api向cinder-volume传递信息
  3. manager执行最初的错误检查并调用volume-driver
  4. volume-driver 为接下来的连接执行必要准备
  5. volume-driver返回连接信息,返回给Nova
  6. Nova用返回的信息建立与存储的连接
  7. Nova将volume 设备/文件 返回给虚拟机
四.创建卷的流程

一 cinder api

  1. 调用cinder 提供api (api有v2和v3两个版本,v2已经被移除,现在默认使用v3版本,v3会进行更多的检查)即:v3/volume

    api对请求做了name,description,image_id,type,metadata,snapshot等做了检查

    之后调用volume_api的create方法

try:

      new_volume = self.volume_api.create(

        context, size, volume.get(</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值