【架构技术】FastDFS环境搭建

论坛 期权论坛 脚本     
匿名技术用户   2020-12-21 12:42   65   0

【前言】

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.27wget 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配置文件详解


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP