【Linux】面向海量数据的分布式用户态文件系统研究与设计
云计算、物联网、互联网技术的迅猛发展 , 使社会进入了大数据时代 。 随着数据量的指数增长 , 面对海量数据的高效存储与访问成为目前人们面临的主要问题 。 使用分布式存储作为底层数据存储系统 , 基于用户空间文件系统fuse , 结合MongoDB数据库管理元数据 , 研究设计出一种面向分布式存储的用户态文件系统 。 相对于传统分布式对象存储系统的数据访问 , 设计的文件系统具有很高的灵活性和可扩展性 , 同时对于用户有着可操作性强、易于管理等优点 , 使其更适用于现代海量数据的访问与管理 。 传统意义上 , 文件系统是操作系统内核的一部分 。 随着分布式存储系统的出现和大数据分析技术需求的增大 , 面对海量的数据文件 , 用户实现数据访问的步骤也越来越繁琐 , 开发面向用户场景的用户态文件系统势在必行 。
本文底层使用分布式对象存储系统 , 结合fuse技术和分布式数据库MongoDB , 设计基于分布式存储的用户态文件系统bfs-fuse , 以文件目录形式对分布式对象存储系统中的对象进行管理和访问 , 从而为用户提供高效便捷的数据访问管理策略 。
01
底层数据存储架构
底层数据使用分布式存储系统 。 分布式存储将数据对象分散到多个存储服务器上 , 并将这些分散的数据资源通过统筹管理合并为一个虚拟统一的存储系统 。
典型的分布式存储架构 , 如图1所示 。 它通常由3个部分组成——管理节点(Manager Node)、数据节点(Data Node)和应用客户端(Client) 。 其中 , 管理节点负责管理集群元数据、协调集群服务、响应客户端发来的数据请求等 。 在整个集群架构中 , 管理节点是最核心的部分 , 通常采用主从、多活等方式增加整个架构的稳定性和安全性 。 数据节点主要负责存储用户数据 , 保证用户数据的可用性和完整性;应用客户端负责发送数据的读写请求 , 缓存元数据和用户数据 。
本文插图
图1 分布式存储架构
02
数据分布与存储策略
2.1 基于一致性哈希的数据分布
20世纪末 , 麻省理工学院Karger等人提出一致性哈希算法 , 解决了分布式结构中动态增加和删除带来的雪崩问题以及数据分布不均衡问题 , 在分布式系统中得到了广泛应用 。 本文使用一致性哈希算法作为分布式存储数据节点的数据分布算法 。 集群中同一个存储池中的所有数据对象 , 经过一致性哈希运算后被分散存储到该存储池中的所有存储设备上 。 为增强数据分布的均衡性 , 在数据和存储节点之间再引入一层虚拟节点(Cube)层 。 虚拟节点可以理解为存储节点在哈希空间中的复制品 , 其总数远大于存储节点的数量 , 且按照不同存储节点在容量和性能上的差异以及负载均衡的要求进行分布 。 图2展示的是系统在查找对象号object_id为obj_1的对象的查找映射过程 。
本文插图
图2 数据分布查找映射2.2 多副本管理机制数据存储采用多副本方式来提高数据的高可用性 , 各副本将被尽量存储到不同的数据服务器 。 初始状态下 , 容器中所有对象默认以双副本存储 , 也可在创建每个容器时对容器的副本数进行单独配置 。 对于相对重要的文件 , 通常以三副本保存 。 系统中每个对象对应的文件扩展属性中保存了数据版本号和随机序列数 , 两者结合进行版本管理和一致性保证 。 在读取数据流程中 , 客户端首先从三个副本所在的数据服务器拉取版本号 , 选择版本号最新的副本作为正确数据向上层应用返回 , 并将版本号错误的副本信息报告给对应的数据服务器 , 以便在之后进行数据修复 。 在写入数据流程中 , 客户端将优先写主副本 , 然后由主副本所在数据服务器采用扇出写的方式向另外两台数据服务器写从副本 。 为了平衡性能与一致性 , 底层向上层应用保证最终一致性 , 即只有主副本落盘且确认另外两个从副本均已成功推送至对应数据服务器后向客户端返回数据写入成功 。 2.3 元数据管理机制元数据的管理是分布式文件系统的核心 , 也是分布式存储系统架构和保障的重中之重 。 为了提高文件元数据的一致性和可靠性 , 支持用户文件系统目录操作 , 本文使用MongoDB数据库对分布式存储系统存储的文件元数据进行集成管理 。 文件元数据最基本的作用在于数据对象的定位 , 客户端只有先访问存储元数据的管理节点 , 得到数据对象的inode号以及相关的访问权限 , 才能进行下一步的数据读写访问 。 元数据服务模块架构如图3所示 。
推荐阅读
- 「优麒麟」优麒麟20.04 LTS Beta发布 更新Linux 5.4版内核
- 极客@从极客走向消费者 Linux手机PinePhone“社区版”开始接受预订
- #cnBeta#重大失误?NASA全面向AWS云端迁移数据 却忽略了访问成本
- 「Linux中国」Windows 登录凭据,Zoom 客户端爆出安全漏洞,可向攻击者泄露
- solidot▲Linux 专利协议,华为签署互不侵犯
- solidot@Linux 专利协议,华为签署互不侵犯
- 「小小天看世界」俄罗斯MTS选择爱立信进行面向5G的大规模网络现代化升级
- 胖哥汽车频道■面向年轻市场,比亚迪宋Pro运动版谍照首次曝光
- 匀思电商提供海量货源,助力创业者瓜分直播电商蓝海
- [cnBetaTB]ProtonMail Bridge上线Linux平台:为邮件客户端提供安全解决方案