【架构技术】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.08wget https://codeload.github.com/happyfish100/fastdfs/zip/master

·libfastcommon-master,1.27wgehttps://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配置文件详解


相关内容

    暂无相关文章