分布式文件存储FastDFS之环境搭建篇

目录

一、概述

二、下载安装 libfastcommon

三、下载安装FastDFS

四、配置FastDFS跟踪器(Tracker)

五、配置 FastDFS 存储 (Storage)

六、文件上传测试

七、总结


一、概述

前面一篇文章我们对FastDFS进行了详细的介绍,相信小伙伴们对分布式文件存储有了进一步认识。本篇文章我们将在Linux环境下搭建一个FastDFS环境。

二、下载安装 libfastcommon

libfastcommon是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库,基础环境,安装即可 。

【a】下载libfastcommonV1.0.7.tar.gz压缩包

这个小伙伴们可以百度下载即可。

【b】上传安装包到服务器中

这里创建一个专门存放安装包的文件夹:

[root@weishihuai /]# mkdir fastdfs
[root@weishihuai /]# cd fastdfs/
[root@weishihuai fastdfs]# 

然后使用xftp上传安装包到服务器中,如下图:

【c】安装gcc 依赖环境

因为FastDFS是使用c语言开发,需要先安装gcc环境,否则之后运行类库的 ./make.sh 会报错,如下图:

[root@localhost ~]# yum -y install gcc
[root@localhost ~]# yum -y install gcc-c++

【d】解压

[root@weishihuai fastdfs]# ll
total 72
-rw-r--r--. 1 root root 73148 Nov  9 14:09 libfastcommonV1.0.7.tar.gz
[root@weishihuai fastdfs]# tar -zxvf libfastcommonV1.0.7.tar.gz

解压后,会生成libfastcommon-1.0.7文件夹,里面有make.sh编译脚本。

【e】编译、安装

[root@localhost libfastcommon-1.0.7]# ./make.sh 
[root@localhost libfastcommon-1.0.7]# ./make.sh install

【f】libfastcommon.so 安装到了/usr/lib64/libfastcommon.so但是FastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接。

[root@localhost /]# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
[root@localhost /]# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
[root@localhost /]# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
[root@localhost /]# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so 

三、下载安装FastDFS

【a】下载FastDFS

下载地址:https://sourceforge.net/projects/fastdfs/files/,我们会看到如下图所示界面:

选择FastDFS Server Source Code,如下:

这里我们选择下载最多的应该也是比较稳定的版本:FastDFS Server with PHP Extension Source Code V5.05

点击之后就能成功下载fastdfs压缩包。

【b】解压

将安装包上传到服务器中:

[root@localhost fastdfs]# tar -zxvf FastDFS_v5.05.tar.gz 

解压缩之后,可以看到生成了FastDFS文件夹,里面有编译相关脚本:

[root@localhost fastdfs]# ll
total 412
drwxr-xr-x. 10 8980 users    258 Dec  2  2014 FastDFS
-rw-r--r--.  1 root root  345400 Nov  9 14:39 FastDFS_v5.05.tar.gz
drwxrwxr-x.  3 root root     102 Nov  9 14:31 libfastcommon-1.0.7
-rw-r--r--.  1 root root   73148 Nov  9 14:30 libfastcommonV1.0.7.tar.gz
[root@localhost fastdfs]# cd FastDFS/
[root@localhost FastDFS]# ll
total 120
drwxr-xr-x. 3 8980 users  4096 Dec  2  2014 client
drwxr-xr-x. 2 8980 users   261 Dec  2  2014 common
drwxr-xr-x. 2 8980 users   146 Dec  2  2014 conf
-rw-r--r--. 1 8980 users 35067 Dec  2  2014 COPYING-3_0.txt
-rw-r--r--. 1 8980 users  2802 Dec  2  2014 fastdfs.spec
-rw-r--r--. 1 8980 users 31386 Dec  2  2014 HISTORY
drwxr-xr-x. 2 8980 users    48 Dec  2  2014 init.d
-rw-r--r--. 1 8980 users  7755 Dec  2  2014 INSTALL
-rwxr-xr-x. 1 8980 users  5813 Dec  2  2014 make.sh
drwxr-xr-x. 2 8980 users  4096 Dec  2  2014 php_client
-rw-r--r--. 1 8980 users  2380 Dec  2  2014 README.md
-rwxr-xr-x. 1 8980 users  1768 Dec  2  2014 restart.sh
-rwxr-xr-x. 1 8980 users  1680 Dec  2  2014 stop.sh
drwxr-xr-x. 4 8980 users  4096 Dec  2  2014 storage
drwxr-xr-x. 2 8980 users  4096 Dec  2  2014 test
drwxr-xr-x. 2 8980 users  4096 Dec  2  2014 tracker
[root@localhost FastDFS]#

