FastDFS 简介
FastDFS 是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储、文件同步和文件访问,以及高容量和负载均衡。
它的架构主要分为 3 部分:
- Tracker Server:跟踪服务器,起调度和负载均衡的作用。它会在内存中记录存储组和存储服务器的状态信息,是客户端和存储服务器的交通枢纽。
- Storage Server:存储服务器,Storage 集群采用分组管理方式,每个 Storage Server 属于一个 group,一个 group 有多个 Storage Serve。组间的存储服务器互不通信,组内的存储服务器会相互连接进行文件同步。每个存储服务器会定时向所有的 Tracker Server 报告自身状态,如磁盘剩余、文件同步状况、文件上传下载等统计信息。
- Client:客户端,上传下载服务器,也就是我们的项目所部署的服务器。
下面这两张图详细的解释了上传和下载文件时,3 个部分是如何通信的:
上传文件
下载文件
FastDFS 安装
- 安装 gcc、make,因为 FastDFS 是 C 语言写的,需要编译:
sudo apt-get install gcc
sudo apt-get install make
- 安装 libfatscommon
进入 /usr/local/src
文件夹,下载 libfatscommon 并编译、安装:
cd /usr/local/src
sudo git clone https://github.com/happyfish100/libfastcommon.git
cd libfastcommon/
sudo ./make.sh
sudo ./make.sh install
ibfastcommon.so 默认安装到了 /usr/lib64/libfastcommon.so
,但是 FastDFS 主程序设置的 lib 目录是 /usr/local/lib
,所以此处需要设置软链接,将 lib 库文件添加到 usr/local/bin
(用户放置自己的可执行程序)中:
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
- 安装 FastDFS
下载地址:FastDFS
将 .zip 文件复制到 /usr/local/src/
文件夹下,解压,安装:
sudo cp fastdfs-5.12.zip /usr/local/src/
cd /usr/local/src/
sudo unzip fastdfs-5.12.zip
cd fastdfs-5.12/
sudo ./make.sh
sudo ./make.sh install
安装完后,会生成 4 个 .sample 示例配置文件,这几个文件以后做项目会用得到。
至此,FastDFS 安装完毕。
FastDFS 单机部署
- 将
etc/fdfs
目录中的tracker.conf.sample
,storage.conf.sample
,client.conf.sample
3 个文件复制到项目目录中,并重命名,将.sample
去掉。项目目录中新建 4 个文件夹,分别为:tracker
,storage
,storage_data
,client
。 - 编辑
tracker.conf
,修改以下几项:
# tracker服务器端口,默认 22122,一般不用修改
port=22122
# 填写上面创建的 tracker 文件夹路径
base_path= # tracker 服务器存储数据和日志的根目录
- 编辑
storage.conf
:
# storage服务器端口,默认23000,一般不用修改
port=23000
# 填写上面创建的 storage 文件夹路径
base_path= # storage 服务器存储数据和日志的根目录
# 填写上面创建的 storage_data 文件夹路径
store_path0= # 实际文件存储路径
tracker_server=xxx.xxx.xxx.xxx:22122 # tracker服务器 IP 和端口(注意,这里不可填写 127.0.0.1,否则不能启动)。
- 编辑
client.conf
:
# 填写上面创建的 client 文件夹路径
base_path=
tracker_server=xxx.xxx.xxx.xxx:22122 #tracker服务器 IP 和端口(注意,这里不可填写 127.0.0.1,否则不能启动)。
- 启动 FastDFS
fdfs_trackerd ./tracker.conf
fdfs_storaged ./storage.conf # 如果启动不成功,请填写绝对路径
查看是否成功:
pa aux | grep fdfs
如图,则启动成功:
- 检测 FastDFS
fdfs_upload_file ./client.conf xxx.png # 返回文件 ID,表示成功,如 group1/M00/00/00/yyy.png
参考
- happyfish100/fastdfs
- Fastdfs 单节点安装使用教程整理
- 分布式文件系统 - FastDFS 简单了解一下