对象存储技术架构剖析之一:Dell EMC ECS

在泰国工作那一年,我对象可好了,当然,象对我也很好,O(∩_∩)O 哈哈 ~

对象存储技术架构剖析之一:Dell EMC ECS

今天呢,我是来兑现我原来的承诺,和大家来解剖一下各大门派的对象(存储),看看哪个才是你(非结构化数据)的梦中情人,嘿嘿。

今天,我们来讲讲历史悠久的 EMC 家族的对象存储 ECS,这里 ECS 可不是二传手的意思,而是指 Elastic Cloud Storage。

对象存储技术架构剖析之一:Dell EMC ECS

为什么说 ECS 历史悠久呢,因为 EMC 在 2001 年就推出了内容存储 Centera,后来在 2008 年推出 Atmos,到 2014 年推出的 ECS 已经是第三代对象存储了。由于 2014 年以后,S3 已经成为对象存储的事实标准,因此,EMC 从 ECS 才支持 S3 协议的。但由于现网中有众多的 Centera 和 Atmos 的用户,因此,ECS 被迫支持原来的很多 API,可以想象,ECS 的历史包袱还是很重的。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 的产品架构层次还是比较清晰的,从上到下依次是:

ECS 门户和供应服务 - 基于 Web 的 GUI,允许自我服务,自动化,报告和管理 ECS 节点。它还处理许可,身份验证,多租户和配置服务。

数据服务 - 支持对象,HDFS 和 NFSv3 协议的服务,工具和 API。

存储引擎 - 负责数据存储和检索,管理事务,数据保护和复制。

Fabric- 提供群集,运行状况,软件和配置管理,升级功能和警报。

基础架构 - ECS 的基本操作系统是 SUSE Linux Enterprise Server 12 或更高版本,用于交钥匙设备或用于商用硬件的合格 Linux 风格操作系统。

硬件 - 交钥匙设备或合格的商品硬件。

对象存储技术架构剖析之一:Dell EMC ECS

在数据服务上,前面我们讲过,ECS 除了支持 S3 外,还向下兼容 CAS 和 Atmos,而且,也支持 Swift。不过,如果是新用户,肯定只用 S3,不会选择那些过气的协议了。还有,ECS 也支持 HDFS 和 NFS 协议,这个我们后面再讲。

不过,ECS 在对 HDFS 的支持这块,没有和其他对象存储一样,采用社区的 S3A 协议,而是自己做了一个专用的 ECS HDFS Client。

对象存储技术架构剖析之一:Dell EMC ECS

这样的好处就是自己来实现 HDFS 语义对自己对象的访问,一般都会比 S3A 有更好的性能和更多的功能。业界对象存储采用专用 HDFS Client 来连接对象存储除了 EMC 外,还有华为和 XSKY,也是这个思路。

对象存储技术架构剖析之一:Dell EMC ECS

由于对象存储大部分都具有多站点的能力,因此,Hadoop 用户一般采用 ECS 对象存储来做灾备,也可以实现多个数据中心同时分析。

对象存储技术架构剖析之一:Dell EMC ECS

采用存算分离,好处很多,特别是 EC(纠删码)在对象存储里面非常成熟,但是在 Hadoop 里面算是比较新的特性,很少看到用户在生产系统里部署,主要是硬盘故障的时候重构时间太长,运维比较复制。生产系统用三副本,造成几乎所有的 Hadoop 项目都面临空间不足的问题,但如果一直扩容容量,则有 HCI 一样的问题,计算也要跟着做无谓的扩容,造成资源的大量浪费。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 内置了对 NFS 协议的支持,并且支持 8 个站点的统一命名空间,支持全局锁,支持 NFS|HDFS|S3 之间的互访。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 的 Chunk 是固定的 128M,管理的粒度有点大。我们知道 Ceph 的缺省 Chunk 大小是 4M。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 的数据管理采用 B+ 树,支持用户自定义属性反查,但是限制比较多,每个桶只能有 5 个索引段,而且创建完成后就不能修改了。(原来的版本手册写了这些限制,但最近 ECS 今年又发布了新版本,不知道是否还是有这些限制,大家测试一下就知道了)。

对象存储技术架构剖析之一:Dell EMC ECS

由于 ECS 不支持 SSD 做写缓存,和其他 SDS 很不一样,它用内存做写缓存。但由于内存没有掉电保护,因此,ECS 需要和 Oracle 数据库一样,在回应写完成前,必须完成日志的落盘。这种机制造成了数据双写,性能比较差。因此,EMC 也打算在今年的新版本也要支持 SSD 做写缓存了。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 的索引数据采用 3 副本的方式来保证其安全性。

对象存储技术架构剖析之一:Dell EMC ECS

