FastDFS文件服务器安装配置使用

1.FastDFS架构简介

分布式文件系统

分布式文件系统 (Distributed File System) 是一个软件/软件服务器,这个软件可以用来

    管理文件。但这个软件所管理的文件通常不是在一个服务器节点上,而是在多个服务器节

    点上,这些服务器节点通过网络相连构成一个庞大的文件存储服务器集群,这些服务器都

    用于存储文件资源,通过分布式文件系统来管理这些服务器上的文件。

常见的分布式文件系统有:FastDFS、GFS、HDFS、Lustre 、Ceph 、GridFS

    、mogileFS、TFS等。

分布式文件系统与传统文件系统对比:



传统方式弊端:

    如果用户数量多,IO操作比较多,对磁盘访问压力很大

    如果磁盘发生故障,会造成数据丢失

    存储容量有限

FastDFS简介:

FastDFS是一个开源的轻量级分布式文件系统,为互联网应用量身定做,简单、灵活、高效,

    采用C语言开发,由阿里巴巴开发并开源。

FastDFS对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载

    、文件删除)等,解决了大容量文件存储的问题,特别适合以文件为载体的在线服务,如

    相册网站、文档网站、图片网站、视频网站等等。

FastDFS充分考虑了冗余备份、线性扩容等机制,并注重高可用、高性能等指标,使

    用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

FastDFS代码托管在github上:https://github.com/happyfish100/fastdfs 

FastDFS整体架构:

FastDFS文件系统由两大部分构成,一个是客户端,一个是服务端

客户端通常指我们的程序,比如我们的Java程序去连接FastDFS、操作FastDFS,那我们的

    Java程序就是一个客户端,FastDFS提供专有API访问,目前提供了C、Java和PHP几种编

    程语言的API,用来访问FastDFS文件系统。

服务端由两个部分构成:一个是跟踪器(tracker),一个是存储节点(storage)

跟踪器(tracker)主要做调度工作,在内存中记录集群中存储节点storage的状态信息,是前

    端Client和后端存储节点storage的枢纽。因为相关信息全部在内存中,

    Tracker server的性能非常高,一个较大的集群(比如上百个group)中有3台就足够了。

存储节点(storage)用于存储文件,包括文件和文件属性(meta data)都保存到存储服务

    器磁盘上,完成文件管理的所有功能:文件存储、文件同步和提供文件访问等

2.FastDFS安装

1.安装前的准备:

检查Linux上是否安装了 gcc、libevent、libevent-devel

yum list installed | grep gcc

yum list installed | grep libevent

yum list installed | grep libevent-devel

如果没有安装,则需进行安装:

yum install gcc libevent libevent-devel -y 

2. 安装 libfastcommon 库

libfastcommon 库是 FastDFS 文件系统运行需要的公共 C 语言函数库

在home新建: mkdir soft

在/home/soft/ 下

下载:

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz

解压

tar -xvf v1.0.7.tar.gz

"注: 你解压完成之后的的目录名不是V1.0.36,而是libfastcommon-1.0.36"

进入libfastcommon-1.0.36目录

cd  libfastcommon-1.0.36

编译

./make.sh

安装:

./make.sh install

3.安装fastDFS

在/home/soft/ 下

下载:

wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz 

解压:

tar -xvf V5.11.tar.gz

解压完毕后会有一个目录fastdfs-5.11,进入到这个目录

cd fastdfs-5.11

编译

./make.sh

安装

./make.sh install


注: 至此FastDFS安装完成,所有编译出来的文件存放在/usr/bin目录下,所有配置文件存放在/etc/fdfs目录下

4.查看FastDFS相关的可执行程序

ll /usr/bin/fdfs*


5.查看FastDFS相关的可执行程序

ll /etc/fdfs/

6.配置移动

将/home/soft/fastdfs-5.11/conf 中的: http.conf    mime.types

复制到/etc/fdfs/下

cp http.conf /etc/fdfs/

cp mime.types /etc/fdfs/

7.说明

命令都在/user/bin  下

配置都在/etc/fdfs/存放四个配置文件:(必须放在/etc/fdfs下)

    client.conf.sample                客户端连接

    storage.conf.sample              storage配置

    storage_ids.conf.sample          记录id 

    tracker.conf.sample              tracker配置

8.配置

进入配置路径

cd /etc/fdfs/

复制并修改后缀名

cp storage.conf.sample storage.conf

cp tracker.conf.sample tracker.conf

8.1修改tracker.conf配置:

vi tracker.conf

找到:

base_path=/home/yuqing/fastdfs 

按i

修改为: base_path=/opt/fastdfs/tracker  #配置tracker存储数据的目录

退出保存:按esc  :wq!

在/opt/下新建fastdfs/tracker目录

cd /opt/

mkdir -p fastdfs/tracker

8.2修改storage.conf配置:

vi storage.conf

找到:

base_path=/home/yuqing/fastdfs

按i

修改为:base_path=/opt/fastdfs/storage  #storage存储数据目录

找到:

store_path0=/home/yuqing/fastdfs

修改为:store_path0=/opt/fastdfs/storage/files  #真正存放文件的目录

找到:

tracker_server=192.168.209.121:22122

修改为:tracker_server=Linux的ip:22122  #注册当前存储节点的跟踪器地址

退出保存:按esc  :wq!

在/opt/fastdfs/下新建storage/files目录

mkdir -p storage/files

注:如果有多个路径: store_path_count = 1 修改数量

9.启动,关闭,重启命令

tracker:

启动: fdfs_trackerd /etc/fdfs/tracker.conf

关闭: fdfs_trackerd /etc/fdfs/tracker.conf  stop

重启: fdfs_trackerd /etc/fdfs/tracker.conf  restart

storaged:

启动: fdfs_storaged /etc//fdfs/storage.conf

关闭: fdfs_storaged /etc//fdfs/storage.conf  stop

重启: fdfs_storaged /etc//fdfs/storage.conf  restart

查看是否启动成功:

ps -ef | grep fdfs

10. 查看storage是否已经注册到了tracker下

fdfs_monitor /etc/fdfs/storage.conf

10.1. 首次启动storage后,会在配置的路径下创建存储文件的目录

cd /opt/fastdfs/storage/files/data

ls

11.测试FastDFS之前配置

在/etc/fdfs/下

cd /etc/fdfs/

复制client.conf.sample 并修改名称

cp client.conf.sample client.conf

修改client.conf:

vi client.conf

找到:base_path=/home/yuqing/fastdfs

按i

修改成:base_path=/opt/fastdfs/client

找到:

tracker_server=192.168.0.197:22122

修改成:tracker_server=Linux的ip:22122

退出保存:按esc  :wq!

在/opt/fastdfs/下新建client文件夹

cd /opt/fastdfs/

mkdir client

12.测试上传

准备一张图片,放在/root下

fdfs_test /etc/fdfs/client.conf upload 图片名称(或者图片地址+名称)

如:

fdfs_test /etc/fdfs/client.conf upload a.jpg

说明:group_name  和  remote_filename

'group_name:组名' 'remote_filename:文件路径及文件名称'


13.FastDFS生成的文件目录结构及名称示例



13.1查看文件位置:

如:

http://192.168.30.128/group1/M00/00/00/wKgegGB4fsGAetuHAAhRXIE6jNU992.jpg

所在位置:

cd /opt/fastdfs/storage/files/data/00/00/

说明:

/opt/fastdfs/storage/files/: 是配置文件配置

14.测试下载删除

下载:

fdfs_test /etc/fdfs/client.conf download 组名(group_name) 文件路径文件名(remote_filename)

如:

fdfs_test /etc/fdfs/client.conf download group1 M00/00/00/wKgegGB4fsGAetuHAAhRXIE6jNU992.jpg

删除:

fdfs_test /etc/fdfs/client.conf delete 组名(group_name) 文件路径文件名(remote_filename)

