【架构技术】FastDFS环境搭建,架构fastdfs搭建
【架构技术】FastDFS环境搭建,架构fastdfs搭建
【前言】
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。——百度百科 那么我们要如何在服务器上搭建一个FastDFS的环境呢? 【正文】文档概述
本文档适用于开始了解FastDFS技术的人使用,涉及到该技术的产生背景,使用场景和环境配置等。(更对深入学习请参考《FastDFS技术研究指南》)
1. 环境配置
1.1兼容版本
·服务器使用的系统为CentOS Linux release7.0.1406
·fastdfs版本为5.0.9稳定版
2. 背景需求
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
3. 架构简介
4. 安装及配置使用
4.1安装配置手册
4.1.1安装工具包和依赖环境
yum install wget
yum install -y unzip zip
yum -y groupinstall'Development Tools'
4.1.2下载相关软件包并解压
在/usr/local/src文件夹下执行下载操作
·fastdfs-5.08:wget https://codeload.github.com/happyfish100/fastdfs/zip/master
·libfastcommon-master,1.27:wget https://github.com/happyfish100/libfastcommon/archive/master.zip
·fastdfs-nginx-module:
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
· Lua(ngx_openresty ):
wget http://openresty.org/download/ngx_openresty-1.7.10.1.tar.gz
4.1.3安装fastdfs依赖环境libfastcommon-master
执行命令:
cd libfastcommon-master
./make.sh
./make.sh install
安装完毕,自动创建了三个文件夹,并将一些文件(*.so | *.h)安装到了以下文件中
4.1.4安装fastdfs
执行命令:
cd fastdfs-master
./make.sh
./make.sh install
执行结果:将相关文件存储到以下文件
4.1.5创建文件夹
#存放data和log
mkdir -p /data/fdfs/
mkdir -p /data/nginx
#存放 error.log mod_nginx.log
mkdir -p /data/nginx/logs
4.1.6拷贝配置文件
cp /etc/fdfs/tracker.conf.sample/etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample/etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample/etc/fdfs/client.conf
4.1.7配置tracker
:
修改内容:
日志文件存储路径为/data/fdfs
执行权限:root
启动:/usr/bin/fdfs_trackerd/etc/fdfs/tracker.conf start
4.1.8配置storage
vim /etc/fdfs/storage.conf
修改内容:
日志文件存储路径为/data/fdfs
执行权限:root
组名
tracker服务器地址
存储文件路径
启动:/usr/bin/fdfs_storaged/etc/fdfs/storage.conf start
创建链接:ln -s/data/fdfs/data /data/fdfs/data/M00
4.1.9配置storage测试端
、
修改内容:
日志文件存储路径:/data/fdfs
tracker服务器地址
bath_path =/data/fdfs
tracker_server=*.*.*.*
本地测试上传
/usr/bin/fdfs_test /etc/fdfs/client.confupload /etc/fdfs/storage.conf
4.1.10搭建nginx_openresty
安装编译环境
yum install pcre-devel opensslopenssl-devel
安装nginx_openresty包:
cd /usr/local/src/ngx_openresty-1.7.10.1
./configure --with-luajit--with-ttp_stub_status_module --with-http_ssl_module --with-http_realip_module--add-module=../fastdfs-nginx-module-master/src
//./configure --add-module=../fastdfs-nginx-module-master/src
gmake
gmake install
配置mod_fastdfs.conf
将mod_fastdfs.conf复制到/etc/fdfs目录下
cp/usr/local/src/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
编辑配置文件
vim /etc/fdfs/mod_fastdfs.conf
修改内容:
添加http.conf和mime.types文件到/etc/fdfs
cd /usr/local/src/fastdfs-master/conf
sudo cp http.conf mime.types /etc/fdfs/
vim/usr/local/openresty/nginx/conf/nginx.conf
启动:/usr/local/openresty/nginx/sbin/nginx
4.1.11防火墙设置
安装插件:yum install firewalld 安装firewalld
状态查看: firewall-cmd--state
开启:service firewalld start
关闭:service firewalld stop
添加端口号:
查看正在开启端口:iptables -L -n
查看刚添加的开启端口:firewall-cmd --zone=public --list-port
添加:firewall-cmd --zone=public --add-port=******/tcp--permanent (**代表端口号)
重启防火墙:firewall-cmd --reload
查看添加端口号状态:firewall-cmd -zone=public --query-port=*****/tcp
4.2运行效果
测试上传
/usr/bin/fdfs_test /etc/fdfs/client.confupload /usr/local/src/1CD88E80EBE4F7270C78CC3582B831B8.jpg
4.3图片压缩处理
4.3.1:使用yum安装GraphicsMagick
yum install ImageMagick
/4.3.2:编辑nginx.conf
location/group1/M00 {
alias /data/fdfs/data;
#图片压缩的相关代码
set $image_root "/data/fdfs/data";
if ( $uri ~"/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/(.*)" ){
set $image_dir "$image_root/$3/$4";
set $image_name "$5";
set $file "$image_dir/$image_name";
}
if ( !-f $file ) {
# 关闭lua代码缓存,方便调试lua脚本
#lua_code_cache off;
content_by_lua_file "/usr/local/openresty/lualib/img/fastdfs.lua";
}
ngx_fastdfs_module;
}
4.3.3:上传两个文件
在/usr/local/openresty/lualib/下创建img文件
把fastdfs.lua传到/usr/local/openresty/lualib/img/fastdfs.lua
把restyfastdfs.lua传到/usr/local/openresty/site/lualib
重启nginx:
/usr/local/openresty/nginx/sbin/nginx -s reload
4.4常见问题及解决方案
1、从windows向linux上传文件方式:
Xshell实现Windows上传文件到Linux主机
2、安装yum -ygroupinstall 'Development Tools'时出现如下问题
Error: Delta RPMs disabled because/usr/bin/applydeltarpm not installed.
解决方案:
执行命令:yum provides '*/applydeltarpm'
yum install deltarpm
4.4第三方工具推荐
Zimg高性能图片服务器
简介:http://blog.csdn.net/black_ox/article/details/18505365
http://blog.buaa.us/zimg-v2-release/
5. 依赖
5.1必需依赖
libevent是一个轻量级的开源的高性能的事件触发的网络库
Development Tools:包括一些基本的工具,编译工具等
5.2缺省依赖
5.3可选依赖
6. 版本管理
(发展历程简介,各版本对比说明突出每一版本的特点,常用稳定版本等)
7. 日常维护
7.1启动/关闭
Tracker服务
启动:
/usr/bin/fdfs_trackerd/etc/fdfs/tracker.conf start
重启:
/usr/bin/fdfs_trackerd/etc/fdfs/tracker.conf restart
Storage服务
启动:
/usr/bin/fdfs_storaged/etc/fdfs/storage.conf start
重启:
/usr/bin/fdfs_storaged/etc/fdfs/storage.conf restart
7.2查看日志
Tracker服务
cd /data/fdfs/logs
tail -f trackerd.log
Storage服务
cd /data/fdfs/logs
tail -f storaged.log
7.3配置文件
关于配置文件内容问题,参考FastDFS配置文件详解
评论暂时关闭