FastDFS分布式文件系统简介:
FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
核心点:跟踪(Tracker)服务器、存储(Storage)服务器
整体结构图:
虚拟机环境 : Centos7
准备的安装包( 版本以我此次安装的版本为背景,如需安装其他本版请自行百度! ):
FastDFS_v5.05.tar.gz
libfastcommon-master.zip(是从FastDFS和FastDHT中提取出来的公共C函数库)
fastdfs-nginx-module_v1.16.tar.gz
nginx-1.6.2.tar.gz
源码地址:https://github.com/happyfish100/
下载地址:http://sourceforge.net/projects/fastdfs/files/
官方论坛:http://bbs.chinaunix.net/forum-240-1.html
安装步骤:
1.上传或者在线下载我们所需要的安装包
(在这里我在home下创建了一个文件夹 fastdfs 来放 存放这些安装包,方便在配置环境的时候寻找)
上传我用的是xshell里面的xftp
如果是在线下载的话,先进入到创建好的文件夹下
cd /home/fastdfs
在线下载
weget +资源的网址
2.安装FastDFS安装和编译的依赖包
yum install make cmake gcc gcc-c++
3.安装libfastcommon
1).首先将我们准备好的 libfastcommon-master.zip 解压
unzip libfastcommon-master.zip
2).解压完进入libfastcommon-master
cd libfastcommon-master
然后执行(两个命令,按照先后顺序执行)
./make.sh
./make.sh install
出现上图所示,代表libfastcommon安装编译成功。
4.安装FastDFS
1).同样是解压FastDFS_v5.05.tar.gz
tar -zxvf fastdfs-5.05.tar.gz
解压完进入FastDFS,依次执行
./make.sh
./make.sh install
没报错并且出现如上图所示,代表着安装成功,现在进入它提示的路径 cd /etc/fdfs/ 看下
现在的话咱们FastDFS安装成功,接下来复制一下这三个文件并且重名成正式使用的配置文件
cp client .conf .sample client .conf
cp storage .conf .sample storage .conf
cp tracker .conf .sample tracker .conf
至此,FastDFS安装完成,接下来配置 Tracker和Storage。
5.配置 Tracker
1).在配置Tracker之前,我们需要创建Tracker服务器的文件路径,用于存储Tracker的数据文件和日志文件等等,在这里我选择在/home/fastdfs目录下创建一个fastdfs_tracker文件。
mkdir fastdfs_tracke
2).创建好 tracke 的文件后,我们到/etc/fdfs/目录下,配置 tracker.conf文件
vim tracker.conf
主要修改下面四项配置(我这里有的没有修改,用的默认配置):
disabled=false #启用配置文件(默认启用)
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/home/fastdfs/fastdfs_tracker #设置tracker的数据文件和日志目录
http.server_port=8080 #设置http端口号,默认为8080
修改完后,按Esc键,然后:wq,保存退出。
3).配置完不要着急启动 tracker服务,我们还要为启动脚本创建软引用,因为 fdfs_trackerd等命令在/usr/local/bin中并没有,而是在/usr/bin路径下,命令如下:
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
![centos7 搭建 FastDFS 分布式文件系统_第7张图片](http://img.e-com-net.com/image/info8/26f6be2fd2c445aea4b5150b586ce6cc.png)
现在的话我们就可以启动 tracker 服务了,
service fdfs_trackerd start
出现以上提示代表启动成功,然后我们看下 tracker服务运行的 22122的端口是否被正常监听:
netstat -unltp|grep fdfs
4). 确认 tracker服务启动没问题后,我们将tracker服务设置为开机启动,修改 /etc/rc.d/下的rc.local文件:
vim /etc/rc.d/rc.local
加入 service fdfs_trackerd start 入下图所示:
然后保存退出。至此tracker配置完成,下面咱们配置 Storage。
6.配置 Storage
1.) 与配置tracker差不多,首先我们要先创建一个文件夹用于存储Storage的数据文件和日志文件等等,与tracker不同的是,我们还要多创建一个文件夹用来存放Storage接收的文件,我首先选择在/home/fastdfs目录下创建一个fastdfs_Storage文件,然后再创建一个fastdfs_storage_data文件,进入/home/fastdfs目录下:
cd /home/fastdfs
mkdir fastdfs_storage
mkdir fastdfs_storage_data
2.) 接下来修改/etc/fdfs目录下的storage.conf配置文件:
disabled=false #启用配置文件(默认启用)
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path= / home/fastdfs /fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0= / home/fastdfs /fastdfs_storage_data #实际文件存储路径
tracker_server=192.168.40.129:22122 #tracker 服务器的 IP地址和端口号,单机搭建IP不要写127.0.0.1(此处的ip是我的CentOS虚拟机ip)
http.server_port=8888 #设置 http 端口号
配置完成后同样要为Storage服务器的启动脚本设置软引用: ln -s /usr/bin/fdfs_storaged /usr/local/bin
启动Storage服务:service fdfs_storaged start
OK,启动成功!启动成功后,在 fastdfs_storage_data文件下面会生成多级储存目录:
再看下监听端口: netstat -unltp |grep fdfs
端口也可以正常监听,最后我们把storage服务添加到开机启动中,和添加tracker服务一样,修改 /etc/rc.d/下的rc.local文件:
vim /etc/rc.d/rc.local
加入 service fdfs_storaged start 入下图所示:
保存并推出,至此storage服务器就已经配置完成。
3). tracker、 storage服务器 都配置好并且启动完成后,我们要把storage服务器整合到 tracker服务器,运行以下命令:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
看到
说明 storage服务器整合tracker服务器成功,接下来让咱们配置一下客户端。
7.配置 client
编辑/etc/fdfs目录下的client.conf 文件:
base_path= / home/fastdfs /fastdfs_tracker #tracker服务器文件路径
tracker_server=192.168.40.129:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=8080 # tracker 服务器的 http 端口号,必须和tracker的设置对应
编辑完之后,我们在 / home/目录下上传一张图片,
然后执行客户端的上传命令,把图片传上去:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/1.jpg
当你看到返回地址的时候,恭喜你,上传功能没毛病!路径具体的信息在此我就不解释了,请大家自行百度。
到此为止, fastdfs的所有配置咱们就配置完了,上传也没毛病,可是咱们不光要上传,还要查看和下载,但是fastdfs4.0.5版本以后已经移除了自带的 HTTP支持,咱们拿虚拟机的地址和storage的端口号加上咱们上传成功返回的路径你并不能访问到你上传的图片,所以,工作还没完,咱们还要用到 fastdfs-nginx-module和nginx。
8.安装配置fastdfs-nginx-module
fastdfs-nginx-module和nginx提供了HTTP服务并且解决了group中storage服务器的同步延迟问题(这里提供一个fastdfs-nginx-module的下载地址: https://github.com/happyfish100/fastdfs-nginx-module)。
既然要用到nginx,那咱们就需要用到一些依赖库,依次执行如下命令安装依赖库:
yum -y install pcre pcre -devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
安装完依赖库之后,我们解压我们准备好的 nginx-1.6.2.tar.gz包:
tar -zxvf nginx-1.6.2.tar.gz
然后再解压fastdfs-nginx-module_v1.16.tar.gz包:
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
解压完fastdfs-nginx-module_v1.16.tar.gz之后,进入/fastdfs-nginx-module/src目录下修改一下config文件:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
两个都解压完成之后,进入nginx目录下,运行一下命令进行配置:
./configure --add-module=/home/fastdfs/fastdfs-nginx-module /src
接着执行
make && make install
编译完成不报什么错的话,接下来 复制/fastdfs-nginx-module/src 目录下的 config 文件到 /etc/fdfs 目录,并修改
cp / home/fastdfs /fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
修改以下配置:
connect_timeout=10
base_path=/home/fastdfs/fastdfs_storage #你的storage文件和日志路径
tracker_server=192.168.40.129:22122 #tracker服务器文件路径,一定要跟自己的对应起来 storage_server_port=23000 #storage服务端的端口
group_name=group1 #组名
url_have_group_name = true
store_path0=/home/fastdfs/fastdfs_store_data #你的storage存储文件路径
group_count = 3
添加
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs/fastdfs_storage_data
#
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs/fastdfs_storage_data
#
[group3]
group_name=group
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs/fastdfs_storage_data
复制/home/fastdfs/FastDFS/conf 的部分配置文件到 /etc/fdfs 目录
cp -r /home/fastdfs/FastDFS/conf /http.conf /etc/fdfs/
cp -r /home/fastdfs/FastDFS/conf /mime.types /etc/fdfs/
接下来还需要建立 M00 至存储目录的软连接:
ln -s / home/fastdfs /fastdfs_storage_data/ data / home/fastdfs /fastdfs_storage_data/ data / M00
然后,配置一下nginx:
vim /usr/local/nginx/conf/nginx.conf
将第一行解开注释并修改为user root; 然后 在 server{} 添加
listen 8888; #这个8888端口对应storage服务的端口
server_name localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
在启动 nginx之前我们要把该暴露的端口都添加到防火墙中,执行一下命令:
firewall-cmd --zone=public --add-port=22122/tcp --permanent
firewall-cmd --zone=public --add-port=8888/tcp --permanent
添加完端口,重启下防火墙:
firewall-cmd --reload
然后查看端口是否暴露:
firewall-cmd --list-all
最后启动nginx:
/usr/local/nginx/sbin/nginx
启动成功后,还记得之前测试上传图片返回的路径吗?如果不记得,那就再上传一张图片,记下返回路径,在浏览器中打开 http://192.168.40.129:8888/group1/M00/00/00/wKgogVqmMuqAOLZdAAQAy1GpSfg602.jpg(这是我本机的ip和路径)就可以看到你上传的图片了
这样咱们就搭建完了fastdfs分布式文件系统,
上传地址为:192.168.40.129:2212
下载地址为:192.168.40.129:8888
具体地址和端口还是要以你搭建中设置的为准!!此篇仅供互相学习参考,并不是完全正确,欢迎指正欢迎提出建议!!