【c】编译、安装

[root@localhost FastDFS]# ./make.sh
[root@localhost FastDFS]# ./make.sh install

【d】FastDFS默认服务脚本路径

/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd

【e】FastDFS相关配置文件示例

/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample

【f】FastDFS默认的脚本安装后放在/usr/bin下面

但是FastDFS 服务脚本设置的 bin 目录是 /usr/local/bin,所以还是需要建立 /usr/bin 到 /usr/local/bin 的软链接。

[root@localhost fdfs]# ln -s /usr/bin/fdfs_trackerd   /usr/local/bin
[root@localhost fdfs]# ln -s /usr/bin/fdfs_storaged   /usr/local/bin
[root@localhost fdfs]# ln -s /usr/bin/stop.sh         /usr/local/bin
[root@localhost fdfs]# ln -s /usr/bin/restart.sh      /usr/local/bin

四、配置FastDFS跟踪器(Tracker)

【a】进入 /etc/fdfs,复 tracker.conf.sample,并重命名为 tracker.conf

[root@localhost fdfs]# ll
total 20
-rw-r--r--. 1 root root 1461 Nov  9 14:42 client.conf.sample
-rw-r--r--. 1 root root 7829 Nov  9 14:42 storage.conf.sample
-rw-r--r--. 1 root root 7102 Nov  9 14:42 tracker.conf.sample
[root@localhost fdfs]# cp tracker.conf.sample  tracker.conf 
[root@localhost fdfs]# 

【b】编辑tracker.conf,需要修改如下几个地方

vim tracker.conf
  • disabled=false
  • port=22122
  • base_path=/fastdfs/tracker
  • http.server_port=80

【c】创建Tracker 数据和日志目录地址

[root@localhost fdfs]# mkdir /fastdfs/tracker

【d】防火墙中打开跟踪端口(默认的22122)

[root@localhost fastdfs]# vim /etc/sysconfig/iptables

 加入开放22122端口的配置:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

 修改完成后,重启防火墙:

service iptables restart

【e】启动Tracker

使用如下命令启动Tracker跟踪器:

[root@localhost /]# /etc/init.d/fdfs_trackerd start
Reloading systemd:                                         [  OK  ]
Starting fdfs_trackerd (via systemctl):                    [  OK  ]
[root@localhost /]# 

启动成功后,会在 /fastdfs/tracker (配置的base_path)下创建 data、logs 两个目录,如下所示:

查看 FastDFS Tracker 是否已成功启动 ,22122端口正在被监听,则说明Tracker服务安装成功。

【f】 设置Tracker开机启动

[root@localhost tracker]# chkconfig fdfs_trackerd on

【g】Tracker server 目录及文件结构

Tracker服务启动成功后,会在base_path下创建data、logs两个目录。目录结构如下:

${base_path}
  |__data
  |   |__storage_groups.dat:存储分组信息
  |   |__storage_servers.dat:存储服务器列表
  |__logs
  |   |__trackerd.log: tracker server 日志文件

五、配置 FastDFS 存储 (Storage)

【a】复制 storage.conf.sample,并重命名为 storage.conf

[root@localhost fdfs]# cp storage.conf.sample storage.conf
[root@localhost fdfs]# ll
total 36
-rw-r--r--. 1 root root 1461 Nov  9 14:42 client.conf.sample
-rw-r--r--. 1 root root 7829 Nov  9 15:41 storage.conf
-rw-r--r--. 1 root root 7829 Nov  9 14:42 storage.conf.sample
-rw-r--r--. 1 root root 7234 Nov  9 15:12 tracker.conf
-rw-r--r--. 1 root root 7102 Nov  9 14:42 tracker.conf.sample

【b】编辑storage.conf

主要修改下面几个地方:

  • disabled=false
  • group_name=group1
  • port=23000
  • heart_beat_interval=30
  • base_path=/fastdfs/storage
  • store_path_count=1
  • store_path0=/fastdfs/file
  • subdir_count_per_path=256
  • tracker_server=192.168.179.133:22122
  • sync_start_time=00:00
  • sync_end_time=23:59
  • http.server_port=80

