FastCFS核心组件及访问方式
Posted Huazie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastCFS核心组件及访问方式相关的知识,希望对你有一定的参考价值。
FastCFS核心组件及访问方式
本篇文章转载于 FastCFS 作者 余庆 大佬的 FastDFS分享与交流 公众号。
FastCFS 是一款可以跑数据库的轻量级分布式存储系统,她为数据库和云平台提供后端存储,保证数据强一致性,解决大容量数据存储问题,做到了高可靠、高可用、高性能以及高扩展性。
FastCFS 服务端两个核心组件是 FastStore 和 FastDIR。
FastStore
FastStore 是基于块存储的分布式数据存储服务,其文件 block 大小为 4MB,文件 inode + 文件偏移量 (offset)作为 block 的 key,对应的文件内容为 value,FastStore 本质是一个分布式 Key-Value 系统。
FastDIR
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架构及特点,敬请期待。
以上是关于FastCFS核心组件及访问方式的主要内容,如果未能解决你的问题,请参考以下文章