FastDFS是一款开源的分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS特别适合以文件为载体的在线服务,如图片、视频、文档等等。
FastDFS为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性。FastDFS可以看做是基于文件的key value存储系统,key为文件ID,value为文件内容,因此称作分布式文件存储服务更为合适。
- FastDFS特点如下:
- 分组存储,简单灵活;
- 对等结构,不存在单点;
- 文件ID由FastDFS生成,作为文件访问凭证。FastDFS不需要传统的name server或meta server;
- 大、中、小文件均可以很好支持,可以存储海量小文件;
- 一台storage支持多块磁盘,支持单盘数据恢复;
- 提供了nginx扩展模块,可以和nginx无缝衔接;
- 支持多线程方式上传和下载文件,支持断点续传;
- 存储服务器上可以保存文件附加属性。
1. 准备安装文件
- 安装文件:fastdfs,libfastcommon,fastdfs-nginx-module
- 文件存放位置:/usr/local/src
1 | cd /usr/local/src |
2. 编译安装
准备编译环境
1 | yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y |
2.1 编译安装libfatscommon
1 | cd /usr/local/src/libfastcommon-1.0.43 |
检查(出现libfastcommon.so即成功)
1 | ls /usr/lib64|grep libfastcommon |
2.2 编译安装fastdfs
1 | cd /usr/local/src/fastdfs-6.06 |
检查
1 | ls /usr/bin|grep fdfs |
3. 配置Tracker(FastFDS跟踪器)
- 启用并修改配置文件
1 | cd /etc/fdfs/ |
- 创建Tracker基础数据目录,即base_path对应的目录
1 | mkdir -p /fastdfs/tracker |
- 启动Tracker服务
1 | 启动 |
- 设置开机启动
1 | systemctl enable fdfs_trackerd.service |
4. 配置Storage(FastFDS存储器)
- 启用并修改配置文件
1 | cd /etc/fdfs/ |
- 创建Tracker基础数据目录,即base_path对应的目录
1 | 对应base_path |
- 启动Storage服务
1 | 启动 |
- 查看Storage和Tracker是否在通信
1 | /usr/bin/fdfs_monitor /etc/fdfs/storage.conf |
- 设置开机自启
1 | systemctl enable fdfs_storaged.service |
5. 客户端配置
- 启用修改Client配置文件
1 | cd /etc/fdfs/ |
- 创建Client基础数据目录
1
mkdir -p /fastdfs/client
6. 配置Nginx模块
安装配置fastfds-nginx-module模块
- 进入 /usr/local/src/fastdfs-nginx-module-1.22/src/
1 | cd /usr/local/src/fastdfs-nginx-module-1.22/src/ |
- 编辑配置文件(FastDFS 服务脚本设置的 bin 目录是 /usr/local/bin, 但实际命令安装在 /usr/bin/ 下)
1 | vim config |
- 进入 nginx 解压目录,添加fastdfs-nginx-module
1 | cd /mnt/newdatadrive/apps/nginx-1.18.0 |
若是SSL(https),没有SSL证书忽略此步
1 | ./configure --add-module=/mnt/newdatadrive/apps/fastdfs/fastdfs-nginx-module-1.22/src/ --with-http_ssl_module |
- 编译安装
1 | make && make install |
- 复制并修改fastdfs-ngin-module中的配置文件
1 | cp /usr/local/src/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/ |
- 进入fastdfd源码conf目录,将http.conf,mime.types两个文件拷贝到/etc/fdfs/目录下
1 | cd /usr/local/src/fastdfs-6.06/conf/ |
- 创建一个软连接,在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据 的目录(可以省略)
1 | ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00 |
- 编辑Nginx配置
1 | vi /usr/local/nginx/conf/nginx.conf |
- 启动Ngnix
1 | /usr/local/nginx/sbin/nginx |
7. 测试
1 | 下载测试图片到本地 |
与ip拼接后浏览器访问:http://192.168.2.100/group1/M00/00/00/wKgCZF_YlreAcZCZAAHolZLymZE514.png