FastDFS配置文档

文章链接:http://www.liuschen.com

1.简介

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储(不是大文件)和负载均衡的问题。特别适合以文件为载体的在线服务。

FastDFS有两个重要模块,tracker和storage。tracker负责调度分配文件的访问和负载均衡。storage则负责文件的管理,其中包括文件的存储,同步,和提供文件的访问接口。其中还允许以键值对的形式对文件写入一些元数据。

tracker和storage可以包括一个或多个服务端,这些服务端可以在不影响对外提供服务的情况下动态的添加和删除。集群中的每个服务器是对等的。

1.Linux部署

注意:一定要下载正确的版本,我最开始下载了v1.27,结果Java端死活上载不了文件,之前的版本是依赖libevent这个库的,而新的版本依赖的是libfastcommon,一定要按照给出的下载地址下载libfastcommon,以防出错,以下步骤为v5.08中的INSTALL文件中给出的步骤,如果亲下载的版本更新,请以FastDFS目录下INSTALL中给出的安装步骤为准。

下载最新版本v5.0.8FastDFS:https://sourceforge.net/projects/fastdfs/files/

步骤一. 从github上下载 libfastcommon 源码包并且安装它

the github address:
https://github.com/happyfish100/libfastcommon.git

步骤二.下载 FastDFS源码包(已下载),并且解压

tar xzf FastDFS_v5.x.tar.gz

步骤三.进入FastDFS目录

cd FastDFS

步骤四.执行命令:

./make.sh

步骤五.执行安装命令

./make.sh install

步骤六.编辑修改config文件

config文件是用来启动tracker和storage的,在conf目录下,执行安装命令后在/etc/fdfs/目录下也有备份

在这一步先做简单的修改,只需要改配置文件的中设置的IP和搜索‘home’,更改需要设置本地存储位置即可

步骤七.启动服务器

启动 tracker 程序:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

in Linux, you can start fdfs_trackerd as a service:

/sbin/service fdfs_trackerd start

启动 storage 程序:

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

in Linux, you can start fdfs_storaged as a service:

/sbin/service fdfs_storaged start

步骤八.测试启动的程序

启动测试程序格式:

/usr/bin/fdfs_test 客户端配置文件 操作(download,upload)

/usr/bin/fdfs_test1 客户端配置文件 操作(download,upload)

上传文件示例:

/usr/bin/fdfs_test conf/client.conf upload /usr/include/stdlib.h

步骤九.启动monitor程序

/usr/bin/fdfs_monitor 客户端配置文件

注意:启动完后有时需要一点时间才可以访问,如果马上测试返回不成功的话,并不一定是配置错了。

2.配置文件和启动的一些补充

由于是分布式存储,在一个服务器上可以选择tracker和storage进行部署。
修改配置文件,FastDFS目录下conf下以conf为扩展名的文件都是配置文件。

配置tracker.conf和storage.conf中的参数

base_path:存储数据和log文件

store_path0:存储文件路径

tracker_server:tracker服务器

group_name=group1:设置storage所属的组,同组磁盘存储单元互相备份

启动tracker:

fdfs_trackerd ./conf/tracker.conf restart

启动storage:

fdfs_storaged ./conf/storage.conf restart

测试:

/usr/bin/fdfs_test /etc/fdfs/client.conf upload file
/usr/bin/fdfs_test /etc/fdfs/client.conf download file

输出配置信息:

/usr/bin/fdfs_monitor /etc/fdfs/client.conf

fdfs_trackerd和fdfs_storaged是安装的可执行文件,如果安装的目录没有加入了环境变量,需要加上全路径,就是上面说的可执行文件的安装路径,新版本的fdfs_trackerd和fdfs_storaged是安装在/usr/bin中,需要加全路径,修改的conf最好也是修改/etc/fdfs下的相关配置文件,便于寻找部署。

3.搭建反向代理服务器

到这一步,不是必须的,但是由于FastDFS新版本不支持HTTP服务了,所以需要自己搭建该服务,同时,也可以解决不同storage之间复制文件时,访问未传输文件导致的错误,nginx能将访问链接重定向到源文件。

依然是这个地址:https://sourceforge.net/projects/fastdfs/files/

下载fastdfs-nginx-module

下载nginx(我下载的是稳定版1.10.2):http://nginx.org/en/download.html

安装nginx

解压,fastdfs-nginx-module,内有一个src文件夹,路径假设为$(PATH)

添加依赖(我没有执行这一步,考虑到安装的环境可能不同,最好一次性将依赖安装,就可以避免下面的一些配置和编译的错误):

yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

切换到nginx目录中,执行

./configure --add-module=$(PATH)

如果报错:

./configure: error: the HTTP rewrite module requires the PCRE library.
./configure: error: the HTTP gzip module requires the zlib library.

执行

yum -y install pcre-devel
yum install zlib-devel

执行make,如果报错yacc命令未找到:

yum install bison-devel

注意:devel表示的是开发版本,与源码编译来相同,有暴露的include和链接库供其他程序编译时调用

报错:

fastdfs-nginx-module/src/common.c:29:27: 致命错误:local_ip_func.h:没有那个文件或目录

local_ip_func.h经过搜索发现是fastcommon中的头文件,这里找不到,可能是编译目录未包含,事实上也是如此,编译时包含了/usr/local/include/fastcommon目录,但是local_ip_func.h确是在/usr/include/fastcommon

所以,只需要生成makefile(这个文件在obj目录下)文件后,添加一下include目录搜索地址即可

将-L/usr/local/lib改为-L/usr/lib

ALL_INCS中添加:

-I /usr/include/fastdfs \
-I /usr/include \
-I /usr/local/include \
-I /usr/include/fastcommon/ \

编译中出现这个问题就是fastcommon的安装路径和nginx中添加插件找寻的目录不一致导致的,当然也可以一开始不要将fastcommon安装在local下.

编译成功后,执行

make install

安装完成

Loading Disqus comments...
Table of Contents