FastDFS是用c语言编写的一款开源的分布式文件系统,下面总结一下其基本概念和搭建流程。
1、概念
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
2、文件上传下载流程
上传流程:
下载流程:
3、搭建步骤
可以使用一台虚拟机来模拟,只有一个Tracker、一个Storage服务。
第一步:把fastDFS相关都上传到linux系统。
第二步:安装FastDFS之前,先安装libevent工具包。输入命令:yum -y install libevent
第三步:安装libfastcommonV1.0.7工具包。
a.解压缩,输入命令:tar zxf libfastcommon-1.0.7.tar.gz
b.编译,输入命令:./make.sh
c.安装,输入命令:./make.sh install
d.把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份
第四步:安装Tracker服务。
a.解压缩,输入命令:tar zxf fastdfs-5.05.tar.gz
b.编译,输入命令:./make.sh
c.安装,输入命令:./make.sh install
d.把/root/FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下
e. 新建文件夹:/home/fastdfs/tracker,命令:mkdir fastdfs/tracker
f.配置tracker服务,修改/root/FastDFS/conf/tracker.conf文件下的base_path:
g.启动tracker。输入命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
第五步:安装storage服务。
a.创建文件夹:/home/fastdfs/storage,输入命令:mkdir fastdfs/storage
b.修改/root/FastDFS/conf/storage.conf文件下的base_path,store_path0,tracker_server
c.将storage.conf拷贝到.etc/fdfs下
d.启动storage服务,输入命令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf ,启动后可通过ps aux|grep storage查看进程
第六步:测试服务
a.先新建client文件夹
b.修改配置文件/etc/fdfs/client.conf
c.测试,输入命令:/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg,看图片是否上传成功
第七步:搭建nginx提供http服务
a.安装nginx,步骤:点击打开链接
b.安装nginx插件,fastdfs-nginx-module_v1.16.tar.gz
1.先解压:tar -zxf fastdfs-nginx-module_v1.16.tar.gz
2.修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉
3.对nginx重新config,命令如下:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \ --add-module=/root/fastdfs-nginx-module/src
4.编译安装:依次执行命令:make和make install
5. 编辑 /root/fastdfs-nginx-module/src/mod_fastdfs.conf文件,并复制到/etc/fdfs目录下:
c.在nginx的配置文件中添加一个Server:
server {
listen 80;
server_name 192.168.25.133;
location /group1/M00/{
root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}
d.将libfdfsclient.so拷贝至/usr/lib下,命令:cp /usr/lib64/libfdfsclient.so /usr/lib/
e.启动nginx
f.测试,上传文件:/usr/bin/fdfs_test /etc/fdfs/client.conf upload shinhwa.jpg
在浏览器中输入如下地址:
浏览器图片显示成功,FastDFS搭建完成:
【小结】
跟着视频搭建很容易,需要的是自己亲自实践并应用到项目中,还是多多动手实践吧!