FastDFS分布式文件系统简介及单机版安装步骤详解
来源:互联网 发布:惠普打印机网络共享 编辑:程序博客网 时间:2024/06/05 19:52
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储,文件同步,文件访问(文件上传,文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站,视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份,负载均衡,线性扩容等机制,并注重高可用,高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传,下载等服务。FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用,存储节点存储文件,完成文件管理的所有功能。
1.安装环境装备
跟踪服务器:192.168.29.128存储服务器:192.168.29.129服务器环境:Centos7数据目录:/opt/fastDFS/fastDFSDatadir
2.跟踪服务器和存储服务器均执行如下操作
2.1 编译安装所需依赖包
# yum install make cmake gcc gcc-c++
2.2 解压libfastcommon-master.zip(需提前上传或下载libfastcommon-master.zip到/usr/local/src目录)
# cd /usr/local/src/# unzip libfastcommon-master.zip# cd libfastcommon-master
2.3 编译安装
# ./make.sh# ./make.sh installlibfastcommon 默认安装到了/usr/lib64/libfastcommon.so/usr/lib64/libfdfsclient.so
2.4 因为 FastDFS 主程序设置的lib目录是/usr/local/lib,所以需要创建软链接
# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
2.5 解压FastDFS(需提前上传或下载FastDFS_v5.05.tar.gz到/opt/fastDFS目录下)
# cd /opt/fastDFS# tar -zxvf FastDFS_v5.05.tar.gz# cd FastDFS
2.6 编译安装
# ./make.sh# ./make.sh install采用默认安装的方式安装,安装后的相应文件与目录:A.服务脚本在:/etc/init.d/fdfs_storaged/etc/init.d/fdfs_trackerB.配置文件在(样例配置文件)/etc/fdfs/client.conf.sample/etc/fdfs/storage.conf.sample/etc/fdfs/tracker.conf.sampleC.命令工具在/usr/bin/目录下的:fdfs_appender_testfdfs_appender_test1fdfs_append_filefdfs_crc32fdfs_delete_filefdfs_download_filefdfs_file_infofdfs_monitorfdfs_storagedfdfs_testfdfs_test1fdfs_trackerdfdfs_upload_appenderfdfs_upload_filestop.shrestart.sh
2.7 因为FastDFS服务脚本设置的bin目录是/usr/local/bin,但实际命令安装在/usr/bin,可以进入/user/bin目录使用以下命令查看fastDFS的相关命令:
因此需要修改FastDFS服务脚本中相应的命令路径,也就是把/etc/init.d/fdfs_storaged和/etc/init.d/fdfs_tracker两个脚本中的/usr/local/bin修改成/usr/bin:
# vi /etc/init.d/fdfs_trackerd使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin# vi /etc/init.d/fdfs_storaged使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin
3.配置 FastDFS 跟踪器(192.168.29.128)
3.1 复制FastDFS跟踪器样例配置文件,并重命名:
# cd /etc/fdfs/# cp tracker.conf.sample tracker.conf
3.2 创建数据目录
# mkdir -p /opt/fastDFS/fastDFSDatadir/tracker
3.3 编辑跟踪器配置文件
# vi /etc/fdfs/tracker.conf修改内容如下:disabled=falseport=22122base_path=/opt/fastDFS/fastDFSDatadir/tracker
其他配置信息保持默认,具体配置参数可以参考:FastDFS配置参数详解
3.4 防火墙中打开跟踪器端口
3.5 启动Tracker
# /etc/init.d/fdfs_trackerd start(初次成功启动,会在/opt/fastDFS/fastDFSDatadir/tracker目录下创建data,logs两个目录)
4.配置FastDFS存储(192.168.29.129)
4.1 复制FastDFS存储器样例配置文件,并重命名
# cd /etc/fdfs/# cp storage.conf.sample storage.conf
4.2 创建数据目录
# mkdir -p /opt/fastDFS/fastDFSDatadir/storage
4.3 编辑存储器样例配置文件
# vi /etc/fdfs/storage.conf修改的内容如下:disabled=falseport=23000base_path=/opt/fastDFS/fastDFSDatadir/storagestore_path0=/opt/fastDFS/fastDFSDatadir/storagetracker_server=192.168.29.128:22122http.server_port=8888
其他配置信息保持默认,具体配置参数可以参考:FastDFS配置参数详解
4.4 防火墙中打开存储器端口
4.5 启动 Storage
# /etc/init.d/fdfs_storaged start(初次成功启动,会在/opt/fastDFS/fastDFSDatadir/storage目录下创建data,logs两个目录)
5.文件上传测试(192.168.29.128)
5.1 复制FastDFS客户端样例配置文件,并重命名
# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
5.2 修改Tracker服务器中的客户端配置文件
# vi /etc/fdfs/client.conf修改内容如下base_path=/opt/fastDFS/fastDFSDatadir/trackertracker_server=192.168.29.128:22122
5.3 执行如下文件上传命令
# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/fastDFS/FastDFS_v5.05.tar.gz返回ID号:group1/M00/00/00/wKgdgVkKT42AU1H4AAVFOL7FJU4.tar.gz能返回以上文件ID,说明文件上传成功
6. 在每个存储节点上安装Nginx模块
6.1 fastdfs-nginx-module作用说明
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。假设Tracker服务器将文件上传到了192.168.29.128,上传成功后文件ID已经返回给客户端。此时FastDFS存储集群机制会将这个文件同步到同组存储192.168.29.129,在文件还没有复制完成的情况下,客户端如果用这个文件ID在192.168.29.129上取文件,就会出现文件无法访问的错误。而fastdfs-nginx-module可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。(解压后的fastdfs-nginx-module在nginx安装时使用)
6.2 上传 fastdfs-nginx-module_v1.16.tar.gz 到/usr/local/src
6.3 解压
# cd /usr/local/src/# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
6.4 修改fastdfs-nginx-module的config配置文件
# cd fastdfs-nginx-module/src# vi configCORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"修改为:CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"(注意:这个路径修改是很重要的,不然在Nginx编译的时候会报错)
6.5 编译安装Nginx的时候添加fastdfs-nginx-module
如果对Nginx编译安装不熟悉的话,可以参考我之前的博客:Nginx编译安装详细教程及常用命令介绍
这里只需在配置Nginx参数的时候 使用如下命令添加模块# ./configure --prefix=/opt/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src
6.6 复制fastdfs-nginx-module源码中的配置文件到/etc/fdfs目录,并修改
# cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/# vi /etc/fdfs/mod_fastdfs.conf修改以下配置:connect_timeout=10base_path=/tmptracker_server=192.168.29.128:22122storage_server_port=23000group_name=group1url_have_group_name = truestore_path0=/opt/fastDFS/fastDFSDatadir/storage
6.7 复制FastDFS的部分配置文件到/etc/fdfs目录
# cd /opt/fastDFS/FastDFS/conf# cp http.conf mime.types /etc/fdfs/
6.8 在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录
ln -s /opt/fastDFS/fastDFSDatadir/storage/data /opt/fastDFS/fastDFSDatadir/storage/data/M00
6.9 配置Nginx
在http节点下添加以下server配置server{ listen 8888; server_name localhost; location ~/group([0-9])/M00{ ngx_fastdfs_module; } } A.8888端口值是要与/etc/fdfs/storage.conf中的http.server_port=8888相对应,因为http.server_port默认为 8888,如果想改成80,则要对应修改过来B.Storage对应有多个group的情况下,访问路径带group名,如/group1/M00/00/00/xxx,对应的 Nginx 配置为:location ~/group([0-9])/M00 { ngx_fastdfs_module;} C.如查下载时如发现老报404,将nginx.conf第一行user nobody修改为user root后重新启动
6.10 防火墙中打开Nginx的8888端口
6.11 重启Nginx
6.12 访问http://192.168.29.129:8888/group1/M00/00/00/wKgdgVkKT42AU1H4AAVFOL7FJU4.tar.gz下载刚刚上传的文件,如果成功下载,则说明配置都成功了
注意:千万不要使用kill -9命令强杀FastDFS进程,否则可能会导致binlog数据丢失
源码地址:https://github.com/happyfish100/
下载地址:http://sourceforge.net/projects/fastdfs/files/
官方论坛:http://bbs.chinaunix.net/forum-240-1.html
- FastDFS分布式文件系统简介及单机版安装步骤详解
- 分布式文件系统 fastDFS 安装步骤
- 分布式文件系统fastdfs安装步骤
- FastDFS分布式文件系统简介
- 【FastDFS】分布式文件系统简介
- 分布式文件系统FastDFS详解
- fastdfs nginx 搭建分布式文件系统(单机模式)
- FastDFS单机版安装
- FastDfs分布式文件系统+Ngnix安装
- FastDFS分布式文件系统集群安装
- 分布式文件系统 - FastDFS 安装部署
- FastDFS文件服务器安装配置详解及使用入门(单机学习)
- 分布式文件系统FastDFS+nginx配置详解
- FastDFS+Nginx轻量级分布式文件系统安装使用
- FastDFS+Nginx轻量级分布式文件系统安装使用
- 三、分布式文件系统fastDFS-安装部署
- FastDFS分布式文件系统集群安装与配置
- FastDFS分布式文件系统集群安装与配置
- 广联达C++开发 笔试题
- swift——运算符——特有
- 郑轻ACM 1734: 堆(DFS)
- mysql 错误:Field '字段' doesn't have a default value
- "A more recent version of this document is supported by this" JPA persistence.xml问题
- FastDFS分布式文件系统简介及单机版安装步骤详解
- vector基本用法
- SAP HANA数据类型
- 已知二叉树的中序和前序序列(或后序)求解树
- The 2016 ACM-ICPC Asia Dalian Regional Contest(汇总)
- 【设计模式】观察者模式
- TabError: Inconsistent use of tabs and spaces in indentation
- C#150课的主要内容
- C++第五次作业