FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
直接通过 Github:https://github.com/happyfish100 下载 libfastcommon,fastdfs,fastdfs-nginx-module 三个项目对应的压缩包或者使用 git 命令下载,或者通过资源地址:https://sourceforge.net/projects/fastdfs/files/ 下载。
libfastcommon:从 fastdfs 项目和 fastdht 项目中提取出来的公共 C 函数库。fastdfs:FastDFS 核心项目。
fastdfs-nginx-module:Nginx 整合 FastDFS 时 Nginx 需要添加的模块资源。
详细可见:https://www.lhwblog.top/archives/126/
准备:
安装c环境
yum install -y make cmake gcc -c++
安装解压工具
yum install -y unzip
通过Xftp工具上传文件(libfastcommon,fastdfs,fastdfs-nginx-module)至至/usr/local/src 目录后并解压。
unzip libfastcommon-master.zip
编译并安装。
进入解压后的 libfastcommon-master 目录
== cd libfastcommon-master ==
#编译并安装
./make.sh && ./make.sh install
libfastcommon 默认安装在 /usr/lib64 和 /usr/include/fastcommon 两个目录中,并且会在 /usr/lib 目录中创建软链接。
解压
解压 fastdfs 至当前所在目录unzip fastdfs-master.zip
进入解压后的 libfastcommon-master 目录 cd fastdfs-master # 编译并安装 ./make.sh && ./make.sh install
启动Tracker
查看 /etc/fdfs 目录下所有配置文件。
编辑 tracker.conf 配置文件。
vi /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服务
编辑 storage.conf 配置文件
拷贝文件 storage.conf.sample 并重命名为 storage.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
编辑 storage.conf 配置文件
vi /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.10.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操作:
FastDFS 向使用者提供基本文件访问接口,比如 upload、download、append、delete 等,以客户端库的方式提供给用户使用。
在 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.10.101:22122
mkdir -p /fastdfs/client 创建 Client 目录。
测试:
上传
上传命令格式为:fdfs_upload_file /etc/fdfs/client.conf 要上传的文件
下载
下载命令格式为:fdfs_download_file /etc/fdfs/client.conf group_name/remote_filename。
如:
fdfs_test /etc/fdfs/client.conf download group1 M00/00/00/wKgKZl9smB-AVBRKAADhaCZ_RF0518.jpg
删除
删除命令格式为:fdfs_delete_file /etc/fdfs/client.conf 要删除的文件。
如:fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgKZl9smB-AVBRKAADhaCZ_RF0518.jpg