痛并快乐着:浅谈大数据时代的分布式存储架构

从全球知名咨询公司麦肯锡宣称“大数据”时代的到来,时至今日,数据量已经几何倍数的翻增,麦肯锡称:“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。

大数据的第一个特征是数据量大,大数据的起始计量单位至少是P、E甚至ZB级别;第二个特征是数据类型繁多,包括网络日志、音频、视频、图片、地理位置信息等等。同时,海量多类型的数据对数据的处理能力提出了更高的要求,不仅要提供海量的数据存储空间,又要满足多种类文件的高效存储。

目前,解决这种需求最常用的方式就是采用分布式存储系统。

分布式存储存放的数据,包含数据和元数据信息,那么什么是数据和元数据呢?

ü用户需要存放到存储设备的文件,就是数据

数据有很多种类,日志、音频、视频、图片等,不同的文件大小是不同的。

ü存储设备为了存放用户文件而生成的数据记录,就是元数据

如果用户数据比喻成一本书,元数据就是这本书的目录。

分布式存储依照存放数据和元数据的方式不同,分为全对称和非对称模式。

全对称:所有的节点都会处理元数据,各个节点间实时同步元数据信息;

非对称:我有元数据节点,元数据节点单独处理元数据信息,所有信息必须通过元数据节点进行管理。

思考一个问题:当不同类型、不同大小的海量数据需要实时存储时,这两种架构会有怎样的情况发生?

û全对称:海量文件带来的海量元数据在各个节点间同步,带来了性能和带宽等瓶颈问题;

û非对称:元数据采用独立的节点,处理能力有限,不能很好的满足海量小文件的性能问题。

如何解决这种问题呢?我做了一个大胆的设想,提出一种新的逆向思维解决方式,我把它叫做集群元数据后处理架构

通常情况下,海量数据的写入和读取是不需要高度同步的,不妨分开来考虑,首先,要解决混合数据流写入的性能问题,海量小文件的数据处理瓶颈主要集中在元数据上,能否跳过这个瓶颈写入数据呢?

首先,每个存储节点管理一个虚拟磁盘MD,虚拟磁盘MD由多个存储节点的磁盘块按照一定的规律组合而成,几个存储节点形成一个冗余群组,群组内部统一元数据信息,单个节点采用SSD加速缓存,并在自身的存储空间中,保留一份元数据备份。

其次,客户端进行数据写入时,不再经过集群元数据节点,而是直接采用轮询方式写入存储节点,存储节点负责客户端元数据的建立、存储和同步。

ü本地用户文件读取:客户端自身存放的文件,可以通过直接访问数据节点的方式,获取数据,避免元数据节点瓶颈和减轻元数据节点压力;

其他用户文件读取:通过元数据集群,获取目录信息后访问数据节点。

图示可以看到,元数据通过这种方式,进行统一模式的集中处理,并可以根据应用需求进行数据索引,提升访问效率。

总结:

我把这种模式称为:分布式存储 – 集群元数据分层处理架构

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171227G05Z8Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券