目录
一、FastDFS的介绍
FastDFS是一款开源的分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS特别适合以文件为载体的在线服务,如图片、视频、文档等等服务。
FastDFS作为一款轻量级分布式文件系统,版本V6.01代码量6.3万行。FastDFS用C语言实现,支持Linux、FreeBSD、MacOS等类UNIX系统。FastDFS类似google FS,属于应用级文件系统,不是通用的文件系统,只能通过专有API访问,目前提供了C客户端和Java SDK,以及PHP扩展SDK。
FastDFS为互联网应用量身定做,解决大容量文件存储问题,实现高性能和高扩展性。FastDFS可以看做是基于文件的key value存储系统,key为文件ID,value为文件本身,因此称作分布式文件存储服务更为合适。
FastDFS的架构,如下图所示:
FastDFS特点:
(1)分组存储,简单灵活;
(2)对等结构,不存在单点;
(3)文件ID由FastDFS生成,作为文件访问凭证。FastDFS不需要传统的name server或meta server;
(4)大、中、小文件均可以很好支持,可以存储海量小文件;
(5)一台storage支持多块磁盘,支持单盘数据恢复;
(6)提供了nginx扩展模块,可以和nginx无缝衔接;
(7)支持多线程方式上传和下载文件,支持断点续传;
(8)存储服务器上可以保存文件附加属性。
二、使用的系统软件
名称 | 说明 |
---|---|
Linux发行版 | CentOS和Ubuntu之类的Linux可使用安装包 |
libfastcommon | FastDFS分离出的公用函数库 |
libserverframe | FastDFS分离出的网络框架 |
FastDFS | FastDFS本体 |
fastdfs-nginx-module | FastDFS和nginx的关联模块 |
Nginx | Nginx1.25.0 |
FastDFS的源码地址:
Githup地址:https://github.com/happyfish100/fastdfs
Gitee地址:https://gitee.com/fastdfs100/fastdfs
三、编译环境
需要git以及C/C++编译环境
sudo apt install git gcc g++ make automake autoconf libtool pcre2-utils libpcre2-dev zlib1g zlib1g-dev openssl libssh-dev wget vim -y
四、磁盘目录
说明 | 位置 |
---|---|
所有安装包 | /usr/local/src |
数据存储位置 | /home/dfs/ |
五、安装
1.安装libfastcommon
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #编译安装
cd ../ #返回上一级目录
2.安装libserverframe
git clone https://github.com/happyfish100/libserverframe.git --depth 1
cd libserverframe/
./make.sh && ./make.sh install #编译安装