当前位置: 首页 > 软件库 > 服务器软件 > 存储系统 >

OpenStack Cinder

存储服务
授权协议 Apache
开发语言 Python
所属分类 服务器软件、 存储系统
软件类型 开源软件
地区 不详
投 递 者 章哲茂
操作系统 Linux
开源组织 OpenStack
适用人群 未知
 软件概览

Openstack 从 Folsom 开始使用 Cinder 替换原来的Nova-Volume服务,为 Openstack 云平台提供块存储服务。

Cinder架构

                                                 /- ( LDAP )
                             [ Auth Manager ] ---
                                    |            \- ( DB )
                                    |
                                    |
                   cinderclient     |
                  /             \   |
[ Web Dashboard ]-               -[ api ] -- < AMQP > -- [ scheduler ] -- [ volume ] -- ( iSCSI )
                  \             /   |
                   novaclient       |
                                    |
                                    |
                                    |
                                 < REST >

Cinder服务

  • API service:负责接受和处理Rest请求,并将请求放入RabbitMQ队列。Cinder提供Volume API V2, 我没有找到格式很好的在线文档,大体可以参见Openstack block storage API V1

  • Scheduler service: 处理任务队列的任务,并根据预定策略选择合适的Volume Service节点来执行任务。目前版本的cinder仅仅提供了一个Simple Scheduler, 该调度器选择卷数量最少的一个活跃节点来创建卷。

  • Volume service: 该服务运行在存储节点上,管理存储空间。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。为了支持不同类型和型号的存储,当前版本的Cinder为Volume Service如下drivers。当然在Cinder的blueprints当中还有一些其它的drivers,以后的版本可能会添加进来。

    • 本地存储LVM, Sheepdog

    • 网络存储NFS, RBD (RADOS)

    • IBM: XIV, Storwize V7000, SVC storage systems

    • Netapp: NFS存储;ISCSI存储则需要OnCommand 5.0和Data ONTAP 7-mode storage systems with installed iSCSI licenses

    • EMC: VNX, VMAX/VMAXe

    • Solidfire: Solidfire cluster
       

Cinder服务的部署

上述的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的支持会或多或少的受到限制,下面是Rackspace对于Private Cloud存储给出的典型配置:

1. 本地存储

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

当然还可以将若干主机的本地存储用sheepdog虚拟成一个共享存储,然后使用sheepdog驱动。

2. EMC

3. Netapp


 

Cinder在IT环境中的主要问题

目前版本的Cinder在IT私有云场景中,从硬件兼容性,高性能,高可靠性,水平扩展能力,应用兼容性等维度来看,Cinder还存在不少问题需要解决。Cinder依然任重道远。

1. 对共享存储的支持有限

  • 不支持FC SAN;

  • 支持的存储设备有限,即使对于EMC, IBM这样的的主流存储厂商,也只能支持寥寥几款存储;

2. 对存储设备的使用不够高效

  • Cinder卷管理的基本原则是在共享存储上创建一个lun, 然后把这个lun作为一个block device给attach到一个虚拟机上。但是对于当前主流的存储,能够支持的最大lun数量非常有限,比如我们经常使用的Huawei S3900, 最多能支持288个lun,如果一个VM平均3个卷,不管这些VM是offline还是online, 这个存储最多只能支持90个VM。

3. 存储管理带来的性能损耗

  • 比如Cinder Volume的LVM驱动使用iSCSI export一个逻辑卷,从管理的角度来看是解决了存储共享的问题,从而能够支持比如迁移这样的功能,但是这样的设计势必会导致较大的性能损耗,和直接访 问相比,通常iSCSI export会增加30%以上的IO延迟。

4. 数据如何迁移

  • 企业IT环境中大量的数据,一般都是存放在SAN甚至是磁带设备上的,这些数据如何无损,安全的接入到Cloud呢?VMware因此提供了RDM, KVM和XEN也支持PVSCSI, 但是Cinder没有考虑这个。

5. Cinder的调度器不完善

  • Cinder提供的simple scheduler基本没有实用价值, 

  • cinder-scheduler仅能在初始放置时保证系统负载均衡,但是如果是发生了运行时负载严重不平衡,cinder就没法处理了。

6. Cinder服务的可靠性问题

  • cinder-api和cinder-scheduler是系统的单点,cinder并没有提供这两个服务提供任何HA和load balance设计,所以整个系统可靠性还是扩展性会比较受限制。

  • cinder-db如果发生不可恢复的故障,能够保证用户数据能恢复吗?