但数据保存全部采用 EC(不支持副本)。写之前数据会压缩,如果对象大约 128MB(Chunk 的大小),就直接 EC。如果不是,就先写三副本,然后异步做 EC。这样做的好处就是提高小文件的性能。

对象存储技术架构剖析之一:Dell EMC ECS

而读嘛,接受读请求的节点先找索引所在的节点,然后再找数据所在节点读取数据,返回给 host。因此,一般情况,一个读流程需要经过三个节点处理,IO 访问路径长,请求访问一个对象需要做多次重定向磁盘访问,虽然可以借助于缓存元数据改善,但大规模随机访问情况下,缓存效果可能一般。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 还支持跨站点做 EC,这种情况虽然空间利用率上升了,但对站点的带宽时延都有比较高的要求,特别是某个站点故障的情况下。因此,国内我了解很少这样的部署方式。

对象存储技术架构剖析之一:Dell EMC ECS

后来,EMC 也认识到这样的问题,在 3.1 版本推出了第三站点容灾 only 特性,解决用户想花比较少的钱实现三站点容灾的问题。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 的数据复制虽然是异步的,但是元数据复制是同步的。这样,从用户角度看,数据是强一致的。但在这种方式如果主站点故障,还是会丢数据的。

对象存储技术架构剖析之一:Dell EMC ECS

Box-Carting 是 ECS 的小文件归并功能,ECS 在内存里把小文件归并为 2MB 大小再落盘,提高写性能。

对象存储技术架构剖析之一:Dell EMC ECS

至于本地数据保护,ECS 只支持 12+4 和 10+2 两种保护方式,灵活性比较差。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 也支持和 IBM 一样的紧凑型 EC,减少初始节点数。不过,ECS 要求 4 节点起,而一般分布式存储都是三节点起。

对象存储技术架构剖析之一:Dell EMC ECS

由于 ECS 支持跨站点 EC,因此,站点越多,利用率反而越高,这和一般传统存储数据复制的弊端正好是反过来的。不过,前面也讲过,中国好像这样部署的企业客户不多(公有云比较多)。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 的数据可用性只宣传 3 个 9,太实在了,实在是泥石界的一股清流啊。其他的厂商恨不得都宣传 6 个 9 以上。不过,难得 EMC 不怕友商拿来控标的吗?O(∩_∩)O 哈哈 ~

对象存储技术架构剖析之一:Dell EMC ECS

ECS 的组件都是封装成容器,采用容器的方式部署。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 虽然支持纯 SDS 的方式,但销售更喜欢推广一体机,这样销售额比较大啦。ECS 没有内置负载均衡功能,而且 5 节点起步,价格有点小贵。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 在扩容这块特性不是太丰富,重平衡的时间可能比较长。

对象存储技术架构剖析之一:Dell EMC ECS

我们看到,ECS 今年有两个小版本,在 3.3 支持 SSD 做 Cache 等重要特性,3.4 支持新硬件。我前面的分析都是基于去年的版本,新版本我还没有拿到太多资料。

对象存储技术架构剖析之一:Dell EMC ECS

从长远来说,ECS 未来会支持全闪,支持混合云等特性。

对象存储技术架构剖析之一:Dell EMC ECS

ECS 都是 Gartner 和 IDC 相关象限的领导者。

对象存储技术架构剖析之一:Dell EMC ECS

Gartner 对 ECS 的 UI 和容器架构比较欣赏,但还是指出一些问题。

对象存储技术架构剖析之一:Dell EMC ECS

在产品关键能力得分上,只有管理能力做到了业界最佳。

整体来说,我感觉 ECS 功能还是比较丰富的,比如在跨站点 EC 和数据强一致这块做了不少工作,但是,由于国外厂商一般把对象存储定位在保存温冷数据上,其对性能不够重视。比如 ECS 刚刚才支持 SSD 做 Cache,小文件归并策略太简单了,不支持副本做数据保护,不支持整池扩容和重构 QoS 等。

好了,我今天就和大家分享一下我的 ECS 学习笔记。再次声明一下,所有的资料都是我在 6 月份我在美国期间,从网上收集相关素材学习归纳出来的,所有的观点仅代表我个人观点,其中肯定有很多错误的地方,欢迎大家指正。

如果大家这样的分享对大家有用,我打算下一篇写 IBM COS。以后我每写完一篇,就发起一个调查,看看大家是否找到了自己理想的对象,_

如果大家觉得 ECS 不够理想,具体哪些方面满足不了你的要求呢?欢迎在留言里留言。可惜微信的投票只能做选择题,不能做填空题,哎。

好了,今天就简单解剖到这里。如果大家还有需要当面和我探讨的,我将在 12 月 4 日的中国存储峰会等候大家。4 日下午有一个容器存储的分论坛,我有一个关于容器存储接口历史演进的演讲,欢迎大家来捧场。