【c】创建Storage基础数据目录,对应base_path目录

[root@localhost fdfs]# mkdir /fastdfs/storage
[root@localhost fdfs]# mkdir /fastdfs/file

【d】防火墙中打开存储器端口(默认的 23000)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT

修改完成之后,重启防火墙:

service iptables restart

【e】启动 Storage

启动Storage前确保Tracker是启动的。

[root@localhost fdfs]# /etc/init.d/fdfs_storaged start
Starting fdfs_storaged (via systemctl):                    [  OK  ]

启动成功之后,会在 /fastdfs/storage 目录下创建 data、 logs 两个目录,如下图所示:

查看 Storage 是否成功启动,23000 端口正在被监听,就算 Storage 启动成功:

netstat -unltp | grep fdfs

【f】设置storage开机自启动

[root@localhost storage]# chkconfig fdfs_storaged on

【g】查看Storage和Tracker是否在通信

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

【h】Storage 目录

同 Tracker,Storage 启动成功后,在base_path 下创建了data、logs目录,记录着 Storage Server 的信息。

在 store_path0 目录下,创建了N*N个子目录:

六、文件上传测试

【a】复制Tracker客户端配置文件,并取名"client.conf"

[root@localhost fdfs]# cp client.conf.sample client.conf

【b】修改client.conf

主要修改下面几个地方:

  • base_path=/fastdfs/client
  • tracker_server=192.168.179.133:22122

【c】创建base_path路径

mkdir /fastdfs/c

【d】上传测试

[root@localhost /]# 
[root@localhost /]# ll
total 36
lrwxrwxrwx.   1 root root     7 Sep 18  2019 bin -> usr/bin
dr-xr-xr-x.   5 root root  4096 Sep 18  2019 boot
drwxr-xr-x.  20 root root  3260 Nov  9 14:25 dev
drwxr-xr-x.   3 root root    80 Oct 10 15:12 elasticsearch
drwxr-xr-x.   3 root root    80 Oct 10 15:50 es
drwxr-xr-x. 135 root root  8192 Nov  9 14:42 etc
drwxr-xr-x.   8 root root   166 Nov  9 16:05 fastdfs
drwxr-xr-x.   4 root root    27 Oct 10 15:13 home
lrwxrwxrwx.   1 root root     7 Sep 18  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 Sep 18  2019 lib64 -> usr/lib64
drwxr-xr-x.   2 root root     6 Apr 11  2018 media
drwxr-xr-x.   2 root root     6 Apr 11  2018 mnt
drwxr-xr-x.   3 root root    16 Sep 18  2019 opt
dr-xr-xr-x. 211 root root     0 Nov  9 14:25 proc
dr-xr-x---.   5 root root   262 Nov  9 16:04 root
drwxr-xr-x.  38 root root  1220 Nov  9 14:30 run
lrwxrwxrwx.   1 root root     8 Sep 18  2019 sbin -> usr/sbin
drwxr-xr-x.   2 root root     6 Apr 11  2018 srv
dr-xr-xr-x.  13 root root     0 Nov  9 14:25 sys
-rw-r--r--.   1 root root 12637 Nov  9 16:13 timg.png
drwxrwxrwt.  30 root root  4096 Nov  9 16:05 tmp
drwxr-xr-x.  13 root root   155 Sep 18  2019 usr
drwxr-xr-x.  20 root root   282 Sep 18  2019 var
[root@localhost /]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf timg.png 
group1/M00/00/00/wKizhV-o-jiAQ08WAAAxXVoV3i4602.png

可以看到,文件上传成功,返回文件ID号:group1/M00/00/00/wKizhV-o-jiAQ08WAAAxXVoV3i4602.png,返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。

  • group1:组名
  • M00:磁盘
  • 00/00:目录
  • wKizhV-o-jiAQ08WAAAxXVoV3i4602.png:文件名称

七、总结

本篇文章主要总结了如何搭建FastDFS环境,包括Tracker和Storage的搭建,并实现了上传文件的测试,但是现在并不能下载文件,因为需要安装Nginx作为服务器以支持Http方式访问文件,下一篇文章将会总结如何安装Nginx实现下载文件。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值