FastDFS¶
FastDFS 是一个由 C 语言实现的开源的轻量级分布式文件系统。
FastDFS 有两个角色:Tracker,Storage:
- Tracker 主要做调度作用,起到负载均衡的作用;负责管理所有的 Storage 和 Group,每一个 Storage 再启动后会连接 Tracker,告知自己所属的 Group,并保持周期心跳;
- Storage 存储节点,主要提供容量和备份服务;以 Group 为单位,每个 Group 内可以有多台 Storage,数据互相备份。
安装¶
如果 Tracker 和 Storage 在不同的机器上,则每台服务器都需要安装。
# 先安装 libfastcommon
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
tar -zxvf V1.0.7.tar.gz
cd libfastcommon-1.0.7
./make.sh
./make.sh install
# 再安装 fastdfs
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
tar -zxvf V5.05.tar.gz
cd fastdfs-5.05
./make.sh
./make.sh install
安装成功后,会生成 /etc/fdfs
目录,包含三个配置的示例文件。
配置¶
在 /etc/fdfs
目录下,复制并修改配置:
关键配置:
- base_path 设置数据存储目录,例如:
/data/fastdfs/tracker
- port 是Tracker 服务端口,默认 22122
Tracker 服务命令
启动完成后,base_path 对应目录下会生成 data
和 log
两个目录。
对于 Storage 配置相似,在 /etc/fdfs
目录下:
关键配置:
- base_path 设置数据存储目录,例如:
/data/fastdfs/storage
- port 是 Storage 服务端口,默认 23000
- tracker_server 对应 Tracker 的地址,即
:
Storage 服务命令
启动完成后,base_path 对应目录下也会生成 data
和 log
两个目录,其中 data
即是上传文件的存储目录。
测试¶
任意机器,在 etc/fdfs
目录下,复制修改 client 配置:
关键配置:
- base_path 设置日志存储目录,例如:
/data/fastdfs/client
- tracker_server 对应 Tracker 的地址,即
:
上传任意文件:
返回 'example file url' 即成功,同时 Storage 存储目录下可以发现上传的文件。
HTTP 访问¶
在 Nginx 的配置中添加 location
开机启动¶
编辑 vim /etc/rc.d/rc.local
添加启动命令:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
如果失败,为该文件添加权限: