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

**
在这里插入图片描述
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

在这里插入图片描述
3.安装libfastcommon
解压刚才上传的libfastcommon

  cd libfastcommon-master

  unzip libfastcommon-master.zip

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

./make.sh

在这里插入图片描述

./make.sh install 在这里插入图片描述

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

在这里插入图片描述
使用命令将这三个实例文件复制一份,且去掉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命令创建文件夹
在这里插入图片描述
文件夹的最终目录是:/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

在这里插入图片描述

启动成功之后的界面:
在这里插入图片描述

启动之后可以查看一下服务端口:
在这里插入图片描述

同时进入咱们创建的fastdfs_tracker目录后也会看到自动生成data和log两个目录
在这里插入图片描述

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

在这里插入图片描述

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

/usr/bin/fdfs_monitor     /etc/fdfs/storage.conf

在这里插入图片描述
接下来去修改配置文件

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上的)

在这里插入图片描述

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

cd /usr/lxg_workspace/dev/fastdfs/fastdfs_storage_data/data
ls
cd 00
ls
cd 00
ls

在这里插入图片描述

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

在这里插入图片描述

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

我这里安装的时候报了一个错:
在这里插入图片描述
解决方案:
检查文件夹路径是否和安装以及获取的一致,如果一致的话,重启电脑,然后删除已经解压的文件,重新解压缩,重新添加。一般两方的文件夹的路径不一致,前面的是nginx的安装目录。后面的是fastdfs-nginx-module-master目录
在这里插入图片描述

make :执行

make遇到的错误
在这里插入图片描述

编辑
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/"

"

解决完这个问题继续安装又会报错
在这里插入图片描述
解决方案:
切换到上传环境包的那个路径: 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
在这里插入图片描述
然后

 make
 make  install

成功后界面:

在这里插入图片描述

现在开始配置nginx.conf
cd /usr/local/nginx —nginx默认的安装目录

    ll                     
    cd   conf                         

在这里插入图片描述

vi nginx.conf --编辑
修改端口号,
修改连接的服务器名称,我这里是虚拟机本机的ip
添加一个 :

 location /group1/M00 {
        root /usr/lxg/dev/fastdfs/fastdfs_storage_data/data;
        ngx_fastdfs_module;
    }      

在这里插入图片描述

然后进入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

在这里插入图片描述

              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/

在这里插入图片描述

刚刚拷贝过去的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

在这里插入图片描述

创建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

成功启动:

在这里插入图片描述

。。重新进入浏览器尝试下:
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

成功界面如下:
在这里插入图片描述

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

再次使用浏览器登陆尝试
http://192.168.218.25:8888/group1/M00/00/00/wKjaGV0q03KAWMw6AADALhN48uw532.png

效果如下:

在这里插入图片描述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值