FastDFS是一款开源的轻量级分布式文件系统,使用C实现,支持Linux, BSD等类unix操作系统。值得注意的是,FastDFS并不是通用的文件系统,只能通过专用的API访问。
fastdfs为互联网应用量身定做,解决了大容量文件存储的问题,fastdfs追求高性能和高扩展性.fastdfs的主要概念:
tracker-server:跟踪服务器。用于跟踪文件,主要起调度作用。在内存中记录了所有存储组和存储服务器的状态信息,是客户端和数据存储的主要枢纽。相比GFS更为精简,因为不记录文件索引。
存储服务器:存储服务器。用于存储文件。直接使用操作系统的文件系统来管理和组织文件。
组:组、卷。多个服务器存在一个组中,在一个组中的服务器存储的文件是完全相同的,并且同一个组的服务器地位是对等的。对于文件的操作可以在任意一个组中的服务器上进行。
元数据:元数据。以键值对的方式存储、用于存储文件的相关信息。
<强>各大存储系统的对比强>
话说没有对比就没有伤害,fastdfs也不是万能的,需要根据业务来选择适合的存储系统。
存储系统 适合存储的文件类型 文件分布情况 系统性能 复杂度 保险丝(用户文件系统) POSIX () 备份机制 通讯协议接口 社区情况 实现语言 FastDFS 4 kb至500 mb 将小文件合并存储 很高 简单 不支持 不支持 组内冗余备份 HTTP API 国内用户 C TFS 所有文件 小文件合并以块组织分片 - 复杂 不支持 不支持 块存储多份,主辅灾备 HTTP API 少 c++ MFS 大于64 k 分片存储 主节点占用内存较高 - 支持 支持 多点备份,动态冗余 使用FUSE挂载 较多 Perl HDFS 大文件 大文件分片块存储 - 简单 支持 支持 多副本 原生API 较多 Java Ceph 对象大文件 OSD一主多从的 - 复杂 支持 支持 多副本 原生API 较少 c++ MogileFS 海量小图片 - 高 复杂 支持 不支持 动态冗余 原生API 文档少 Perl ClusterFS 大文件 - - 简单 支持 支持 - - 多 C
GitHub项目主页:https://github.com/happyfish200/fastdfs
架构图
安装FastDFS
mkdir/来源 cd/来源 yum安装- y gcc gcc-c + +使cmake wget libevent wget https://github.com/happyfish200/libfastcommon/archive/V1.0.35.tar.gz wget https://github.com/happyfish200/fastdfs/archive/V5.10.tar.gz 焦油-zxvf V1.0.35.tar.gz 焦油-zxvf V5.10.tar.gz cd libfastcommon-1.0.35 。/make.sh 。/h安装 ln - s/usr/lib64/libfastcommon。所以/usr/local/lib/libfastcommon.so cd . ./cd fastdfs - 5.10/?make.sh 。/h安装 cd . ./rm射频libfastcommon-1.0.35 rm射频fastdfs - 5.10 cp/etc/fdfs/tracker.conf。样本/etc/fdfs/tracker.conf cp/etc/fdfs/storage.conf。样本/etc/fdfs/storage.conf cp/etc/fdfs/client.conf。样本/etc/fdfs/client.conf mkdir - p/数据/fdfs/跟踪器 mkdir - p/数据/fdfs/存储 ln - s/usr/bin/stop.sh/usr/local/bin/stop.sh ln - s/usr/bin/restart.sh/usr/local/bin/restart.sh
修改配置文件
修改跟踪器配置文件:
base_path=/数据/fdfs/跟踪器
修改存储器配置文件:
base_path=/数据/fdfs/存储 store_path0=/数据/fdfs/存储 tracker_server=192.168.80.3:22122Java高级架构之FastDFS分布式文件集群详解