分布式存储,在无限横向扩容时 必然遇到元数据存储集中存储的瓶颈 如何解决?

分布式存储,在无限横向扩容时 必然遇到元数据存储集中存储的瓶颈 如何解决?显示全部

分布式存储,在无限横向扩容时 必然遇到元数据存储集中存储的瓶颈 如何解决?

收起
参与42

查看其它 4 个回答Eric雪飞的回答

Eric雪飞Eric雪飞存储专委 副主任上海市计算机学会

首先必须表明我的观点,没有无限扩容,不存在的!

且不说在理论上有没有合理的“无限扩展”架构,在实际产品实现和生产部署中基本上是不可能实现“无限”的,连“线性”扩展都很难保证。有时看到互联行业动不动就宣传自己有几千台规模的部署,但往往是多个集群聚合在一起统计的规模,单一集群规模的大小通常不会太大,一旦过大,理智的架构师通常都会建议分成多个ZONE。不能无视管理上的困难和风险的增加。鸡蛋还是不要放一个篮子里,无论卖篮子的怎么说有多么可靠。

离开剂量谈毒性都是耍流氓,离开规模谈分布式也是同样。从实际项目部署来看,最常见的还是在几十台规模以内的,这个规模大小下保证容量性能“线性”扩展是最容易的。当然你可以分布式部署多个集群,统一管理,合并在一起对外宣称最大规模,也没啥问题。

回到问题的分析,具体来看,分布式存储基本上有两种架构分类,对称式和非对称式,取决于元数据节点和数据节点是否分离部署,两种架构需要分别分析。

问题中提到的“元数据集中存储”明显是非对称式架构,这种架构把元数据独立出来,部署于高性能的硬件节点,好处在于便于针对性优化。应对方案嘛一是升级硬件配置,比如多加点SSD,升级CPU内存。二是做元数据集群,这样元数据也能扩展,但这种方式技术含量更高,系统实现也更复杂。

另一种情况是采用对称式架构,元数据的功能模块打散,分布到每一台节点,每一台硬件节点既是数据节点也是元数据节点,当系统扩展时,两者同步扩展,这样猛一看起来就没有瓶颈了。
但瓶颈其实是转移了,转移到网络上。由于节点的功能都一样,互相之间必然存在大量的网络通信,既有元数据的少量数据包,也有数据的大量数据流,网络负载很大且混杂。而且存储内部的通信不仅是对网络带宽要求高,更重要的是对网络延迟的容忍度非常低,所以瓶颈很快就会出现在网络上。(规模越大,对网络的要求成倍增加,并不是线性的)这也是为何很多老牌的分布式存储商业产品要求部署Infiniband网络原因,不仅看上的是40GB的高带宽,更重要的是低延迟。即使是这样,老牌分布式存储iSilon的最大规模也限制为144台,并且实际部署中一般不会到达这个上限。

所以如果是打算建设一个分布式存储系统,最好还是对目标产品的最大扩展规模预先充分了解,理论值是多少,实际生产部署,最优实践是多少?还要同时考虑业务系统是否需要适配(比如同样做一些分布式的改造)。

硬件生产 · 2017-11-21
浏览3326

回答者

Eric雪飞
存储专委 副主任上海市计算机学会
擅长领域: 存储灾备分布式架构

Eric雪飞 最近回答过的问题

回答状态

  • 发布时间:2017-11-21
  • 关注会员:6 人
  • 回答浏览:3326
  • X社区推广