1.FastDFS
FastDFS是由淘宝的余庆先生所开发的一个轻量级、高性能的开源分布式文件系统。用纯C语言开发,功能丰富:
-
文件存储
-
文件同步
-
文件访问(上传、下载)
-
存取负载均衡
-
在线扩容
2.架构图
FastDFS两个主要的角色:Tracker Server 和 Storage Server 。
-
Tracker Server:跟踪服务器,主要负责调度storage节点与client通信,在访问上起负载均衡的作用,和记录storage节点的运行状态,是连接client和storage节点的枢纽。
-
Storage Server:存储服务器,保存文件和文件的meta data(元数据),每个storage server会启动一个单独的线程主动向Tracker cluster中每个tracker server报告其状态信息,包括磁盘使用情况,文件同步情况及文件上传下载次数统计等信息
-
Group:文件组,多台Storage Server的集群。上传一个文件到同组内的一台机器上后,FastDFS会将该文件即时同步到同组内的其它所有机器上,起到备份的作用。不同组的服务器,保存的数据不同,而且相互独立,不进行通信。
-
Tracker Cluster:跟踪服务器的集群,有一组Tracker Server(跟踪服务器)组成。
-
Storage Cluster :存储集群,有多个Group组成
3.上传和下载流程
上传:客户端上传图片后返回一个ip
存放着该图片在Storage中的位置
下载:携带返回的该id,找到在Storage中的位置。
4.安装和使用
需要的安装包
安装依赖
安装GCC依赖
sudo yum -y install gcc
安装unzip工具
sudo yum install -y unzip zip
安装unzip工具
sudo yum install -y unzip zip
安装Nginx所需依赖
sudo yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
安装libfastcommon-master
解压刚刚上传的libfastcommon-master.zip
unzip libfastcommon-master.zip
进入解压完成的目录:
cd libfastcommon-master
编译并且安装:
sudo ./make.sh sudo ./makesh install
安装FastDFS
编译安装
解压
tar -xvf FastDFS_v5.08.tar.gz
进入目录
cd FastDFS
编译并安装
sudo ./make.sh sudo ./make.sh install
校验安装结果
安装完成,我们应该能在/etc/init.d/
目录,通过命令ll /etc/init.d/ | grep fdfs
看到FastDFS提供的启动脚本:
-
fdfs_trackerd
是tracker启动脚本 -
fdfs_storaged
是storage启动脚本
我们可以在 /etc/fdfs
目录,通过命令查看到以下配置文件模板:
启动tracker
FastDFS的tracker和storage在刚刚的安装过程中,都已经被安装了,因此我们安装这两种角色的方式是一样的。不同的是,两种需要不同的配置文件。
我们要启动tracker,就修改刚刚看到的tarcker.conf
,并且启动fdfs_trackerd
脚本即可。
-
编辑tracker配置
首先我们将模板文件进行赋值和重命名: