天天看点

Fast DFS概述以及单机版环境搭建

Fast DFS概述

Fast DFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合中小文件(建议范围:4KB < file size <500MB),以文件为载体的在线服务,如相册网站、视频网站等等。

Fast DFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用Fast DFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

FastDFS架构包括 (跟踪器)Tracker server和(存储节点)Storage server。客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。

Tracker Server作用是负载均衡和调度,通过Trackerserver在文件上传时可以根据一些策略找到Storageserver提供文件上传服务。可以将tracker称为追踪服务器或调度服务器。

Storage Server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。

下面来看一下应该如何安装以及配置吧

( 参考博客:https://blog.csdn.net/qq_34301871/article/details/80060235)

1、下载运行环境需要的安装包(这个是我个人使用的环境包)

下载地址:

**

https://github.com/lxg19970202/FastDFS-/tree/lxg19970202-fastdfs

**

Fast DFS概述以及单机版环境搭建

2、首先下载 所需全部工具运行命令

yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget

下载完成,安装 rz 命令-------->进行上传文件

yum install lrzsz -y

/home目录下新建一个目录将下载的安装包通过rz命令上传到自己新建的目录

cd /home
mkdir lxg
ls
cd lxg
rz
           
Fast DFS概述以及单机版环境搭建

3.安装libfastcommon

解压刚才上传的libfastcommon

cd libfastcommon-master

  unzip libfastcommon-master.zip
           

然后进入解压完成的文件目录进行编译安装

./make.sh

Fast DFS概述以及单机版环境搭建

./make.sh install

Fast DFS概述以及单机版环境搭建

4.安装Fast DFS

返回上一级去解压fastdfs

cd  ..
 unzip fastdfs-5.11.zip
           

解压完成进入fastdfs5.11目录并进行编译安装

cd fastdfs-5.11
./make.sh
./make.sh install
           

安装成功之后切换到 /etc/fdfs下

cd /etc/fdfs/
 ll
           
Fast DFS概述以及单机版环境搭建

使用命令将这三个实例文件复制一份,且去掉sample

cp client.conf.sample         client.conf
cp storage.conf.sample     storage.conf
cp tracker.conf.sample       tracker.conf
           

5、安装Tracker Server

创建tracker工作目录以用来存储tracker的data和log

使用

cd

命令切换目录

使用

mkdir

命令创建文件夹

Fast DFS概述以及单机版环境搭建

文件夹的最终目录是:/usr/lxg_workspace/dev/fastdfs/fasstdfs_tracker

创建完毕之后进入 /etc/fdfs/配置tracker的conf文件

vi  /etc/fdfs/tracker.conf
           

insert

键进行插入

以下是暂时需要配置的内容

1.disabled=false #默认开启 
2.port=22122 #默认端口号 
3.base_path=/usr/lxg_workspace/dev/fastdfs/fastdfs_tracker #刚刚创建的目录 
4.http.server_port=6666 #默认端口是8080
           

再次点击insert切换模式

Esc退出

wq保存

测试启动tracker

service fdfs_trackerd start

如果不能成功启动,可以通systemctl命令

systemctl start fdfs_trackerd

设置服务开机启动

加执行权限
        chmod +x /etc/rc.d/rc.local
        开始修改rc.local
        vi /etc/rc.d/rc.local
        添加开启命令
        service fdfs_trackerd start
           
Fast DFS概述以及单机版环境搭建

启动成功之后的界面:

Fast DFS概述以及单机版环境搭建

启动之后可以查看一下服务端口:

Fast DFS概述以及单机版环境搭建

同时进入咱们创建的fastdfs_tracker目录后也会看到自动生成data和log两个目录

Fast DFS概述以及单机版环境搭建

6、安装Storage Server

咱们前面创建 fastdfs_tracker 目录的同时已经创建了工作目录 fastdfs_storage 以及存储数据的目录 fastdfs_storage_data,直接去配置就可以了

vi /etc/fdfs/storage.conf
           

设置以下内容:

1.disabled=false 
2.group_name=group1 #组名,根据实际情况修改 
3.port=23000  #设置storage的端口号,默认是23000,同一组的storage端口号必须一致 
4.base_path=/usr/lxg/dev/fastdfs/fastdfs_storage  #设置storage数据文件和日志目录 
5.store_path_count=1 #存储路径个数,需要和store_path个数匹配 
6.base_path0=/usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data #实际文件存储路径 
7.tracker_server=192.168.150.132:22122 #虚拟机的ip地址 
8.http.server_port=8888 #设置 http 端口号
           

保存之后 创建软引用

ln -s  /usr/bin/fdfs_storaged   /usr/local/bin
           

启动storage

service  fdfs_storaged  start
           

设置开机自动启动

加执行权限
chmod +x /etc/rc.d/rc.local
开始修改rc.local
 vi /etc/rc.d/rc.local
添加开启命令
service  fdfs_storaged  start
           

查看服务端口:

netstat -unltp |  grep fdfs
           
Fast DFS概述以及单机版环境搭建

最后我们再确认一下,storage是否注册到了tracker中去。

/usr/bin/fdfs_monitor     /etc/fdfs/storage.conf
           
Fast DFS概述以及单机版环境搭建

接下来去修改配置文件

vi   /etc/fdfs/client.conf
           

修改以下配置:

base_path=/usr/lxg_workspace/dev/fastdfs/fastdfs_tracker #tracker服务器文件路径
tracker_server=192.168.150.167:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http端口号,必须和tracker对应
           

修改完之后,咱们可以上传图片测试一下啦

使用命令:rz 上传图片 (我的是上传到了root下面)

rz
    /usr/bin/fdfs_upload_file   /etc/fdfs/client.conf   /root/1.png  #你上传的图片路径(linux上的)
           
Fast DFS概述以及单机版环境搭建

去刚才上传的路径查看是否上传成功~~~

cd /usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data/data
ls
cd 00
ls
cd 00
ls
           
Fast DFS概述以及单机版环境搭建

data下有256个1级目录,每级目录下又有256个2级子目录,总共65536个文件,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中。

然后我们HTTP访问文件

输入192.168.150.167:8888/group1/M00/00/00/wKiW10ptyyAbBTGAADALhN48uw668.png

现在无法访问,早在4.05的时候,就remove embed HTTP support了

Version 4.05 2012-12-30

  • client/fdfs_upload_file.c can specify storage ip port and store path index
  • add connection pool
  • client load storage ids config
  • common/ini_file_reader.c does NOT call chdir
  • keep the mtime of file same
  • use g_current_time instead of call time function
  • remove embed HTTP support
Fast DFS概述以及单机版环境搭建

7、Nginx的安装及配置

我们可以了解到Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

应用场景

1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

基于端口的,不同的端口

基于域名的,不同域名

3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

(1)配置storage nginx

切换到上传的压缩包的文件夹

cd /home/lxg
           

解压nginx,和fastdfs-nginx-module:

tar -zxvf nginx-1.12.0.tar.gz
unzip fastdfs-nginx-module-master.zip
           

然后进入nginx安装目录,添加fastdfs-nginx-module:

./configure --prefix=/usr/local/nginx  --conf-path=/usr/local/nginx/conf/nginx.conf  --add-module=/usr/local/src/fastdfs/fastdfs-nginx-module-master/src  --with-stream
           

我这里安装的时候报了一个错:

Fast DFS概述以及单机版环境搭建

解决方案:

检查文件夹路径是否和安装以及获取的一致,如果一致的话,重启电脑,然后删除已经解压的文件,重新解压缩,重新添加。一般两方的文件夹的路径不一致,前面的是nginx的安装目录。后面的是fastdfs-nginx-module-master目录

Fast DFS概述以及单机版环境搭建

make

:执行

make遇到的错误

Fast DFS概述以及单机版环境搭建

编辑

vi fastdfs-nginx-module-1.20/src/config

打开之后:

改变的文件内容

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

"

解决完这个问题继续安装又会报错

Fast DFS概述以及单机版环境搭建

解决方案:

切换到上传环境包的那个路径:

cd /home/lxg/

在这个里面运行:

./configure --prefix=/usr/bin/nginx-1.12.0 --conf-path=/usr/bin/nginx-1.12.0/conf/nginx.conf --add- module=/usr/local/src/fastdfs/fastdfs-nginx-module-master/src --with-stream

例如:在解压的nginx目录下运行:

./configure --prefix=/usr/bin/nginx-1.12.0 --conf-path=/usr/bin/nginx-1.12.0/conf/nginx.conf --add-module=/usr/local/src/fastdfs/fastdfs-nginx-module-master/src --with-stream

Fast DFS概述以及单机版环境搭建

然后

make
 make  install
           

成功后界面:

Fast DFS概述以及单机版环境搭建

现在开始配置nginx.conf

cd /usr/local/nginx

—nginx默认的安装目录

ll                     
    cd   conf                         
           
Fast DFS概述以及单机版环境搭建

vi nginx.conf

--编辑

修改端口号,

修改连接的服务器名称,我这里是虚拟机本机的ip

添加一个 :

location /group1/M00 {
        root /usr/lxg/dev/fastdfs/fastdfs_storage_data/data;
        ngx_fastdfs_module;
    }      
           
Fast DFS概述以及单机版环境搭建

然后进入FastDFS安装时的解压过的目录,将http.conf和mime.types拷贝到/etc/fdfs目录下:

先创建好存放的文件夹:

cd /usr/lxg_workspace/

mkdir  ftp
   cd ftp
   mkdir /fastdfs-5.11
           

将之前上传解压的包复制到此目录下

cp -r /home/lxg/fastdfs-5.11  /usr/lxg_workspace/ftp/fastdfs-5.11
           

进到刚刚复制过去的目录,将http.conf和mime.types拷贝到/etc/fdfs目录下:

cd   /usr/lxg_workspace/ftp/fastdfs-5.11/
   ll
           
Fast DFS概述以及单机版环境搭建
cd conf
              cp http.conf /etc/fdfs/
              cp mime.types /etc/fdfs/      
           

另外还需要把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下:

cp /usr/lxg_workspace/fastdfs-nginx-module-master/src/mod_fastdfs.conf    /etc/fdfs/
           
Fast DFS概述以及单机版环境搭建

刚刚拷贝过去的mod_fastdfs.conf文件进行修改:

vi  /etc/fdfs/mod_fastdfs.conf
           

base_path=/usr/lxg_workspace/dev/fastdfs/fastdfs_storage #保存日志目录

tracker_server=192.168.150.132:22122 #tracker服务器的IP地址以及端口号

storage_server_port=23000 #storage服务器的端口号

url_have_group_name = true #文件 url 中是否有 group 名

store_path0=/usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data #存储路径

group_count = 3 #设置组的个数,事实上这次只使用了group1

往下同时设置组名等信息:需要几个组就设置几个

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/usr/muyou/dev/fastdfs/fastdfs_storage_data

store_path1=/usr/muyou/dev/fastdfs/fastdfs_storage_data

Fast DFS概述以及单机版环境搭建

创建M00至storage存储目录的符号连接:

ln -s /usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data/data/ /usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data/data/M00

接下来尝试启动nginx:

/usr/local/nginx_storage/sbin/nginx
           

成功启动:

Fast DFS概述以及单机版环境搭建

。。重新进入浏览器尝试下:

http://192.168.218.25:8888/

成功界面如下:

(2)配置tracker nginx

还是进入刚刚解压的nginx解压包,然后重新运行此命令,将nginx再次编译安装到另一个文件夹nginx2

./configure --prefix=/usr/local/nginx2  --conf-path=/usr/local/nginx2/conf/nginx.conf  --add-module=/usr/lxg_workspace/fastdfs-nginx-module-master/src







make
make install
           

接下来还是修改nginx.conf,端口号可以不改,用80的。需将upstream指向tracker的nginx地址

vi /usr/local/nginx_tracker/conf/nginx.conf

 upstream fdfs_group1 {
        server 127.0.0.1:8888;
    }
    server {
        listen       8889;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /group1/M00 {
            proxy_pass http://fdfs_group1;
        }
           

启动nginx:

/usr/local/nginx_tracker/sbin/nginx

成功界面如下:

Fast DFS概述以及单机版环境搭建

注意这两个界面的端口号是不一致的!!!

再次使用浏览器登陆尝试

http://192.168.218.25:8888/group1/M00/00/00/wKjaGV0q03KAWMw6AADALhN48uw532.png

效果如下:

Fast DFS概述以及单机版环境搭建

咱们的单机Fast DFS配置就算基本搭建成功啦!!!