为互联网应用文件存储而生之FastDFS
2023-04-13 16:35:03
分布式文件系统 (Distributed File System) 软件或软件服务器用于管理文件,但软件管理的文件通常不是在服务器节点上,而是在多个服务器节点上。这些服务器节点通过网络连接形成一个庞大的文件存储服务器集群,用于存储文件资源。这些服务器上的文件通过分布式文件系统进行管理;
常见的分布式文件系统包括:FastDFS、GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS等;
FastDFS是由阿里巴巴开发开源的轻量级分布式文件系统,为互联网应用量身定制,简单、灵活、高效,采用C语言开发;
FastDFS管理文件的功能包括:文件存储、文件同步、文件访问(文件上传、文件下载、文件删除)等,解决了大容量文件存储的问题,特别适合相册网站、文档网站、图片网站等在线服务;
FastDFS充分考虑冗余备份、线性扩展等机制,注重高可用性、高性能等指标。FastDFS很容易建立一个高性能的文件服务器集群,提供文件上传、下载等服务;
FastDFS发展历史
项目于2008年4月启动,第一版V1.00于7月发布,两年内升级为V1.29;
2010年8月,V2.00;
V3.000;
V4.00.0;
V5.00.0;
到目前为止,最新版本是V5.11;(2017年6月发布)
FastDFS系统架构自第一个版本发布以来没有大的调整。高版本与低版本的数据完全兼容,可以平稳升级。建议更新并升级到最新版本;
github上托管FastDFS代码:https://github.comhappyfish100/fastdfs
FastDFS整体架构结构
FastDFS文件系统由客户端和服务端两部分组成;
客户端通常指我们的程序,比如我们的Java程序连接FastDFS、操作FastDFS,那么我们的Java程序就是客户端;
FastDFS目前提供专有API访问 C、Java 和 PHP 用于访问FastDFS文件系统的几种编程语言API;
服务器由两部分组成:一是跟踪器(tracker),一是存储节点(storage);
跟踪器(tracker)主要从事调度工作,记录集群中存储节点storage的状态信息,是前端Client和后端存储节点storage的枢纽;
因为所有相关信息都在内存中,Tracker server的性能很高,一个较大的集群(比如几百个group)中有三个就足够了;
存储节点(storage)用于存储文件,包括文件和文件属性(meta data)文件管理的所有功能都保存在存储服务器磁盘上:文件存储、文件同步和文件访问;
更全面、更快速地掌握FastDFS,蛙课网 视频课程即将推出:FastDFS详解分布式文件系统,敬请期待。