FastDfs的安装及使用

FastDfs

FastDFS使用c预研编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

FastDFS安装

首先安装libevent依赖,如下:

> yum -y install libevent

解压libfastcommonV1.0.7.tar.gz并编译:

> tar -zxvf libfastcommonV1.0.7.tar.gz 
> cd libfastcommon-1.0.7
> ./make.sh

如果安装的时候提示没有gcc,则需要安装gcc:

> yum install -y gcc

编译完成之后,就执行安装:

> ./make.sh install

安装完成后,可以发现最终安装到了/usr/lib64下,进入这个目录:

> cd /usr/lib64
> ll libfast*

libfastcommon.so拷贝到/usr/lib下:

> cp libfastcommon.so /usr/lib

安装tracker

解压FastDFS_v5.05.tar.gz并编译:

> tar -zxvf FastDFS_v5.05.tar.gz
> cd FastDFS
> ./make.sh

编译完成之后,就执行安装:

> ./make.sh install

安装完成后,可以看到,程序被安装到/usr/bin下,配置文件在/etc/fdfs下,通过以下命令查看:

> cd /usr/bin
> ll fdfs*

可以看到已经安装好的fdfs相关文件,再进入/etc/fdfs

> cd /etc/fdfs

该文件夹下有以下三个文件:

  • client.conf.sample
  • storage.conf.sample
  • tracker.conf.sample

进入FastDFS/conf文件夹下,将该文件夹下的所有文件拷贝到/etc/fdfs/下,

> cp * /etc/fdfs/

再进入/etc/fdfs下,并修改tracker.conf文件,

> cd /etc/fdfs/
> vim tracker.conf

tracker.conf中的base_path修改为/fastdfs/tracker

> base_path=/fastdfs/tracker

创建该目录:

> mkdir -p /fastdfs/tracker

在该目录下,再创建如下两个文件夹storageclient

> cd /fastdfs
> mkdir storage
> mkdir client

启动tracker

> cd /usr/bin
> fdfs_trackerd /etc/fdfs/tracker.conf

查看fdfs_tracker启动状态,

> ps aux|grep fdfs

如果修改了tracker.conf配置,需要重启tracker,执行如下命令:

> fdfs_trackerd /etc/fdfs/tracker.conf restart

安装storage

修改storage配置文件,进入/etc/fdfs下,修改storage.conf文件,

> cd /etc/fdfs
> vim storage.conf
  • base_path=/fastdfs/storage
  • group_name=trey(这个名字可以自定义)
  • store_path0=/fastdfs/storage
  • tracker_server=192.168.80.129:22122(ip为tracker_server的IP)

启动tracker

> cd /usr/bin
> fdfs_storaged /etc/fdfs/storage.conf

查看fdfs_tracker启动状态,

> ps aux|grep fdfs

发现有fdfs_trackerdfdfs_storage两个服务。
重启fdfs_storage的方法见fdfs_trackerd的重启方法。

安装client测试工具

修改client配置文件,进入/etc/fdfs下,client.conf文件,

> cd /etc/fdfs
> vim client.conf
  • base_path=/fastdfs/client
  • tracker_server=192.168.80.129:22122

进入/usr/bin下,使用fdfs_test客户端工具测试上传,

> cd /usr/bin
> fdfs_test /etc/fdfs/client.conf upload /home/images/cat.jpg

会打印以下日志,日志中显示了上传文件的一些信息:

This is FastDFS client test program v5.05

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/ 
for more detail.

[2018-12-03 14:26:39] DEBUG - base_path=/fastdfs/client, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group: 
	server 1. group_name=, ip_addr=192.168.80.129, port=23000

group_name=trey, ip_addr=192.168.80.129, port=23000
storage_upload_by_filename
group_name=trey, remote_filename=M00/00/00/wKhQgVwEzJ-Afll0AACDK0RJi1A093.jpg
source ip address: 192.168.80.129
file timestamp=2018-12-03 14:26:39
file size=33579
file crc32=1145670480
example file url: http://192.168.80.129/trey/M00/00/00/wKhQgVwEzJ-Afll0AACDK0RJi1A093.jpg
storage_upload_slave_by_filename
group_name=trey, remote_filename=M00/00/00/wKhQgVwEzJ-Afll0AACDK0RJi1A093_big.jpg
source ip address: 192.168.80.129
file timestamp=2018-12-03 14:26:39
file size=33579
file crc32=1145670480
example file url: http://192.168.80.129/trey/M00/00/00/wKhQgVwEzJ-Afll0AACDK0RJi1A093_big.jpg

文件存储的路径如下:

/fastdfs/storage/data/00/00

在这个路径下,可以发现刚才上传的文件。
但是无法通过网络路径访问,为了通过网络路径访问,我们需要配置nginx,将nginx和fastdfs结合起来。

配置fast-nginx

进入fastdfs-nginx-module,并修改config文件:

> cd src
> vim config

将该文件中包含local的路径,去掉local这一层级,并保存。

配置nginx

先需要安装相关nginx依赖库,如下:

> yum install -y gcc-c++
> yum install pcre pcre-devel
> yum install zlib zlib-devel
> yum install openssl openssl-devel

解压nginx安装包,解压完毕后,进入nginx根目录,执行如下命令:

./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=/home/app/fastdfs-nginx-module/src

配置完成后,进行编译和安装:

> make
> make install

安装完成后,在/usr/local可以查看到已经安装完成的nginx文件夹。

进入/home/app/fastdfs-nginx-module/src文件夹,将该文件夹下的配置文件mod_fastdfs.conf拷贝到/etc/fdfs/下:

> cd /home/app/fastdfs-nginx-module/src
> cp mod_fastdfs.conf /etc/fdfs/

进入/etc/fdfs/下,并修改mod_fastdfs.conf文件:
base_path=/fastdfs/tmp
进入/fastdfs,并在其下创建tmp文件夹:

> mkdir tmp

进入/etc/fdfs文件夹下:

> vim mod_fastdfs.conf
  • tracker_server=192.168.80.129:22122
  • group_name=trey
  • url_have_group_name=true
  • store_path0=/fastdfs/storage

修改nginx配置文件

进入nginx根目录下的conf文件夹,修改nginx.conf文件:

> vim nginx.conf

添加以下这段配置:

server {
        listen          88;
        server_name     192.168.80.129;
        location /trey/M00 {
                ngx_fastdfs_module;
        }
    }

保存之后,就可以启动nginx了,进入nginx根目录下的sbin文件夹,执行./nginx -t,测试一下nginx启动环境是否正确。根据提示,作出相应的修改,如果没有问题,则可以直接启动nginx,使用如下命令:

> ./nginx

至此,nginx启动完毕,可以通过http://192.168.80.129:80或者http://192.168.80.129:88来访问,出现nginx欢迎页面,则说明启动成功。

访问刚才存储的图片的地址为:http://192.168.80.129:88/trey/M00/00/00/wKhQgVwEzJ-Afll0AACDK0RJi1A093_big.jpg

重新启动nginx的命令为:

> ./nginx -s reload
posted @ 2018-12-04 11:53  小涂涂365  阅读(289)  评论(0编辑  收藏  举报