新一代分布式文件存储系统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术语表
【未完待续】