HDFS对象存储服务:Ozone的元数据管理

Ozone是HDFS内的对象存储服务,模仿AWS S3,但独立于NameNode-DataNode体系。Ozone使用Container作为存储单元,由SCM管理,KSM负责Volume、Bucket和Key的元数据。元数据存储在多个LevelDB实例中,以减轻内存压力。未来Ozone可能采用更高效的K-V存储框架,并支持更多服务。
摘要由CSDN通过智能技术生成

前言

HDFS作为一套成熟的分布式存储系统,它能够存储TB甚至,PB规模级别的数据。依托于如此强大的存储能力,目前越来越多的公司、企业已经开始将越来越多的数据往HDFS上迁移。但是当数据量达到一定规模,HDFS不见得能承受的了。可能有人有疑问了,刚刚不是说HDFS能支撑PB规模级别的数据吗,这不是自相矛盾的说法了?其实笔者在这里想说的是元数据管理会受到瓶颈,HDFS面对如此巨大的元数据信息,凭借单单一个NameNode,是肯定撑不住。目前NameNode对于存储在HDFS内的所有文件、目录信息都存在于它的内存中。很显然,这是一个瓶颈点,当里面的文件数量越来越多的时候,NameNode所在节点的内存迟早会被撑爆的。笔者曾经在工作中发现这样一组有趣的数据:当集群内大约有1.5亿个Block块时的时候,NameNode使用的内存达到了64GB,启动的时间竟然达到10分钟以上(加载fsimage+apply editlog)。所以在这种情况下,NameNode是很容易被触发GC操作的。所以HDFS的小文件问题是很多人比较头疼的问题。往往我们再使用HDFS作数据存储时,不会特意关注其中的细节,有的时候程序写了一堆小文件进去,我们都不知道。久而久之,NameNode会维护一堆这样无效的文件信息在内存里。当然笔者本文不是讨论什么HDFS小文件问题解决方案的,而是打算介绍HDFS目前在做的一个对象存储服务Ozone的元数据管理机制。可以这么说,Ozone的原型设计在一定程度上吸取了NameNode元数据管理上的一些教训,而且它就是用来方便用户存储各式各样的小文件数据的。因为笔者最近一段时间在帮社区做Ozone方面的工作,所以这两天系统地梳理了一下,相信下面的阐述会对大家有所收获。


Ozone的概念

这里还是得
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值