FastDFS单机配置

简介

FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)。

  • tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。
  • storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。
  • client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。

本机环境

使用CentOS 7.0 x86_64版操作系统,按照以下网络结构进行部署:
所需要下载的压缩包有:
FastDFS源代码:FastDFS_v5.01.tar.gz
fastdfs的nginx模块源代码:fastdfs-nginx-module_v1.15.tar.gz
编译工具: C/C++ 编译工具集(gcc/make等等)

nginx 9.0 本机已经安装

编译和安装所需的依赖包

需要gcc,make,perl

# yum -y install gcc gcc-c++ make automake autoconf libtool perl

下载FastDFS安装包

FastDFS源代码
https://svwh.dl.sourceforge.net/project/fastdfs/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.02/FastDFS_v5.02.tar.gz

FastDFS_v5.02.tar.gz

安装命令如下

[root@fastF opt]# wget https://svwh.dl.sourceforge.net/project/fastdfs/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.02/FastDFS_v5.02.tar.gz
[root@fastF opt]# tar zxf FastDFS_v5.02.tar.gz
[root@fastF opt]#cd FastDFS
[root@fastF FastDFS]# ls
client  COPYING-3_0.txt  INSTALL     README.md   storage
common  HISTORY          make.sh     restart.sh  test
conf    init.d           php_client  stop.sh     tracker
[root@fastF FastDFS]# ./make.sh
[root@fastF FastDFS]#./make.sh install

安装完成后,所有可执行文件在/usr/local/bin下,以fdfs开头:

[root@fastF FastDFS]# ll /usr/local/bin/fdfs*
-rwxr-xr-x 1 root root  527135 Mar  6 11:50 /usr/local/bin/fdfs_appender_test
-rwxr-xr-x 1 root root  526872 Mar  6 11:50 /usr/local/bin/fdfs_appender_test1
-rwxr-xr-x 1 root root  517552 Mar  6 11:50 /usr/local/bin/fdfs_append_file
-rwxr-xr-x 1 root root  517298 Mar  6 11:50 /usr/local/bin/fdfs_crc32
-rwxr-xr-x 1 root root  517472 Mar  6 11:50 /usr/local/bin/fdfs_delete_file
-rwxr-xr-x 1 root root  518194 Mar  6 11:50 /usr/local/bin/fdfs_download_file
-rwxr-xr-x 1 root root  517910 Mar  6 11:50 /usr/local/bin/fdfs_file_info
-rwxr-xr-x 1 root root  530825 Mar  6 11:50 /usr/local/bin/fdfs_monitor
-rwxr-xr-x 1 root root 1183459 Mar  6 11:50 /usr/local/bin/fdfs_storaged
-rwxr-xr-x 1 root root  533302 Mar  6 11:50 /usr/local/bin/fdfs_test
-rwxr-xr-x 1 root root  532543 Mar  6 11:50 /usr/local/bin/fdfs_test1
-rwxr-xr-x 1 root root  659042 Mar  6 11:50 /usr/local/bin/fdfs_trackerd
-rwxr-xr-x 1 root root  518134 Mar  6 11:50 /usr/local/bin/fdfs_upload_appender
-rwxr-xr-x 1 root root  519232 Mar  6 11:50 /usr/local/bin/fdfs_upload_file

所有配置文件在/etc/fdfs下:

[root@fastF FastDFS]# ll /etc/fdfs/
total 56
-rw-r--r-- 1 root root  1461 Mar  6 11:50 client.conf
-rw-r--r-- 1 root root   858 Mar  6 11:50 http.conf
-rw-r--r-- 1 root root 31172 Mar  6 11:50 mime.types
-rw-r--r-- 1 root root  7535 Mar  6 11:50 storage.conf
-rw-r--r-- 1 root root  6990 Mar  6 11:50 tracker.conf

修改配置文件

查看配置文件目录

[root@fastF opt]# ls /etc/fdfs/
client.conf  http.conf  mime.types  storage.conf  tracker.conf

storage.conf 存储配置文件
tracker.conf 跟踪配置文件

storage.conf配置如下,其它默认即可

base_path=/mnt/fdfs_work/fdfs_data/storage#设置storage的日志目录(需预先创建)
store_path0=/mnt/fdfs_work/fdfs_data/sdata#上传文件路径 
tracker_server=192.1.0.1:22122#tracker服务器的IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功
http.server_port=8888     #设置http端口号

其他项目基本是默认的

disabled=false            #启用配置文件
group_name=group1  #组名,根据实际情况修改
port=23000   #设置storage的端口号
store_path_count=1#存储路径个数,需要和store_path个数匹配

tracker.conf配置如下

一般只需改动以下几个参数即可:

bind_addr=192.1.0.1#单机和上面的store的地址绑定的是同一个ip
base_path=/mnt/fdfs_work/fdfs_data/tracker   #设置tracker的数据文件和日志目录(需预先创建)
http.server_port=9090    #设置http端口号如需要进行性能调优,可以参照附录的配置文件的详细说明。

其他项目基本是默认的

disabled=false            #启用配置文件
port=22122                #设置tracker的端口号

创建文件存放的目录

mkdir -p /mnt/fdfs_work/fdfs_data/storage
mkdir -p /mnt/fdfs_work/fdfs_data/sdata
mkdir -p /mnt/fdfs_work/fdfs_data/tracker

