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

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

ac03d39133c6698696ccbd220ebc4c79.png

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

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

8d76a0f4569bd5fca37345a658a9f70b.png

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

2a6c4b1cf1d9b44ac35c29af982a51fa.png

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

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

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

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

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

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

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

81337d6c510d0e8cacfbcea07a8a27cc.png

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

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

e31fef8d6af1bec5d19c73e541b7ca51.png

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

5010cf36f66879bb9ddb5b698e74ae83.png

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

62d4f109933d713996d0e505ad027ace.png

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

55f22cfd75d3b2fe51e00e1c7deca671.png

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

16d1dfb2a2c7e7c0b68f3cdad614e35f.png

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

bc0db1c037c93196a8fa4279446c8a54.png

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

80f8f9416cf8df4ff22eb9659159fd7a.png

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

d05d847dd39c0846d3e24875ef008ce5.png

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

40402aba33c1c1e7adbb4b6f55e6bf62.png

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

c46744b113ae181de150c2fd97fbb82e.png

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

d787b9bcd04fdb7975e2b064669469a0.png

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

a15870a4497467eac65a3292d34f81ed.png

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

078e67fa0763fdcfcc863c66871853db.png

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

1e2aa83840cc1b5757b1ca17c5c0c1fe.png

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

67a9acd1f61a86d77dae3d42a00cc008.png

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

a7a0041626c2072660039bc40b309373.png

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

a09e4c6986e00e48c4a8dc5c695d2a63.png

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

8f080cfede4a30fdd27ac77a7fba3e1d.png

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

de339b047dc56323cd8aad06067564cd.png

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

ae16aef715d2d600f83b7d575319c686.png

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

f7c4df1b085193b9278414b882ed5850.png

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

c0609150aeb3c75aa0bc30e48e81e0e3.png

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

59c330011515f5cd599e0e5b162708f9.png

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

d570deba51b0360a6d2b5b17dade1645.png

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

0c3c4a641a582506bb77899ed0ae0f29.png

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

03e9a4608115d0ec601198031875b18a.png

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值