• 云计算openstack共享组件-cinder存储服务8


    一、cinder 介绍:
     
    理解 Block Storage
    操作系统获得存储空间的方式一般有两种:
    1. 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区、格式化、创建文件系统;或者直接使用裸硬盘存储数据(数据库)
    2. 通过 NFS、CIFS 等 协议,mount 远程的文件系统
       
    第一种裸硬盘的方式叫做 Block Storage(块存储),每个裸硬盘通常也称作 Volume(卷) 第二种叫做文件系统存储。NAS 和 NFS 服务器,以及各种分布式文件系统提供的都是这种存储。
     
    理解 Block Storage Service
    Block Storage Servicet 提供对 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 等商业存储产品和方案
    Cinder 架构
    下图是 cinder 的逻辑架构图
     
    openstack endpoint list |grep cinder 
    cinder-api 对接收到的 HTTP API 请求会做如下处理:
    1、检查客户端传人的参数是否合法有效
    2、调用 cinder 其他子服务的处理客户端请求
    3、将 cinder 其他子服务返回的结果序列号并返回给客户端
    cinder-volume
    管理 volume 的服务,与 volume provider 协调工作,管理 volume 的生命周期。运行 cinder-volume 服务的节点被称作为存储节点。
     OpenStack 是分布式系统,其每个子服务都可以部署在任何地方,只要网络能够连通。无论是哪个节点,只要上面运行了 cinder-volume,它就是一个存储节点,当然,该节点上也可以运行其他 OpenStack服务。
     
    一般来讲,volume provider 是独立的。cinder-volume 使用 driver 与 volume provider 通信并协调工作。所以只需要将 driver 与 cinder-volume 放到一起就可以了。在 cinder-volume 的源代码目录下有很多 driver,支持不同的 volume provider。
    二、 Cinder 的设计思想:
    流程图:
    • 客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(cinder-api)发送请求:“帮我创建一个 volume”
       
    • API 对请求做一些必要处理后,向 Messaging(RabbitMQ)发送了一条消息:“让 Scheduler 创建一个 volume”
       
    • Scheduler(cinder-scheduler)从 Messaging 获取到 API 发给它的消息,然后执行调度算法,从若干计存储点中选出节点 A
       
    • Scheduler 向 Messaging 发送了一条消息:“让存储节点 A 创建这个 volume”
    查看服务-openstack volume service  list
    (1) 禁用服务
    openstack volume service set --disable HOST_NAME BINARY_NAME
    (2) 从数据库中删除节点
    cinder-manage service remove BINARY_NAME HOST_NAME
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    1.  
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
  • 相关阅读:
    js中cookie的操作
    javascript HTML静态页面传值的四种方法
    更改ligerui源码实现分页样式修改
    javascript Date format(js日期格式化)
    LigerUI用PostGetAjax前后台交互方式的写法
    html中 accept 属性
    jQuery.ajax() 设置 Headers 中的 Accept 内容
    C# 事件(Event)
    C# 委托(Delegate)
    C# 反射(Reflection)
  • 原文地址:https://www.cnblogs.com/kittywerwer/p/11703761.html
Copyright © 2020-2023  润新知