FastDFS v5.06 部署
FastDFS 简介
FastDFS是一个国产开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
官方论坛: http://www.csource.org
下载地址: http://sourceforge.net/projects/fastdfs/files/
github软件仓库
- libfastcommon – FastDFS和FastDHT的通用函数库,地址: https://github.com/happyfish100/libfastcommon.git
- FastDFS – FastDFS主代码,地址: https://github.com/happyfish100/fastdfs.git
- fastdfs-nginx-module – FastDFS的nginx模块,地址:https://github.com/happyfish100/fastdfs-nginx-module.git
安装
本安装使用 CentOS 7 x86_64版操作系统,按照以下网络结构进行部署:
下载安装文件
FastDFS 5.x 取消了对 libevent 的依赖,添加了对 libfastcommon 的依赖。
本部署说明用到的软件版本:
- libfastcommon v1.13
- FastDFS v5.06
- fastdfs-nginx-module v1.17
可从上面的sourceforge或github中下载,或者直接下载本文附带的压缩包。详细的安装说明可参照代码中的INSTALL。
安装FastDFS
在每一台tracker和storage服务器上执行
安装完成后,所有可执行文件在目录/usr/bin下,以fdfs_开头:
配置文件在目录/etc/fdfs下:
FastDFS配置
配置Tracker跟踪器
开放tracker监听端口访问
|
|
修改配置文件
|
|
设置开机自启动
|
|
确认tracker是否启动成功
|
|
安装并配置 nginx 反向代理
防火墙开放http服务
12firewall-cmd --permanent --zone=public --add-service=httpfirewall-cmd --reload安装并启用nginx
1234yum install -y epel-release # 安装 EPEL 软件仓库yum install -y nginxsystemctl enable nginxsystemctl start nginx配置反向代理
打开 /etc/nginx/nginx.conf,在 http {} 中添加:1234upstream fdfs {server 192.168.71.127:80;server 192.168.71.128:80;}
在 server{} 中添加:
配置Storage存储节点
开放tracker监听端口访问
|
|
修改配置文件
|
|
设置开机自启动
|
|
确认storage是否启动成功
|
|
client客户端配置
在tracker, storage之外的一台主机上安装FastDFS,然后执行:
FastDFS测试
上传测试:
12joelhy@arminix: ~ $ fdfs_upload_file /etc/fdfs/client.conf pom.xmlgroup1/M00/00/00/wKhHf1S-oryAZCpgAAAE2uRlJkA126.xml查看文件信息:
1234567joelhy@arminix: ~ $ fdfs_file_info /etc/fdfs/client.confgroup1/M00/00/00/wKhHf1S-oryAZCpgAAAE2uRlJkA126.xmlsource storage id: 0source ip address: 192.168.71.127file create timestamp: 2015-01-26 02:47:24file size: 1242file crc32: 3831834176 (0xE4652640)下载测试:
1234joelhy@arminix: ~ $ fdfs_download_file /etc/fdfs/client.conf \group1/M00/00/00/wKhHf1S-oryAZCpgAAAE2uRlJkA126.xml downtest.xmljoelhy@arminix: ~ $ lsdowntest.xml
FastDFS客户端
PHP扩展安装
client主机上安装的是php v5.4.33
PHP扩展使用
|
|
PHP客户端上传图片测试
|
|
|
|
fastdfs-nginx-module 安装配置
fastdfs-nginx-module用于解决同步延迟问题:
同组之间的服务器需要复制文件,有延迟的问题.
假设Tracker服务器将文件上传到了192.168.1.80,文件ID已经返回客户端,
这时,后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个ID在192.168.1.30取文件,肯定会出现错误
这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。
fastdfs-nginx-module模块只需要安装到storage上。
storage server 安装 nginx 服务器
防火墙开放http服务
|
|
安装并启用nginx
|
|
查看前面安装的nginx编译参数
|
|
下载nginx源码
|
|
安装nginx依赖的软件包
|
|
重新编译nginx
|
|
fastdfs模块配置
|
|
修改:
Storage服务器nginx配置
server{} 里添加
重启Nginx
|
|