弹性文件服务解密 -- 数据读写设计,数据条带化后并发读写性能最大化

举报
小懒猫和大黄狗 发表于 2019/06/24 10:16:14 2019/06/24
【摘要】 SFS具备很好的并发性,每个物理节点都可以同时接入很多的客户端;这些客户端可以并发的进行文件访问操作。 SFS适合应用于高带宽场景,SFS将一个文件切分为分条,每个分条交给不同的节点,不同的硬盘来存储,并通过高效的布局,使得即使同一个文件的不同分条也分布在不同的硬盘上,可以充分的发挥集群中多节点多硬盘的能力,大大增强文件访问的性能。

SFS 底层采用分布式集群存储系统,系统内的每个节点之间都是平等的,每个文件读写操作都可能同集群中的多个节点进行交互,为了方便表述,我们可以将集群中任意一个节点涉及到业务IO的模块表述为以下的模型。

I/O模型

image.png

如上图所示,软件层面,分为两层,上层为文件系统服务,下层为存储资源池;上层文件系统服务层负责NAS协议的解析,文件操作语义的解析,文件系统元数据管理;下层存储资源池层负责节点上磁盘资源的分配管理和数据的持久化;

当一个客户端连接到一个物理节点上进行一个写文件操作。首先这个操作被文件系统服务层处理,文件系统服务层首先从文件路径+文件名查找到文件的元数据信息,从而得到文件的布局信息和保护级别。

SFS对于文件的数据保护是采用跨节点跨硬盘保护的,一个文件首先被切分为分条(Stripe),每个Stripe是由N个条带+M个冗余校验条带构成;一个分条中的不同条带是放置在不同节点不同硬盘上的。参考下图,文件系统服务层获得了文件的布局信息和保护级别后,就将收到的数据按照分条的粒度,计算出冗余数据条带来,然后并发通过后端网络写入不同节点的不同硬盘中,每个硬盘上只写入一个条带的数据。

写数据流程

image.png

从上面的写流程中,我们可以看到:

1:SFS具备很好的并发性,每个物理节点都可以同时接入很多的客户端;这些客户端可以并发的进行文件访问操作;

2:高带宽特征,SFS将一个文件切分为分条,每个分条交给不同的节点,不同的硬盘来存储,并通过高效的布局,使得即使同一个文件的不同分条也分布在不同的硬盘上,可以充分的发挥集群中多节点多硬盘的能力,大大增强文件访问的性能。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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

举报
请填写举报理由
0/200