Cinder笔记

这几天在学习Openstack的Cinder项目,记录学习笔记如下。

Cinder从Openstack的Folsom版本(2012年9月发布)开始出现,用以替代Nova-Volume服务,Cinder为Openstack提供了管理卷(volunme)的基础设施。

按Openstack官方文档的表述,Cinder是受请求得到、自助化访问的块储存服务,即Cinder有两个显著地特点,第一,必须用户提出请求,才能得到该服务;第二,用户可以自定义的半自动化服务。Cinder实现LVM(逻辑卷管理),用以呈现存储资源给能够被Nova调用的端用户。简而言之,Cinder虚拟化块存储设备池,提供端用户自助服务的API用以请求和使用这些块资源,并且不用了解存储的位置或设备信息。

 

    Cinder相关项目

      1、Python Cinder客户端

      2、块存储API文档

 

      Cinder架构


    LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义。

    Auth Manager:授权管理者

    AMQP:高级消息队列协议,应用于MQ中。

    SCSI 即 小型计算机系统接口 。小型计算机系统接口(英语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。它是各种计算机与外部设备之间的接口标准。

    iSCSI: Internet 小型计算机系统接口(iSCSI)是一种基于TCP/IP的协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。

    REST :表征状态转移(Representational State Transfer),定义了一种软件架构原则,它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。根据这些原则设计以系统资源为中心的 Web 服务,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态。 如果考虑使用它的 Web 服务的数量,REST 近年来已经成为最主要的 Web 服务设计模式。

    Cinder整体构架中,API是核心部分,连接了内部的授权管理,REST请求,MQ队列和前端的Cinder客户端,Nova客户端。客户端通过Web界面显示Cinder信息,Nova端用户可以调用存储在块中的资源。MQ队列,Scheduler调度volume上的存储信息。iSCSI是一个接口协议,一端连接存储设备(Volume),一端连接其他主机。

 

       Cinder服务

       API service:Cinder构架图的核心部分,负责接受和处理Rest请求,并将请求放入RabbitMQ队列。

       Scheduler service: 处理任务队列的任务,并根据预定策略选择合适的Volume Service节点来执行任务。所以构架图中,Scheduler一端连接MQ队列,处理MQ队列中的任务;一端连接Volume设备,任务在Volume节点上执行。

        Volume service: 该服务运行在存储节点上,管理存储空间。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。

 

       Cinder服务的部署

上述的Cinder服务都可以独立部署,

       Cinder-all: 用于部署all-in-one节点,即API, Scheduler, Volume服务部署在该节点上。

       Cinder-scheduler: 用于将scheduler服务部署在该节点上。

    Cinder-api: 用于将api服务部署在该节点上。

    Cinder-volume: 用于将volume服务部署在节点上执行。

 

 

       Cinder如何支持典型存储

       从目前的实现来看,Cinder对本地存储和NAS的支持比较不错,可以提供完整的Cinder API V2支持,而对于其它类型的存储设备,Cinder的支持会或多或少的受到限制。

       1、对于本地存储,cinder-volume可以使用lvm驱动,该驱动当前的实现需要在主机上事先用lvm命令创建一个cinder-volumes的vg, 当该主机接受到创建卷请求的时候,cinder-volume在该vg上创建一个LV, 并且用openiscsi将这个卷当作一个iscsi tgt给export.当然还可以将若干主机的本地存储用sheepdog虚拟成一个共享存储,然后使用sheepdog驱动。

       2、EMC

       3、NetApp

       结合EMC和NetApp两个典型存储图,存储过程必定包含的元素有用户,Nova(Openstack的核心项目,计算功能),数据库,Volume管理(资源就是存储在Volume设备上),另外MQ队列至关重要,所有请求消息都汇集MQ队列,依次进行处理。EMC和NetApp存储的不同点是EMC使用SMI-S服务器,通过CIM与Volume管理者进行信息交互,而NetApp使用NetApp OnCommand存储管理方式,通过REST与Volume管理者传递请求。

 

  

       本文参考:

         1、Openstack官网Cinder部分https://wiki.openstack.org/wiki/Cinder

         2、http://blog.csdn.net/luo_brian/article/details/8592692

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cinder是一个开源项目,它提供了一个用于管理和提供持久块存储的服务。在分布式环境中,Cinder可以通过将存储资源分解为多个存储节点来提供更高的可靠性和可扩展性。 在Cinder的分布式架构中,存储资源可以由不同的存储节点提供。每个存储节点可以是物理存储设备、存储服务器或存储阵列等。这些存储节点通过网络连接在一起,形成一个分布式存储系统。 Cinder使用了一些关键的技术来实现分布式存储。其中一个关键技术是数据复制和数据迁移。当存储节点故障或发生网络故障时,Cinder能够将数据从故障的节点复制到其他可用节点,从而确保数据的可用性。另外,当存储需求增加或发生负载不平衡时,Cinder能够自动迁移数据到其他节点上,以实现负载均衡。 另一个关键技术是数据块的映射和路由。Cinder通过数据映射和路由来确定应该将数据存储在哪个节点上,并在需要访问数据时将请求路由到正确的节点上。这样可以提高数据的访问速度和响应性能。 在使用Cinder分布式存储时,用户可以通过Cinder API访问和管理存储资源。用户可以创建、删除和扩展存储卷,将卷附加到虚拟机上并进行数据操作。Cinder还提供了诸如快照、克隆和迁移等高级功能,以满足不同的存储需求。 总之,Cinder分布式存储提供了一个可靠、高性能和可扩展的块存储服务。它通过将存储资源分解为多个存储节点,并使用数据复制、数据迁移和数据映射等技术来提高存储系统的可用性和性能。用户可以通过Cinder API方便地管理存储资源,并满足不同的存储需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值