Java高级架构之FastDFS分布式文件集群详解

  

  

FastDFS是一款开源的轻量级分布式文件系统,使用C实现,支持Linux, BSD等类unix操作系统。值得注意的是,FastDFS并不是通用的文件系统,只能通过专用的API访问。

  

fastdfs为互联网应用量身定做,解决了大容量文件存储的问题,fastdfs追求高性能和高扩展性.fastdfs的主要概念:

  

tracker-server:跟踪服务器。用于跟踪文件,主要起调度作用。在内存中记录了所有存储组和存储服务器的状态信息,是客户端和数据存储的主要枢纽。相比GFS更为精简,因为不记录文件索引。

  

存储服务器:存储服务器。用于存储文件。直接使用操作系统的文件系统来管理和组织文件。

  

组:组、卷。多个服务器存在一个组中,在一个组中的服务器存储的文件是完全相同的,并且同一个组的服务器地位是对等的。对于文件的操作可以在任意一个组中的服务器上进行。

  

元数据:元数据。以键值对的方式存储、用于存储文件的相关信息。

  

癑ava高级架构之FastDFS分布式文件集群详解"

  

<强>各大存储系统的对比

  

话说没有对比就没有伤害,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

  

  

癑ava高级架构之FastDFS分布式文件集群详解"

  

  

架构图   

癑ava高级架构之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:22122

Java高级架构之FastDFS分布式文件集群详解