新一代分布式文件系统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等;
03
XGFS架构
XSKY基于对客户业务的深度理解,以及结合新一代存储介质和高性能LSM存储引擎的应用优势,推出了新一代分布式文件存储系统XGFS。基于最新一代NVMe/SCM存储介质设计,充分发挥出新兴介质近百万级IOPS和数GB带宽的性能优势,轻松满足对于文件系统的高频率元数据访问需求;
02利用高性能LSM存储引擎,结合XSKY独有专利技术的键值设计,构建出完全自主的元数据服务;既兼容POSIX文件语义和S3对象语义,又支持用户/用户组、权限/ACL、扩展属性等;
03元数据在本节点的日志保护和节点间的强一致性复制,使得元数据集群轻松应对慢盘、网络异常、节点重启/掉电等故障场景,提供RPO=0的元数据通路;
04使用XSKY自研的高速网络传输模块,原生为RoCE/RDMA高性能网络量身打造,大大降低节点间元数据复制包的传输时延,使得整个元数据集群拥有更高的IOPS性能。
04
技术原理
1、LSM存储引擎实现文件元数据管理;XSKY独有专利的KV键值对设计,实现完备的语义支持
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术语表
【未完待续】
有你想看的精彩
未来就绪,XSKY发布全新下一代分布式文件系统XGFS