存储那些事儿(三):OpenStack的块存储Cinder与商业存储的融合

时间: 2023-07-11 admin IT培训

存储那些事儿(三):OpenStack的块存储Cinder与商业存储的融合

存储那些事儿(三):OpenStack的块存储Cinder与商业存储的融合

      OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算‎软件,以Apache许可证授权,并且是一个自由软件和开放源代码项目。OpenStack是IaaS(基础设施即服务)‎软件,让任何人都可以自行建立和提供云端运算服务。此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。

      Cinder提供了OpenStack的Block Service(块服务)。类似于 Amazon 的 EBS 块存储服务,OpenStack 中的实例是不能持久化的,需要挂载 volume,在 volume 中实现持久化。Cinder 就是提供对 volume 实际需要的存储块单元的实现管理功能。这个project是从Nova里分出来的。它的前身是Nova-Volume。虽然Nova变得越来越复杂,而块服务又那么重要,在Folsom版本中,Cinder就从Nova中分离出来了。因为可以和商业存储相结合,所以存储厂商都很积极。

     下图是OpenStack的内部架构:




下图是Cinder的架构:

   要说的一点是其实它的Component之间也是通过AMPQ进行通信的。如果想了解更多可以移步我的专栏:RabbitMQ从入门到精通

    这个设计还是比较简单的(当然Cinder现在的功能还是比较简单的,毕竟项目开始不久):

cinder-api:负责接受和处理 Rest 请求,并将请求放入 RabbitMQ队列。

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

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

  • Coraid (AoE)
  • EMC VMAX/VNX (iSCSI)
  • GlusterFS (GlusterFS)
  • HP 3PAR (iSCSI/FC)
  • HP LeftHand (iSCSI)
  • Huawei T-series/Dorado (iSCSI)
  • IBM Storwize family/SVC (iSCSI/FC)
  • IBM XIV (iSCSI), LVM (iSCSI)
  • NetApp (iSCSI/NFS)
  • Nexenta (iSCSI)
  • NFS (NFS)
  • RBD (Ceph)
  • Scality SOFS (scality)
  • Sheepdog (sheepdog)
  • Solaris (iSCSI)
  • SolidFire (iSCSI)
  • Windows Server 2012 (iSCSI)
  • Zadara (iSCSI)

在Havana Release中新增加的Driver如下:

  • IBM GPFS
  • IBM zVM
  • EMC Isilon (iSCSI)
  • Local disk partitions
  • Hitachi HUS (DF850) (iSCSI)
  • Dell Equalogic
  • Violin Memory v6000 (iSCSI)

接下来看一下在OpenStack中的数据控制流图:

     唯一一点要说明的是iSCSI只是一个实例,支持的Protocol还有FC, NFC等。

     下面我们通过SMIS来看一下EMC的设备是如何整合到OpenStack中去的:


    如果深入了解一下SMIS是如何实现存储的管理的,请移步我之前的一篇文章: 存储那些事儿(一):异构虚拟化一种实现SMIS

    如果疑问请留言讨论。


尊重原创,转载请注明出处 anzhsoft:

参考资料:

1. .pdf

2.

3. /