如:

fdfs_test /etc/fdfs/client.conf delete group1 M00/00/00/wKgegGB4fsGAetuHAAhRXIE6jNU992_big.jpg

3.FastDFS-安装nginx

1.下载fastdfs-nginx-module

fastdfs 5.11版本对照:Version 5.11对应的fastdfs-nginx-module的Version 1.20 

fastdfs  5.10版本对照:Version 5.10对应的fastdfs-nginx-module的Version 1.19

如果版本不对应,后期安装会报错!!!

下载:

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz

解压

tar -xvf V1.20.tar.gz

修改名称

mv fastdfs-nginx-module-1.20 fastdfs-nginx-module

2.配置fastdfs-nginx-module

cd /home/soft/fastdfs-nginx-module-1.20/src

vi config

将: ngx_module_incs="/usr/local/include"

修改为:

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

将:CORE_INCS="$CORE_INCS /usr/local/include"

修改为:

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

3.nginx依赖安装:

cd /home/soft

安装依赖环境,安装gcc环境

yum install gcc-c++

安装PCRE库,用于解析正则表达式

yum install -y pcre pcre-devel

zlib压缩和解压缩依赖

yum install -y zlib zlib-devel

SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https

yum install -y openssl openssl-devel

4.下载安装nginx

下载:

wget http://nginx.org/download/nginx-1.14.2.tar.gz

解压

tar -xvf nginx-1.14.2.tar.gz

进入

cd nginx-1.14.2.tar.gz

执行:

./configure --prefix=nginx安装路径 --add-module=fastdfs-nginx-module解压目录

--prefix是指定nginx安装路径

--add-module指定fastDFS的nginx模块的源代码路径

如:

./configure --prefix=/usr/local/nginx_fdfs --add-module=/home/soft/fastdfs-nginx-module/src

编译

make

安装

make install

5.安装完后查看

cd /usr/local/

4.配置访问

1.FastDFS的Nginx访问配置

将fastdfs-nginx-module-master的mod_fastdfs.conf配置拷贝到/etc/fdfs/目录下

cp /home/soft/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

cd /etc/fdfs/

修改mod_fastdfs.conf配置文件

vi mod_fastdfs.conf

找到:base_path=/tmp

修改为:base_path=/opt/fastdfs/nginx_mod  ##基础路径

找到:tracker_server=tracker:22122

修改为:tracker_server=Linux的ip:22122   

找到:url_have_group_name = false

修改为:url_have_group_name = true 

找到:store_path0=/home/yuqing/fastdfs

修改为:store_path0=/opt/fastdfs/storage/files ##文件存放路径

退出保存:按esc  :wq!

在/opt/fastdfs/目录下新建nginx_mod文件夹

cd /opt/fastdfs/

mkdir nginx_mod

2.配置Nginx

进入nginx

cd /usr/local/nginx_fdfs/conf/

修改nginx.conf

vi nginx.conf

在server {里的 localhost / { 下新增:

location ~ /group[1-9]/M0[0-9] {

        ngx_fastdfs_module;

}

注:ngx_fastdfs_module;  #这个指令不是Nginx本身提供的,是扩展模块提供的,根据

    这个指令找到FastDFS提供的Nginx模块配置文件,然后找到Tracker,最终找

    到Stroager

退出保存:按esc  :wq!

3.启动带有Fastdfs模块的Nginx

检查

/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf -t

启动

/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf

4.检查

ps -ef | grep nginx

必须有三个

6.设置开放的端口号

firewall-cmd --add-service=http –permanent

sudo firewall-cmd --add-port=80/tcp --permanent

80:是需要开放的端口

重启防火墙

firewall-cmd --reload

7.访问之前上传的图片

如:

http://192.168.10.12/group1/M00/00/00/wKiagGCUsCSAVhPCAB1IdfRTXZY511.jpg


至此FastDFS+nginx 安装配置完成

你可能感兴趣的:(FastDFS文件服务器安装配置使用)