介绍内容出处:http://blog.csdn.net/luo_brian/article/details/8592692

  • OpenStack Cinder对接FC步骤 vim /etc/cinder/cinder.conf enabled_backends = dmz-vnx-5400 最后添加 [dmz-vnx-5400] storage_vnx_authentication_type = global storage_vnx_pool_name = storage_pool //FC存储的pool名 san_ip

  • ceph块存储介入openstack cinder 标签(空格分隔): openstack 在ceph节点配置 创建pool ceph osd pool create volumes 128 ceph osd pool create images 128 ceph osd pool create vms 128 查看上面命令创建的pool * ceph df 在ceph节点上创建用户client.

  • 任何在云上部署的应用都离不开持久化盘或者说是数据盘,在的虚拟机的使用场景里面,云服务提供商都会提供这样的一个服务。很多人可能不会理解为什么我创建的虚拟机不可以直接在上面写数据,而需要单独的去创建额外的磁盘进行数据的读写。 以OpenStack为例,其虚拟机的配置由Flavor 来决定。 可以看到其中定义了该VM的vCPU、内存以及root磁盘大小可以理解为sda。另外有一项比较特殊的是 ephem

  • Cinder 支持 front-end 端和 back-end 端设置 QoS,其中 front-end 表示 hypervisor 端,即在宿主机上设置虚拟机的 QoS,通常使用 cgroup 或者 qemu-iothrottling;back-end 端指在存储设备上设置 QoS,该功能需要存储设备的支持。  Ceph RBD 不支持 QoS,故数据盘的 QoS 需要采用 qemu io th

  • 概要: 本节我们讨论openstack cinder volume rbd驱动的 backup/restore操作。 Backup 是将 volume 备份到别的地方(备份设备),将来可以通过 restore 操作恢复。 Backup VS Snapshot Backup 与 snapshot 都可以保存 volume 的当前状态,以备以后恢复。但二者在用途和实现上还是有区别的,具体表现在: Sn

  • (本文所有提及OSP=OpenStack Platform) 1 云架构存储 1)Red Hat OpenStack Platform 中的存储: 虽然默认存储使用简单后端(LVM),但OpenStack Platform也支持企业级后端。包括最常用的SAN 基础架构,以及NAS 设备的支持,这允许将现有的存储基础架构作为OpenStack 的后端服务器连接本地存储,通常同时使用外部存储来扩展存储

  • Openstack Cinder的调度服务用于选择一个合适的cinder-volume节点来处理用户有关云盘生命周期的请求。本文介绍调度器affinity/anti-affinity的原理和使用方法。 1. Openstack中的affinity/anti-affinity 过滤器affinity/anti-affinity描述了云盘之间的关系: affinity表示新创建的云盘跟指定的云盘在同一

  • Openstack cinder有一个可选的功能:镜像盘缓存,可以明显提升从镜像创建云盘的性能。这个改进依赖很多因素,主要看存储后端克隆云盘的速度有多快。 一 简介 对于Cinder来说,保存镜像显然并不是它该做的事情,但是保存了镜像的云盘管理起来就游刃有余了。而且由于云盘大小是可以任意扩展的,只要缓存一份刚好满足镜像virtual size的云盘,然后在需要时扩展成所需的大小。当第一次从镜像创建

  • ======================回忆上篇 Cinder CLI命令(2)=============================== 四. 后端服务 1. 列出所有后端服务 cinderservice-list [--host <hostname>] [--binary <binary>] 参数: 参数 含义 host 根据主机名来筛选 binary 根据服务名称来筛选 2. 启用服

  • 一 配置控制节点 1.1 先决条件 安装SQL 1.2 创建数据库 mysql -u root -p CREATE DATABASE cinder; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'root'; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder

 相关资料
  • 我正在尝试编写一个Java程序,将Vault导出数据下载到Google云存储桶中,因为导出数据在两周后被删除。Vault数据与典型的GCS存储桶和对象标识关联,因此可能存储在GCS中。似乎有两个Java客户端库,com。谷歌。云存储和com。谷歌。应用程序编程接口。服务。存储,它似乎完成了我需要的功能,但以不同的方式工作,并使用不同的身份验证源(凭据对象)。如果我使用com。谷歌。应用程序编程接口

  • 为了更清楚地说明,我明白最终必须有人被信任。例如,ops工程师可以拥有自己的凭据来访问Vault,并获得相同数据库的密码。这将允许用户访问,但不允许该用户模拟服务。是否有任何理由ops工程师也应该知道服务自己的凭据,以便在初始化后访问保险库?

  • 我正在尝试让Firebase存储与Imgix或cloudinary这样的图像服务一起工作。然而,Firebase提供的下载URL似乎不能与这些服务一起工作。 例如:Cloudinary说您可以获取如下所示的图像: http://res.cloudinary.com/demo/image/fetch/http://upload.wikimedia.org/wikipedia/commons/0/0C

  • 我试图从GCS读取文件。以下是我创建的方法。我在一些服务层中使用这个方法。因为这个方法中的一些调用是静态的和最终的,因为我的单元测试失败了。 以下是地面军事系统存储的代码: 我正试图为同样的问题编写Junit测试。但是文件。类是最终类,用于我收到空指针异常。 期待尽快收到你们的来信。

  • 我找到了一些相关的答案,但没有一个能解释我是否真的需要Azure Media Services团队示例中的所有代码https://azure.microsoft.com/en-us/documentation/articles/media-services-copying-existing-blob/我只想把一个文件从blob上传到Azure Media Services。这样地: 但是我得到了

  • 阿里云存储服务(OpenStorageService,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。用户可以通过简单的REST接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据,也可以使用WEB页面对数据进行管理。同时,OSS提供Java、 Python、 PHP、C#语言的SDK,简化用户的编程。基于OSS,用户可以搭建出各种多媒体分享网站、网盘、个人和企业

  • 问题内容: 是否有人从Oracle存储过程成功访问了Web服务?如果是这样,那是Java存储过程吗?PL / SQL存储过程? 有什么原因为什么我不应该尝试从存储的proc访问WS? 这是我到目前为止发现的几个参考 数据库Web服务 从Java存储过程调用外部Web服务 为了澄清,这是针对SOAP调用的 问题答案: 首先,您要调用哪种Web服务?我假设是SOAP或REST。 对于REST Web服