弹性文件服务解密 -- 元数据管理设计,动态子树方式

举报
小懒猫和大黄狗 发表于 2019/06/17 14:06:24 2019/06/17
【摘要】 频繁访问超大目录时,大目录会分裂成多个dir_frag,对应分裂成多个子树,并会负载到多个MDS服务器上提供业务,不会产生元数据访问瓶颈

弹性文件服务 SFS 支持超大目录,单目录可达百万数量级,大目录访问和普通目录访问无响应差别。

SFS的元数据管理架构采用业界先进的动态子树方式,如下图所示。元数据和数据一样都是使用节点间冗余方式,不同在于,元数据使用的是节点间mirror方式,每一份都是一个独立完整的拷贝。默认情况下,SFS的元数据比数据保护级别高一级。

SFS采用统一命名空间,整个文件系统的目录文件层次结构是一个树型结构,而系统集群是有很多平等的物理节点构成,所以,需要将整个文件系统这个大的树进行切割,使得每个物理节点上的MDS(元数据管理)模块分别管理不同的子树。

整系统目录树结构可以划分为若干子树,每个子树属于一个MDS,一个MDS可以包含若干个子树。

子树的分裂依赖文件夹的分裂,文件夹分裂的原则有2个:

原则1:按照热度进行分裂

每次元数据访问时,都会在内存中根据访问类型来增加文件夹的加权访问热度,并且热度会根据时间延长而进行衰减。当文件夹热度超过阈值时,文件夹进行分裂。

原则2:单文件夹下文件数过多时,文件夹分裂

满足任一条件时,文件夹会被分裂,记做dir_frag(目录分片)。 当如上原则不满足的时候,文件夹会合并,避免过多文件夹碎片。

当分裂的文件夹为子树的根时,文件夹分裂即为子树分裂。分裂后的子树仍存放在同一个MDS上,定期进行负载均衡检测。发现负载不均衡的情况,会在MDS之间进行子树的迁移。

根据上面原则,频繁访问超大目录时,大目录会分裂成多个dir_frag,对应分裂成多个子树,并会负载到多个MDS服务器上提供业务,不会产生元数据访问瓶颈。


                                                                命名空间子树划分示意图

                                                    image.png

spacer.gif


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。