FastDFS安装环境搭建
机器分布
在实际使用过程中,有多台Tracker Server(跟踪服务器),并且有多台Storage Server(存储服务器)成组,以及多个Client(客户端)。但是在学习的过程中,简化学习过程,重视思路,在这里只搭建一台Tracker Server,一台Storage Server,Client搭建在Tracker Server上。
IP | 角色 |
---|---|
192.168.205.101 |
Tracker Server |
192.168.205.102 |
Storage Server |
安装依赖
FastDFS由C语言开发,安装必须基于C的环境。
yum install -y make cmake gcc gcc-c++
安装公共函数库
上传资源
libfastcommon-master.zip
至服务器解压,解压后进入
libfastcommon-master
编译安装
./make.sh && ./make.sh install
。
安装FastDFS
上传资源
fastdfs-master.zip
直服务器并且解压,解压后进入
fastdfs-master
编译安装
./make.sh && ./make.sh install
。
fastdfs
默认安装在以下位置:
-
/usr/bin
:可执行文件 -
/etc/fdfs
:配置文件 -
/etc/init.d
:主程序代码 -
/usr/include/fastdfs
:插件组
分割线*******************************************************以上两台服务器相同的,以下的为不同的文件配置
启动Tracker
tracker和storage都是faftdfs,通过不同的配置文件运行则行使着不同的作用。
查看
/etc/fdfs
下的目录文件
[root@localhost ~]# ls /etc/fdfs/
client.conf.sample storage.conf.sample storage_ids.conf.sample tracker.conf.sample
复制
tracker.conf.sample
文件在同目录下名为
tracker.conf
。
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
编辑配置文件
vim /etc/fdfs/tracker.conf
# 允许访问 tracker 服务器的 IP 地址,为空则表示不受限制
bind_addr =
# tracker 服务监听端口
port = 22122
# tracker 服务器的运行数据和日志的存储父路径(需要提前创建好)
base_path = /fastdfs/tracker
# tracker 服务器 HTTP 协议下暴露的端口
http.server_port = 8080
启动tracker服务
# 创建 tracker 服务器的运行数据和日志的存储父路径
mkdir -p /fastdfs/tracker
# 启动 tracker 服务
service fdfs_trackerd start
# 查看 tracker 服务状态
service fdfs_trackerd status
# 重启 tracker 服务
service fdfs_trackerd restart
# 停止 tracker 服务
service fdfs_trackerd stop
启动Storage
编辑配置文件
同目录下复制文件
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
编辑配置文件
vim /etc/fdfs/storage.conf
文件配置
# storage 组名/卷名,默认为 group1
group_name = group1
# 允许访问 storage 服务器的 IP 地址,为空则表示不受限制
bind_addr =
# storage 服务器的运行数据和日志的存储父路径(需要提前创建好)
base_path = /fastdfs/storage/base
# storage 服务器中客户端上传的文件的存储父路径(需要提前创建好)
store_path0 = /fastdfs/storage/store
# storage 服务器 HTTP 协议下暴露的端口
http.server_port = 8888
# tracker 服务器的 IP 和端口
tracker_server = 192.168.205.101:22122
启动服务
# 创建 storage 服务器的运行数据和日志的存储父路径
mkdir -p /fastdfs/storage/base
# 创建 storage 服务器中客户端上传的文件的存储父路径
mkdir -p /fastdfs/storage/store
# 启动 storage 服务
service fdfs_storaged start
# 查看 storage 服务状态
service fdfs_storaged status
# 重启 storage 服务
service fdfs_storaged restart
# 停止 storage 服务
service fdfs_storaged stop
查看
/fastdfs/storage/store
目录可以看到 Storage 服务器创建了
65536
个文件夹用于存储客户端上传的文件
Client操作
在 Tracker 服务器的机器上编辑
tracker.conf
配置文件。
# 拷贝文件 client.conf.sample 并重命名为 client.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
# 编辑 client.conf 配置文件
vi /etc/fdfs/client.conf
修改配置文件中以下两处内容即可
# client 客户端的运行数据和日志的存储父路径(需要提前创建好)
base_path = /fastdfs/client
# tracker 服务器的 IP 和端口
tracker_server = 192.168.205.101:22122
mkdir -p /fastdfs/client
创建 Client 目录
上传文件时报错
[2021-10-12 07:33:52] ERROR - file: tracker_proto.c, line: 50, server: 192.168.205.102:23000, response status 2 != 0
[2021-10-12 07:33:52] ERROR - file: ../client/storage_client.c, line: 990, fdfs_recv_response fail, result: 2
upload file fail, error no: 2,
error info: No such file or directory
解决方法
kill关于fdfs进程后重启服务
pkill -9 fdfs
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
原因
因为storage服务多开,kill程序重启后解决