linux海量小文件 存储,BIGO海量小文件存储实践

作为欢聚集团旗下品牌,BIGO当前的业务涵盖直播,短视频和社交,目前已经服务于全球150个国家4亿用户。BIGO的产品业务特性决定了其对海量小文件的存储需求,如内容审核截图,用户社交沟通过程中发送的小文件,用户的头像等。目前BIGO每天会新增约几十亿个小文件,占用约30TB存储空间。对于海量小文件存储,如何在保证高性能的同时降低存储的成本,成为BIGO存储团队必须解决的问题。

01海量小文件存储的挑战

为了解决海量小文件的存储问题,必须采用分布式存储,目前分布式存储主要采用两种架构:集中式元数据管理架构和去中心化架构。

(1)集中式元数据架构:

典型的集中式元数据架构的分布式存储有GFS,HDFS,MooseFs等。其采用的典型架构如下图1所示:

bVbJ2UU

此架构主要包含3个部分:

1)客户端:主要用于提供访问分布式存储系统的接口;

2) 元数据服务器:主要用于存放分布式存储系统的命名空间和文件的一些元数据信息。

3)存储服务器: 主要负责存储文件的具体数据。

使用集中式的元数据管理的方式,其主要优点如下:

1) 元数据的操作性能高: 存储系统的命令空间和文件的元数据都存放在元数据服务器上,元数据操作如list directory和create file等元数据的操作性能会比较高;

2) 扩容时不需要数据迁移:元数据服务器上存放有所有文件的位置信息,在集群需要扩容增加新的节点时,这些位置信息不需要变动,因此集群在扩容时不需要进行数据迁移。

其主要缺点如下:

1) 元数据节点是瓶颈:客户端在访问文件数据之前通常都需要到元数据节点上查询文件的位置信息,因此元数据节点不可避免地成为了整个系统的性能瓶颈。

2) 文件的数量受限:为了提高性能,元数据节点中的数据一般都会保存到内存中,而元数据节点的内存不是无限增长的。

基于以上缺点,集中式的元数据管理方式非常不适合于海量小文件的存储。

(2)    去中心化架构:

为了解决集中式元数据架构的问题,去中心化架构的分布式存储产生,典型的去中心化分布式存储有GlusterFs,Ceph等。其采用的典型的架构如下图2所示:

bVbJ2UZ

此架构主要包含3个部分:

1) 客户端: 主要用于提供访问分布式存储系统的接口。

2) 存储服务器:主要负责存储文件的具体数据和元数据。

去中心化架构没有单独的元数据节点去保存文件的命名空间和元数据,元数据依然存储在存储节点上,文件的寻址一般采用DHT(一致性HASH)的方式计算。此架构一般会将多个存储节点进行逻辑分组,组内复制保证数据可靠性,因此会有可选的中心端服务器保存整个集群的存储节点以及分组信息。例如Ceph使用Ceph monitor保存整个集群的成员和状态信息(不保存文件信息),而GlusterFs选择将这些信息存放在所有的存储节点上。

使用去中心化的的方式,其主要优点如下:

1)无单点的性能瓶颈: 没有单独的元数据节点,客户端可以直接通过Hash的方式寻址文件&#x

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值