运行tracker

运行tracker之前,先要把防火墙中对应的fd端口打开(本例中为22122)。

[root@tracker FastDFS]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 22122 -j ACCEPT
[root@tracker FastDFS]# /etc/init.d/iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables

启动tracker,确认启动是否成功。(查看是否对应端口22122是否开始监听)

[root@tracker FastDFS]#/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
[root@tracker FastDFS]#netstat -unltp | grep fdfs
tcp    0    0.0.0.0:22122       0.0.0.0:*           LISTEN      1766/

运行storage

运行storage之前,先要把防火墙中对应的端口打开(本例中为8888)。

[root@tracker FastDFS]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT
[root@storage1FastDFS]# /etc/init.d/iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:[确定]

启动storage,会根据配置文件的设置自动创建多级存储目录,确认启动是否成功。(查看是否对应端口23000是否开始监听)

[root@tracker FastDFS]#/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart
data path: /mnt/fdfs_work/fdfs_data/sdata/data, mkdir sub dir...
mkdir data path: 00 ...
mkdir data path: 01 ...
mkdir data path: 02 ...
...
/mnt/fdfs_work/fdfs_data/sdata/data

启动成功,通过端口查看

[root@tracker FastDFS]#netstat -unltp | grep fdfs
tcp    0    0.0.0.0:23000       0.0.0.0:*           LISTEN      1766/fdfs_storaged

也可查看storage的日志是否启动成功或是否有错误。
[root@tracker FastDFS]# cat /mnt/fdfs_work/fdfs_data/storage/logs/storaged.log

确认启动成功后,可以运行 fdfs_monitor 查看 storage服务器是否已经登记到 tracker服务器。
[root@tracker FastDFS]# /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf

看到“ip_addr = 127.0.0.1 (localhost) ACTIVE”即可确认 storage 运行正常。

文件上传测试

[root@iZ94tfzxyb0Z opt]# /usr/local/bin/fdfs_upload_file /etc/fdfs/storage.conf /mnt/html-project/html/images/activity/huo_1.jpg
group1/M00/00/00/fwAAAVi9FNCAPnpkAAJ8vcSCuHE130.jpg

已经上传到文件夹中了,并且重命名为fwAAAVi9FNCAPnpkAAJ8vcSCuHE130.jpg

至此FastDFS的主要配置已经完成了。

FastDFS路径描述

安装和配置nginx插件fastdfs-nginx-module

背景

在大多数业务场景中,往往需要为FastDFS存储的文件提供http下载服务,而尽管FastDFS在其storage及tracker都内置了http服务, 但性能表现却不尽如人意;
作者余庆在后来的版本中增加了基于当前主流web服务器的扩展模块(包括nginx/apache),其用意在于利用web服务器直接对本机storage数据文件提供http服务,以提高文件下载的性能。

这一部分基本是扩展nginx的功能
nginx的入门安装请参考
nginx在centos7和win7下的安装及配置

方式1安装插件fastdfs-nginx-module[不建议安装]

wget http://nchc.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
# tar zxf fastdfs-nginx-module_v1.16.tar.gz
# tar zxf nginx-1.8.0.tar.gz
# cd nginx-1.8.0
# ./configure --prefix=/data/nginx --add-module=/data/soft/fastdfs-nginx-module/src
# make
# make install

安装该插件后我这边是无法启动nginx,因此只能绕路而行

方式2软连接访问文件

因为fstdfs返回的路径是group1/M00/00/00/fwAAAVi9FNCAPnpkAAJ8vcSCuHE130.jpg
而实际路径是:/mnt/fdfs_work/fdfs_data/sdata/data/00/00/fwAAAVi9FNCAPnpkAAJ8vcSCuHE130.jpg
因此就多了group1/M00
这里使用软链接处理

cd /mnt/fdfs_work/fdfs_data/sdata/data/
mkdir group1
cd group1
ln -s /mnt/fdfs_work/fdfs_data/sdata/data  /mnt/fdfs_work/fdfs_data/sdata/data/group1/M00

nginx配置

        location /group1/M00 {
              root  /mnt/fdfs_work/sdata/data;
                 # ngx_fastdfs_module;
        }

单机版本的FastDFS的主要配置已经完成了,这一部分基本是为nginx服务的

可以直接通过浏览器浏览图片
http://192.168.0.91/group1/M00/00/00/fwAAAVi9FNCAPnpkAAJ8vcSCuHE130.jpg

##一些常用命令
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget

查看端口
netstat -ntl
netstat -lnp | grep 80

查看进程
ps -aux | grep fdfs

fastdfs命令
上传文件:/usr/local/bin/fdfs_upload_file
下载文件:/usr/local/bin/fdfs_download_file [local_filename]
删除文件:/usr/local/bin/fdfs_delete_file
monitor: /usr/local/bin/fdfs_monitor /etc/fdfs/client.conf
关闭:
killall fdfs_trackerd
killall fdfs_storaged

/usr/local/bin/stop.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/local/bin/stop.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
重启:
/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/local/bin/restart.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

参考资料

FastDFS-Nginx扩展模块源码分析 http://www.cnblogs.com/littleatp/p/4361318.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值