`
lynnkong
  • 浏览: 302885 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

【OpenStack】【转】Openstack之Cinder服务初探

阅读更多

这篇blog是一个同事不久前写的,得到允许后,在此转载。如需转载,请保留原blog链接。原帖链接:http://blog.csdn.net/luo_brian/article/details/8592692

Cinder背景

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如果发生不可恢复的故障,能够保证用户数据能恢复吗?

参考

分享到:
评论

相关推荐

    OpenStack之块存储服务(Cinder)

    OpenStack之块存储服务(Cinder) OpenStack之块存储服务(Cinder)是OpenStack中提供块存储服务的组件,主要功能是为虚拟机实例提供虚拟磁盘管理服务。Cinder的前身是Nova中的“nova-volume”组件,OpenStack F 版以后...

    OpenStack——块存储服务Cinder

    Cinder(BlockStorage...1、cinder-api负责接收和处理外界的API请求,通过消息队列服务调用cinder-volume执行操作。2、cinder-volumecinder-volume服务运行在存储节点上,用于管理存储空间,主要执行卷管理相关的功能

    openstack cinder之块存储管理

    OpenStack Cinder是OpenStack项目中的块存储服务组件,旨在为云环境提供持久性块存储资源。其核心功能包括创建、删除和附加卷,以及创建卷的快照和备份。Cinder的设计灵活且可扩展,支持多种后端存储设备,包括本地...

    OpenStack之Cinder学习笔记

    OpenStack的Cinder组件是专为云环境设计的块存储服务,它负责为虚拟机提供持久化的块存储设备。在OpenStack中,实例(虚拟机)的生命周期是短暂的,但通过Cinder,可以创建可挂载到多个实例的独立卷(volume),从而...

    华为HCIE-Cloud OpenStack培训视频.rar

    目录: openstack讲义V1.2 ... openstack之kvm讲解03 openstack之kvm讲解04 openstack原理 openstack原生glance,nova讲解 openstack openstack原生nova,cinder讲解 openstack原生cinder,Neutron讲解

    Docker使用OpenStack Cinder持久化 volume原理分析及实践.docx

    OpenStack Cinder 是一个为 OpenStack 提供块存储服务的项目,类似于 AWS 的 EBS (Elastic Block Store) 服务。其主要功能是为 OpenStack Nova 虚拟机提供虚拟硬盘服务,即允许用户将 Volume(存储卷)挂载到虚拟机...

    每天5分钟玩转OpenStack.PDF

    OpenStack是一个开源的云计算平台,它提供了一套全面的基础设施即服务(IaaS)解决方案,用于构建、管理和扩展私有云或公有云环境。这个资料"每天5分钟玩转OpenStack"很可能是针对初学者设计的一份指南,旨在帮助...

    《OpenStack云平台实战》课程测试试卷.docx

    5. OpenStack的存储服务由Cinder组件负责,提供块存储服务。 6. 关于Keystone,它是OpenStack的身份认证服务,用户可以属于多个项目,全局角色和项目内角色定义了不同范围的权限。 7. Glance支持多种镜像格式,但不...

    实验七_cinder服务安装和配置20170862107_-_黄国彪1

    Cinder是OpenStack中的块存储服务,它负责为虚拟机提供可扩展的块设备,如云硬盘。本实验旨在通过安装和配置Cinder服务,帮助学生理解Cinder的架构及其运行原理。下面将详细阐述实验过程。 ### 一、Cinder服务的...

    OpenStack cinder对接Ceph实验手册

    - **目标**: 本手册旨在通过一系列步骤指导读者完成OpenStack Cinder组件与Ceph的集成,实现OpenStack环境中基于Ceph的持久化存储服务。 #### 二、实验环境搭建 - **实验环境简介**: - **Ceph集群**: 包括三台...

    每天5分钟玩转OpenStack.pdf

    每天5分钟玩转OpenStack.pdf 每天5分钟玩转OpenStack.pdf

    一天教会你openstack云计算入门视频教程.zip

    目录 01-Openstack介绍及行业发展情况 02.Openstack组件介绍 ...15社区K版Openstack之Cinder 16社区K版openstack之nstance 17社区K版openstack之多节点swift对象存储 18-社区K版Openstack之heat和Telemetry

    OpenStack cinder和glusterfs对接操作

    OpenStack cinder和glusterfs对接操作

    OpenStack从零开始学

    总之,《OpenStack从零开始学》这本书将带领你走过OpenStack的入门之路,从基础概念到实战技巧,全面覆盖OpenStack的学习要点。通过阅读这本书,你将具备使用OpenStack构建和管理云基础设施的能力,并为进一步深入...

    openstack组件卸载命令等2个文件

    OpenStack是一个开源的云计算平台,由多个服务组成,如计算(Nova)、对象存储(Swift)、块存储(Cinder)、网络(Neutron)等。了解如何正确卸载这些组件对于系统维护和更新至关重要。以下是对"openstack组件卸载...

    openstack-java-cinder-client-3.1.3-2.el7.noarch.rpm

    官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装

    OpenStack Victoria版安装部署实例教程

    OpenStack的核心组件包括Keystone(认证服务)、Glance(镜像服务)、Placement(资源调度)、Nova(计算服务)、Neutron(网络服务)、Horizon(dashboard界面)和Cinder(块存储服务)。每个组件的配置都涉及...

Global site tag (gtag.js) - Google Analytics