FastCFS 是一款可以跑数据库的轻量级分布式存储系统,她为数据库和云平台提供后端存储,保证数据强一致性,解决大容量数据存储问题,做到了高可靠、高可用、高性能以及高扩展性。
FastCFS服务端两个核心组件是 FastStore 和 FastDIR。FastStore是基于块存储的分布式数据存储服务,其文件block大小为4MB,文件 inode + 文件偏移量 (offset)作为block的key,对应的文件内容为 value,FastStore本质是一个分布式Key-Value系统。FastDIR是高性能分布式目录服务,管理文件元数据,支持命名空间。命名空间用于隔离不同应用的文件目录结构,各个应用可以使用自己专属命名空间。若多个应用之间要共享文件目录结构,只需使用相同的命名空间即可。
FastCFS提供了三层访问方式(接口),如下图所示:
最上层是标准文件接口和对象存储接口,其中基于FUSE的标准文件接口已经实现。可以使用FastCFS的fused模块mount到本地,为数据库、虚拟机以及其他使用标准文件接口的应用提供存储。
中间层是FastCFS提供的文件操作API,提供了 fcfs_api_open、fcfs_api_read、fcfs_api_write等函数(对应标准的open、read和write等)。使用此类接口,可以在用户态直接访问FastCFS分布式文件系统。在追求极致性能的场景,可以使用此类接口,比如数据库厂商、分布式计算平台厂商等等。
最下层的FastStore API提供了文件块操作API,包括fs_api_slice_write、fs_api_slice_read、fs_api_slice_delete 等函数。如果不打算使用FastCFS提供的文件元数据管理(即FastDIR组件),可以直接使用此类API。通过调用本层API,FastCFS可以对外提供块设备,比如提供iSCSI接口(目前暂未支持,后续可以考虑支持)。
下一篇文章将介绍FastCFS架构及特点,敬请期待。