ITPub博客

首页 > 数据治理 > 数据治理 > XSKY新一代分布式文件系统XGFS揭秘——元数据服务

XSKY新一代分布式文件系统XGFS揭秘——元数据服务

原创 数据治理 作者:XSKY融合存储 时间:2020-08-21 17:49:23 0 删除 编辑

XSKY新一代分布式文件系统XGFS揭秘——元数据服务

新一代 分布式文件存储系统XGFS,基于最新一代NVMe/SCM存储介质设计,利用高性能LSM存储引擎,结合XSKY独有专利技术的键值设计,构建出完全自主的元数据服务…本文系揭秘XGFS系列之首篇内容。


01存储介质的高速发展

上一代分布式文件系统元数据服务(MDS),多半基于HDD/SSD介质设计;这种设计不仅元数据访问性能不佳,而且为了实现在慢速介质上通过数量堆积来实现性能与空间扩展,做出了很多架构让步:如动态目录子树、动态迁移等,复杂性高的同时更带来不少稳定性问题。

近年来,硬件存储介质从HDD到SSD(MLC/SLC),并快速发展到NVMe/SCM时代,分布式系统尤其是分布式文件存储系统(Distributed File System),需要思考如何发挥出新兴介质的极致性能。




02如何利用新型LSM存储引擎

上一代分布式文件系统如GlusterFS大多使用Linux的单机文件系统ext4/xfs做元数据承载,ext4/xfs底层均采用B树和Page页实现元数据管理;

这种MDS设计大多使用上层写入合并等方法来缓解Page空洞和写入带宽低等问题,但仍然严重依赖上游Linux内核,难以面向新型业务需求做出元数据优化和定制,例如同时存储POSIX文件协议和S3对象协议的元数据,同时难以应对分布式文件系统的海量元数据场景,通常需要在存储引擎层做更多的定制,使得利用单机文件系统实现更好元数据系统;

随着LSM存储引擎的快速发展和普及,越来越多的数据库和应用系统选择基于LSM存储引擎来构建整体的分布式系统,如HBase、Cassandra等;



LSM存储引擎的写入模式天然适应于SSD/NVMe类存储介质,大大优化了写放大问题并提升存储介质寿命,还带来更高的写吞吐量和介质空间使用率;这些都给分布式文件系统的研发设计带来了启发。


03XGFS架构

XSKY基于对客户业务的深度理解,以及结合新一代存储介质和高性能LSM存储引擎的应用优势,推出了新一代分布式文件存储系统XGFS。



XGFS分布式文件存储系统由元数据服务集群和混合盘数据服务共同组成。其继承了XSKY多年在分布式混合盘上的深厚积累以及大规模存储运维能力,包括多级缓存技术、支持副本与EC纠删码、支持延展集群双活、硬盘和网络亚健康处理等,带来了高性价比的整体TCO和丰富的功能特性。

另,XSKY XEUS、一体机产品已在NAS市场推出了3年多,并部署了数百个实际生产集群;XGFS多活文件协议网关继承了这些文件产品成熟稳定的文件协议层模块,并在高性能IO直通、多浮动IP切换与回切、多网关节点分区和分子网等方面做了深入的优化,使得XGFS既在处理NFS、SMB等文件协议兼容性上游刃有余,又针对分布式文件的高带宽、高吞吐场景做了靶向优化。

XGFS元数据服务的架构具有如下优势:

01

基于最新一代NVMe/SCM存储介质设计,充分发挥出新兴介质近百万级IOPS和数GB带宽的性能优势,轻松满足对于文件系统的高频率元数据访问需求;

02

利用高性能LSM存储引擎,结合XSKY独有专利技术的键值设计,构建出完全自主的元数据服务;既兼容POSIX文件语义和S3对象语义,又支持用户/用户组、权限/ACL、扩展属性等;

03

元数据在本节点的日志保护和节点间的强一致性复制,使得元数据集群轻松应对慢盘、网络异常、节点重启/掉电等故障场景,提供RPO=0的元数据通路;

04

使用XSKY自研的高速网络传输模块,原生为RoCE/RDMA高性能网络量身打造,大大降低节点间元数据复制包的传输时延,使得整个元数据集群拥有更高的IOPS性能。


04技术原理



1、LSM存储引擎实现文件元数据管理;XSKY独有专利的KV键值对设计,实现完备的语义支持

利用LSM引擎的范围查询和前缀索引功能,结合独有专利的Key设计,大大提升List、Lookup等操作的执行效率,通过合并索引数据和文件本身的信息,去掉了List操作的二次索引开销,性能相比ext4文件系统提升约 40%

在Value设计中,既充分兼容POSIX语义中的size、读写权限、MAC time、变长的xattr扩展属性、Windows ACL权限等,又可扩展支持配额、快照等功能,以及S3对象语义中的etag、last modified等字段;真正实现了元数据按需定制和扩展。

2、充分利用LSM引擎能力,打造高效的文件元数据服务XMDS

单个元数据服务进程XMDS的设计中,首先需要将面向业务的文件操作,如Open、List、Rename等,组合成原子性的事务,并利用KV的事务特性提交给LSM引擎;这样就做到了既兼容POSIX通用协议,又可以在事务内无损耗的实现配额和快照等高级功能,更进一步实现了每一级目录的实时容量使用情况和趋势能力,提供了丰富的数据分析能力;


XMDS通过在内存中合并大量元数据的修改并一次性提交写日志,充分释放了NVMe/SCM的超高写入带宽和并发吞吐能力;同时日志append-only的写入模式,也大大延长了高速介质的写入寿命;LSM引擎的后台压缩能力,既有效减少了元数据空间管理碎片、空洞问题,提升了硬盘的整体空间利用率,还解决了文件元数据本身的GC问题,使得XMDS轻松应对百亿级别以上的海量文件场景;


最后,单个XMDS还引入了WAL日志机制,当出现本节点上LSM引擎故障并恢复后,可及时回放尚未落盘持久化的事务,保证了数据一致性。

3、强一致性的元数据服务集群

由多个XMDS共同组成了多副本的XMDS集群,并在多个XMDS间设计了强一致的复制机制:所有元数据的修改都会即时同步到所有关联副本,保证了元数据的强一致性,客户端从任意一个XMDS服务中都能获取到相同的数据视图;


部署在不同物理节点上的XMDS多副本,结合完备的XMDS间全量、增量恢复机制,向上层业务打造出9个9高可靠性的元数据服务;同时,增量与全量恢复IO也做了大量性能优化,实验室3节点实测文件元数据恢复性能为10亿文件/1小时;最后,通过细粒度区间锁实现了恢复IO实现了对元数据读写请求的零阻塞,大大提升了业务可用性;


在元数据服务提供低延迟高吞吐的背景下,创新的将传统分布式文件系统客户端与MDS之间的协议轻量化,解决过去有状态会话的复杂状态维护,颠覆性的实现了客户端访问切换无损耗,让上层各类业务丝滑运行,又能保持过去会话式的元数据性能。

4、高性能的网络传输模块

原生为RoCE/RDMA等新型网络设计的网络传输模块,利用NUMA Aware的内存池和无锁化设计,极大得降低了CPU开销并减少了互斥等待时间;

通过网络模块与IO栈的深度结合,既避免了不必要的线程上下文切换,又减少了入队出队的损耗,实现了元数据的快速通路,让IO延迟响应进入 亚毫秒级别。


05术语表



【未完待续】


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69978858/viewspace-2713760/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-07-10

  • 博文量
    13
  • 访问量
    4112