2014 年亚特兰大 OpenStack 峰会速记:存储方面的进展

  • 杨赛

2014 年 5 月 15 日

话题:DevOps

2014 年 5 月的 OpenStack 峰会已经在亚特兰大召开,目前已经进入第四天。InfoQ 中文站在大会现场进行记录报道,下面是本次大会有关存储方向的内容摘要。

概述

OpenStack 存储方向的项目主要有 Cinder(块存储)、Swift(对象存储)以及 Glance(镜像),根据Cinder 项目的代码,其 Volume driver 已经覆盖了如下设备种类:

  • EMC VNX、VMAX 的 iSCSI、FC
  • Hitachi 的 iSCSI
  • 华为 OceanStor 的 Dorado、HVS 和 T 系列
  • IBM 的 GPFS、NAS、XIV 和 DS8K
  • NetApp 的 iSCSI 和 NFS
  • Nexenta 的 iSCSI 和 NFS
  • SAN
  • VMware 的 vCenter/ESX VMDK
  • Windows Server 2012
  • Coraid
  • Dell EqualLogic Storage
  • GlusterFS
  • LVM
  • NFS
  • Ceph 的 RADOS Block Device
  • Scality SOFS
  • SheepDog
  • SolidFire
  • Zadara Virtual Private Storage Array

座谈会

会议第二天下午有一场座谈会专门讨论 OpenStack 中的存储现状:Storage Considerations for OpenStack。座谈会参与者包括来自 Rackspace、EMC、Hitachi、SolidFire、Inktank、NetApp 的工程师,他们的讨论主要是从 Vendor 角度发表自己对存储的看法。摘录部分讨论的观点如下:

  • 存储技术的用户可以分为实施 + 消费、纯消费这两种。大部分用户主要还是纯消费,而不是自己去实施。
  • 到目前为止,通用存储(Commodity Hardware)的优势主要在于便宜,但如果用户想要 HA,想要 QoS,想要更好的性能、更快的快照等高级功能,那么基于通用存储做方案是非常困难且耗时的,使用商业存储方案能够更快实现。
  • 软件定义存储,主要目的是让存储变得更易管理,而不是为了去 Vendor 化。
  • 在 Cinder 这样一个统一的 API 规范下,不会存在所谓的 Vendor Lock-in 的问题。
  • 技术层面的一大挑战在于 Cinder 和 Neutron 的交互。虽然 Cinder 已经很成熟,但整个存储还是需要走网络,因此 Neutron 的不成熟直接影响到存储方案的稳定性和性能。
  • 技术层面的另一大挑战在于,当前有三分之二的企业存储都是非结构化的,只能通过各种不同的文件接口来处理。OpenStack 有一个新项目Manila希望能够将不同的文件接口接到统一的 API 上,跨越不同文件系统形成共享池。换句话说,Manila 项目希望在文件系统层面实现 Cinder 在块存储层面所做的事情。
  • 技术层面的又一大挑战在于内存持久化。OpenStack 需要加入内存持久化的接口。目前有一个组在做的 NVMe 插件就是在往这个方向做,如果能更快的接入到 Nova、Cinder 等各个实例当中,可能会比 AWS 更早实现这一功能。
  • 应用变得越来越复杂,下面可能有 HDFS、对象存储、关系数据库、块存储和文件,但是用户不想自己面对 4、5 个 API,他们只希望考虑工作流本身,考虑资源供给、备份等业务逻辑层面的工作。对他们而言,存储专家 / 厂商的价值在于把基础架构变得更加简单,把 API 做得更加简化。
  • OpenStack 是一个主要由厂商驱动的项目,在 Cinder 这样的项目中尤其如此。正因为大量存储厂商的介入,Cinder 和 Nova 才能发展的如此迅速,越来越多的用户会去部署它们;而部署的数量越多,API 也倾向于更加稳定,不会再有大的变更,标准会固化下来。
  • 的确,有些存储厂商进来后只是做了一个 Cinder 卷驱动,但也有些厂商进来之后做了大量的贡献,这些都是在 Gerrit 上可以看得到的。但无论怎样,即使只是做驱动也是有价值的,因为这也是让 OpenStack 能够为更多用户服务的过程。

Ceph

在 Inktank 被红帽收购的消息公布之后,很多人对 Ceph 的情况很关注。Inktank 的 Ross Turk 在 OpenStack 峰会上做了一场名为Ceph Update 的 Demo,介绍 Ceph 的下一步计划。

Ceph 1.2(即 Ceph 的下一个版本)计划在 5 月底推出。下层的主要变更在于:

  1. 支持 RHEL 7
  2. 加入 Erasure Coding 特性
  3. 加入 Cache Tiering 特性。使用该特性可以在一个 pool 之上定义另一个 tiering pool,如在基于机械硬盘的 backing pool 上建立一层纯 SSD 的 cache pool。Cache 层可以被定义为可读写或只读模式

上层的主要变更是图形管理界面 Calamari 的开放,该功能原本仅在 Inktank 企业版中提供。红帽完成收购之后计划将 Calamari 的代码开源出来。

再之后的一个大版本,Ceph 2.0 计划在 2014 年 9 月推出,该版本计划在上层引入两个大的特性:

  1. 在 Calamari 中添加 call-home 的功能。Call-home 的作用是在一个部署的集群出现问题的时候可以让服务提供商直接获取通知
  2. 加入对 Hyper-V 的支持

下层的主要计划为:

  1. 完善 CephFS 这一块的工作,让 Ceph 的 POSIX 用法真正可用
  2. 支持 HDFS
  3. 支持 RBD 块存储设备的镜像功能

到 2015 年,Ceph 计划进一步支持 VMware 和 iSCSI,并提供 QoS、RDMA 和 LDAP 集成的功能。

其他相关议程

本次峰会上其他存储相关议程包括:

DevOps