Centos 7.X部署分布式文件系统:FastDFS+Nginx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 7.X部署分布式文件系统:FastDFS+Nginx相关的知识,希望对你有一定的参考价值。

1、FastDFS简介

1.1 介绍

  • FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站。

  • FastDFS它是一个轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。 

  • 支持存储服务器在线扩容,支持相同的文件只保存一份,节约磁盘。 

  • FastDFS只能通过Client API访问,不支持POSIX访问方式。 

  • FastDFS适合中大型网站使用,用来存储资源文件(如:图片、文档、视频等)



1.2 FastDFS组成

tracker server

跟踪服务器:用来调度来自客户端的请求。且在内存中记录所有存储组和存储服务器的信息状态。


storage server

存储服务器:用来存储文件(data)和文件属性(metadata)


client

客户端:业务请求发起方,通过专用接口基于TCP协议与tracker以及storage server进行交互


group

组,也可称为卷:同组内上的文件是完全相同的


文件标识

包括两部分:组名和文件名(包含路径)


meta data

文件相关属性:键值对(Key Value Pair)方式


fid

文件标识符: (例如: group1/M00/00/00/CgEOxVegXB2AdYafAAAB0b8tBbQ9155303 )

  • group1:存储组的组名;上传完成后,需要客户端自行保存 

  • M00:服务器配置的虚拟路径,与磁盘选项store_path#对应 

  • 00/00:两级以两位16进制数字命名的目录 

  • CgEOxVegXB2AdYafAAAB0b8tBbQ9155303:文件名,与原文件名并不相同;由storage server根据特定信息生成。文件名包含:源存储服务器的IP地址、文件创建时间戳、文件大小、随机数和文件扩展名等


1.3 FastDFS同步机制

  • 同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行; 

  • 文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器; 

  • 源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了; 
     

    提示:上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。


1.4 FastDFS特性

指标
说明
系统简洁性
很简洁,只有两个角色:tracker、storage
系统性能很高、没有使用数据库,文件同步直接点对点,不经过tracker中转
系统稳定性

高、C语言开发,可支持高并发和负载

RAID方式
分组(组内冗余),具有很高的灵活性
通信协议专有协议,下载文件支持HTTP
属性(meta,data)
支持
相同内容文件只保存一份
支持
下载文件时支持文件偏移量
支持


2、背景

    在这里,我用3台服务器部署,这3台服务器都要部署nginx+fastdfs以及相关模块。3台服务器部署方式都一样,只不过storage服务器有些配置会不同,过程有点麻烦,请大家一定要有耐心,一步一步走下去部署是OK的。


2.1  环境说明

172.18.18.111(以下简称tracker服务器): nginx、fastdfs(启动tracker、storage)、fastfds其它模块

172.18.18.112(以下简称storage服务器):nginx、fastdfs(启动storage)、fastfds其它模块

172.18.18.113(以下简称storage服务器):nginx、fastdfs(启动storage)、fastfds其它模块


2.2 软件包、安装路径

准备的软件包:

nginx-1.9.3.tar.gz
lua-5.1.4.tar.gz
libfastcommon-1.0.35.zip
fastdfs-master.zip
LuaJIT-2.1.0-beta2.tar.gz
v0.2.19.tar.gz
GraphicsMagick-1.3.25.tar.gz
GraphicsMagick-1.3.25.tar


所有软件包上传路径:

#cd /usr/src/

安装路径:

#/usr/local/

fastdfs配置文件路径:

#/etc/fdfs/

3、部署FastDFS

3.1、安装libfastcommon

    安装fastDFS前,首先下载最新版本的libfastcommon进行安装,上传至/usr/src目录中。下载地址https://github.com/happyfish100/libfastcommon/releases

  • 解压、配置和编译:

#cd /usr/src/
#unzip libfastcommon-1.0.35.zip
#cd libfastcommon-1.0.35/
#./make.sh
#./make.sh install

提示:确认make没有错误后,执行安装,64位系统默认会复制到/usr/lib64下。


  • 设置环境变量、创建软链接:

#export LD_LIBRARY_PATH=/usr/lib64/
#ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so


3.2、安装fastdfs

    下载最新版本的fastDFS,上传至/usr/s


rc目录中。下载地址:https://github.com/happyfish100/fastdfs

  • 解压、编译:

#cd /usr/src/
#unzip fastdfs-master.zip
#cd fastdfs-master/
#./make.sh
#./make.sh install

提示:确认make没有错误后,执行安装,默认会安装到/usr/bin中,会在/etc/fdfs生成以.sample结尾的4个文件,如下所示:

#ll /etc/fdfs/
-rw-r--r-- 1 root root 1461 Aug 12 15:48 client.conf.sample
-rw-r--r-- 1 root root 7927 Aug 12 15:48 storage.conf.sample
-rw-r--r-- 1 root root  105 Aug 12 15:48 storage_ids.conf.sample
-rw-r--r-- 1 root root 7389 Aug 12 15:48 tracker.conf.sample













以上是关于Centos 7.X部署分布式文件系统:FastDFS+Nginx的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop及Zookeeper+HBase完全分布式集群部署

Linux 7.X 分布式文件存储服务FastDFS搭建部署

Hadoop 在 CentOS 7.x 操作系统中的安装、配置及运行

大数据01_centos7部署hadoop-3-1-2本地模式与伪分布模式

Ceph 文件系统部署

CentOS 7.X部署SNMP