前言:
以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬着头皮去学习怎样安装配置,由于linux基础不好,安装配置起来感觉有点费力,不得不随时去查找一些资料,好在经过这几天的努力安装配置fastdfs最终还是搞定了,最终的付出并没有白费,以下是个人的见解,如有误差,请多多指导。不了解fastdfs的童鞋可以先去了解下,
一、简介
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等
1.fastdfs架构如下图示:
FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)。
tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,重庆IT外包,是客户端和数据服务器交互的枢纽。相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。
storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。
client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。
二、文件上传和下载的交互过程
客户端(client)询问Tracker server上传到的Storage server
1.client->Tracker server(返回一台可用的Storage server,返回的数据为该Storage server的IP地址和端口)
2.client直接与1返回的Storage server建立连接->文件上传成功后->Storage server会返回新生成的文件ID->结束
文件下载流程的步骤如下:
1. client询问Tracker server可以下载指定文件的Storage server,参数为文件ID(包含组名和文件名);
2. Tracker server返回一台可用的Storage server;
3. client直接和该Storage server建立连接,完成文件下载。
系统环境Centor7 64位,本文只安装一个tracker和storage在同一台服务器
准备安装包
首先下载如下的安装包(下载地址,请查看本文最后的下载地址部分):
三、安装过程
由于fastdfs5.0.5依赖libevent,所以我们先安装libevent,其中openssl,pcre,zlib是nginx的依赖,由于需要使用apt-get命令安装软件,但此处出现资源不可用的情况或者无效的指令,所以需要手动去安装这些依赖确实会很麻烦,下文会说到,此处是先解释上图的文件,以防有些童鞋误导。
安装步骤如下:
登陆linux系统,切换用户到root用户下
1.安装libevent
cd /root(对应存放libevent压缩文件的目录)
tar -zxvf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
make clean
./configure
make
make install
最后,如果是
32位linux:
ln –s /usr/local/libevent/libevent-2.0.so.5 /usr/lib/
64位linux:
ln -s /usr/local/libevent/libevent-2.0.so.5 /usr/lib64/
2.FastDFS安装
tar -zxvf FastDFS_v4.06.tar.gz
cd FastDFS_v4.06
./make.sh
./make.sh install
如果没报错就表示安装成功了,创建了上面的软链接安装基本就没问题了
2.1:安装成功后,/etc/fdfs目录下会有相关配置文件:
client.conf
http.conf
mime.types
storage.conf
tracker.conf
修改配置文件:
配置tracker
gedit tracker.conf
2.2:修改配置文件的这几项(根据数据情况修改):
disabled=false #启用配置文件
port=22122 #设置tracker的端口号
base_path=/data/fastdfs/trackerd #设置tracker的数据文件和日志目录(需预先创建)
http.server_port=18080 #设置http端口号
启动trackerd服务
/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
如需要的开机自动开启的情况:
# echo '/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart' >> /etc/rc.d/rc.local
通过如下命令查看trackerd服务是否启动:
netstat -tupln | grep trackerd
也可以通过查看日志文件看下有没有出错(/data/fastdfs/tracker/logs是前面配置的路径),如果没有报错,应该trackerd服务启动了。
配置storage.conf
gedit storage.conf