Cinder详解

2023-05-16

文章目录

  • 理解cinder
  • cinder架构
    • cinder-api
    • cinder-volume
    • cinder-scheduler
    • volume provider
    • cinder DB
  • cinder设计思想

理解cinder

操作系统得到存储空间一般有两种方式:

  • 块存储:挂接裸硬盘,分区,格式化,创建文件系统;或者直接使用裸硬盘存储数据
  • 文件系统存储:通过nfs等方式挂载远程的文件系统

在块存储中,裸硬盘通常被称为volume(卷)。

理解了块存储,就能很容易的理解cinder。cinder是OpenStack平台中负责提供块存储服务的组件,它的任务就是管理volume从创建到删除的整个生命周期。cinder的前身是nova中的nova-volume组件,后来被从nova中剥离出来成为一个独立的OpenStack组件。

cinder架构

cinder架构大致可以分为4部分:

  • cinder-api
  • cinder-scheduler
  • cinder-volume
  • cinder-backup

它们的关系大致为:

在这里插入图片描述

cinder-api

cinder-api对外提供REST API、响应请求、调用cinder-volume,是整个cinder组件的门户。具体来说cinder-api的任务就是:

  • 检查客户端传入的参数是否有效
  • 调用cinder其他子组件处理客户端请求
  • 将其他子组件处理的结果返回客户端

cinder-volume

cinder-volume运行在存储节点上,负责管理具体存储设备的存储空间。每个存储节点都会运行cinder-volume服务,多个存储节点便组成了一个存储资源池。
cinder-volume运行在存储节点,通过OpenStack平台对volume的指令最后都会由cinder-volume完成。但是cinder-volume自身并不是真正的存储设备,真正的存储设备是volume provider,cinder-volume与volume provider一起实现了对volume全生命周期的管理。

但是cinder在这里遇见了和neutron同样的问题,市面上有这么多volume provider,是将cinder-volume设计成与volume provider一一对应的形式吗,但这样就要设计很多代码相似度很高的cinder-volume。在这个问题上,cinder也运用了和neutron同样的思路。
通过驱动架构,cinder-volume为volume provider定义了统一的接口,对于volume provider来说,只要实现这些接口就可以以驱动的形式像插件一样插入OpenStack系统中。

cinder-scheduler

当用户向cinder-api发出请求创建一个volume时,如果用户已经指定存储节点,则cinder-api会直接调用cinder-volume去创建volume;当用户没有指定节点时,cinder-api会将请求发送给cinder-scheduler,然后cinder-scheduler会根据调度算法选择最合适的存储节点创建volume。

volume provider

volume provider是数据存储设备,为volume提供物理存储空间。cinder-volume支持多种volume provider,每种volume provider通过自己的驱动与cinder-volume协同工作。

cinder DB

与OpenStack的其他服务一样,cinder在部署前也需要在数据库中创建一个名为cinder的database。

cinder设计思想

前面说到cinder的前身是nova中的nova-volume组件,后来才被单独提出来成为一个OpenStack组件,因此cinder的设计架构和nova十分相像,具体体现在它们各个子组件的功能基本都能对应。

前台nova-apicinder-api
经理nova-schedulercinder-scheduler
外勤nova-computecinder-volume

细心的童鞋可能注意到了,nova架构中还有一个nova-conductor充当nova-compute连接数据库的中间件,而cinder却没有,这是为什么呢?
其实nova-compute之所以不能直接连接数据库,是因为它与租户的实例连接紧密,如果它可以连接数据库,那么租户也可以通过nova-compute组件来连接数据库,这样就造成了安全隐患。但对于cinder-volume来说,它部署在存储节点,与租户并无直接联系,也就不用担心租户会通过它连接数据库,因此,cinder并无与nova-conductor类似的组件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cinder详解 的相关文章

随机推荐

  • 3天学会Jenkins_10_gitlab or github代码提交后自动构建1

    转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net或者我的CSDN https blog csdn net freeape 1 背景 在多人团队开发中 xff0c 经
  • 3天学会Jenkins_11_gitlab or github代码提交后自动构建2

    转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net或者我的CSDN https blog csdn net freeape 文章目录 1 准备2 Jenkinsfil
  • 3天学会Jenkins_12_配置Jenkinsfile构建完成后自动发送邮件

    转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net或者我的CSDN https blog csdn net freeape 文章目录 1 准备2 Jenkinsfil
  • 3天学会Jenkins_13_自动部署项目到远程服务器

    转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net或者我的CSDN https blog csdn net freeape 文章目录 1 准备2 目标和原理2 1 目
  • Kafka及周边深度了解

    本文属于原创 xff0c 转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net 或者我的CSDN http blog csdn net freeape 文章目录 0 前
  • Kafka,ZK集群开发或部署环境搭建及实验

    本文属于原创 xff0c 转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net 或者我的CSDN http blog csdn net freeape 文章目录 1 前
  • Spring Boot 基于Spring Integration 实现MQTT客户端简单订阅发布功能

    本文属于翻译 xff0c 转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net TOC 1 简介 Spring Integration 提供入站 inbound 和出站
  • php 获取今天开始的时间戳

    一天86400秒 time 61 time date 61 date 39 Y m d 39 time 今天的年月日 startTime 61 strtotime date 39 Y m d 39 time 今天开始时间的时间戳 endTi
  • Spring Boot Kafka概览、配置及优雅地实现发布订阅

    本文属于原创 xff0c 转载注明出处 xff0c 欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https xiaobaiai net 文章目录 1 前言2 Spring Kafka功能概览2 1 自动创建主题2 2 发送消
  • An Ota Package Tool

    文章目录 OtaPackageToolInstallationBinary InstallationInstalling Tool from Source UsagePreparationExamplesFull UpdatesIncrem
  • [开源]OTA打包工具

    文章目录 OTA打包工具 96 ota packer 96 安装二进制安装源码编译安装 使用准备示例全量包增量包生成关于OTA包版本之间文件变更类型说明 96 ota packer 96 使用条件License OTA打包工具 ota pa
  • [golang]包管理

    文章目录 1 GOPATH vs Go Modules2 Go Modules Go Module Proxy 和 goproxy cn3 Go Modules 相关知识3 1 语义化版本控制规范3 2 go mod3 3 go sum3
  • 【名名的Bazel笔记】自定义规则实现将多个静态库合并为一个动态库或静态库

    文章目录 1 前言2 自定义规则实现2 1 规则功能2 2 实现规则的理论基础2 3 规则代码实现 3 总结4 参考资料 1 前言 为了实现如标题所述的将多个静态库合并为一个动态库 xff0c 内置的 Bazel 规则是没有这个功能的 xf
  • 【名名的Bazel笔记】自定义工具链实现交叉编译

    文章目录 1 前言2 Non Platform 方式3 Platform 方式3 1 平台3 1 1 概述3 1 2 定义约束和平台3 1 3 通用的约束和平台3 1 4 指定平台构建 3 2 工具链3 3 Platform 43 Tool
  • PX4/Pixhawk---uORB深入理解和应用

    The Instructions of uORB PX4 Pixhawk 软件体系结构 uORB 主题发布 主题订阅 1 简介 1 1 PX4 Pixhawk的软件体系结构 PX4 Pixhawk的软件体系结构主要被分为四个层次 xff0c
  • join函数

    Python中我们经常会用到join函数 join函数的基本格式是 xff1a span class token string 39 39 span span class token punctuation span join span c
  • Glance详解

    Glance简介 Glance是OpenStack平台中负责镜像服务的组件 xff0c 其功能包括系统镜像的查找 注册和获取等 简单来说glance的功能就是用户可以通过其提供的REST API查询和获取镜像元数据 xff0c 通过Glan
  • 深入理解k8s中的service概念

    文章目录 service的概念kube proxy的作用kube proxy的三种模式Userspace Proxy ModeIptables Proxy ModeIPVS proxy mode service的概念 在k8s集群中 xff
  • Java_Save could not be completed. Try File> Save As. if the problem persists.

    所以最好不要用 开头的符号作为变量名 xff0c 变量名中含有一些奇怪的字符也会产生编码问题
  • Cinder详解

    文章目录 理解cindercinder架构cinder apicinder volumecinder schedulervolume providercinder DB cinder设计思想 理解cinder 操作系统得到存储空间一般有两种