引言:
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。【百度百科】
介绍:
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
存储节点存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。
跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。
当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。
FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。
注意:fastdfs不适应大文件的管理(建议存储 4KB< file_size <500MB),如果超大文件的存储要借助hadoop来实现。上面重点理解tracker和storage两个角色。
原理:
网络拓扑图如下(这是网上比较经典的一张网络拓扑图,仅供参考)
功能描述:主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB< file_size <500MB)为载体的在线服务
安装:(以单机版安装为例)
安装前注意:fastdfs暂时没有在window安装版本,下面我安装步骤如下:
官网:https://sourceforge.net/projects/fastdfs/
点击file后如下:
第一步: 准备一台主机,修改主机名为fastdfs
vi /etc/hostname | hostnamectl set-hostname 主机名
然后重启:reboot 使其生效:
第二步: 安装相关依赖包和下载相关安装包:
安装相关依赖包
yum install gcc-c++ perl-devel pcre-devel openssl-devel zlib-devel wget
下载libfastcommon
wget https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.36
下载fastdfs
wget https://github.com/happyfish100/fastdfs/releases/tag/V5.11
注意,下载安装包后上传到root家目录下的fastdfs下
安装gcc等依赖:
第三步:解压并编译安装:
tar -zxvf libfastcommon-1.0.36.tar.gz || tar -zxvf fastdfs-5.11.tar.gz
编译:分两步,先编译libfastcommon 然后再编译fastdfs
1> 进去libfastcommon 中: 执行 ./make.sh && ./make.sh install
2. 进入到fastdfs目录,执行 ./make.sh && ./make.sh install 同上
第四步:启动tracker和storage
配置tracker
1> cd /etc/fdfs/
2> cp tracker.conf.sample tracker.conf
3> mkdir -p /data/tracker
4> vi tracker.conf
base_path=/data/tracker -- tracker配置目录
5> 启动tracker
fdfs_trackerd /etc/fdfs/tracker.conf start
6> ps aux | grep fdfs
配置storage
1> cd /etc/fdfs/
2> cp storage.conf.sample storage.conf
3> mkdir -p /data/storage
4> vi storage.conf
base_path=/data/storage -- storage 配置目录
store_path0=/data/storage -- 同上
tracker_server=192.168.236.130:22122 -- tracker服务器地址
5> 启动storage服务
fdfs_storaged /etc/fdfs/storage.conf start
6> 查看服务启动情况 ps aux| grep fdfs
配置client:
1> cd /etc/fdfs/
2> cp client.conf.sample client.conf
3> vi client.conf
base_path=/data/tracker -- 与tracker.conf 配置路径相同
tracker_server=192.168.236.130:22122 -- tracker服务器地址
相关操作截图如下:
1.修改配置文件名称:
验证storage是否启动完成:
第五步: 测试文件上传:
在根目录下准备一个 文件 huhy.txt
执行: fdfs_upload_file /etc/fdfs/client.conf huhy.txt
到这就上传成功了。
补充:
根据上传成功文件返回的标识查询一下文件路径和内容。
到这大家基本上对fastdfs应该有个简单的认识了。以上是真实搭建案例,仅供参考