FastCFS核心组件及访问方式

Stella981
• 阅读 580

    FastCFS 是一款可以跑数据库的轻量级分布式存储系统,她为数据库和云平台提供后端存储,保证数据强一致性,解决大容量数据存储问题,做到了高可靠、高可用、高性能以及高扩展性。

    FastCFS服务端两个核心组件是 FastStore 和 FastDIR。FastStore是基于块存储的分布式数据存储服务,其文件block大小为4MB,文件 inode + 文件偏移量 (offset)作为block的key,对应的文件内容为 value,FastStore本质是一个分布式Key-Value系统。FastDIR是高性能分布式目录服务,管理文件元数据,支持命名空间。命名空间用于隔离不同应用的文件目录结构,各个应用可以使用自己专属命名空间。若多个应用之间要共享文件目录结构,只需使用相同的命名空间即可。

    FastCFS提供了三层访问方式(接口),如下图所示:

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架构及特点,敬请期待。

本文分享自微信公众号 - FastDFS分享与交流(fastdfs100)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Java修道之路,问鼎巅峰,我辈代码修仙法力齐天
<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav
Stella981 Stella981
3年前
Curve 技术解析之 MDS 元数据管理
Curve简介Curve是网易数帆于今年7月份开源的一个高性能、高可用、高可靠的分布式存储系统(https://www.oschina.net/p/curve),主打高性能、低延迟。Curve设计可以作为多种存储场景的底层存储:例如块存储,对象存储,云原生数据库,EC等。当前Curve已实现高性能块存储,并且基
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
3年前
FastCFS核心组件FastStore架构及特点
  上一篇文章介绍了FastCFS服务端两大核心组件:FastDIR和FastStore。其中FastDIR管理文件元数据,FastStore以分块方式存储文件内容。FastDIR和FastStore均采用Master/Slave结构,Master不需要手工配置,由程序自动选举产生,并且做到了failover。FastDIR架构是FastStore架构子
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这