FastDFS分布式存储

一:FastDFS原理

FastDFS是一个开源的轻量级分布式文件系统,功能包括:文件存储,文件同步,文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。

1:FastDFS架构

(1)Tracker server

跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的Storage server和group

(2)Storage server

存储服务器,主要提供容量和备份服务;以group为单位,每个group内部可以有多台storage server,数据互为备份。

(3)Client

客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

2:文件的上传

 3:文件的下载

 二:FastDFS部署

1:环境要求

服务器:CentOS Linux release 7.9.2009 (Core) 
FastDFS下载地址:https://github.com/happyfish100
(1)fastdfs 
(2)libfastcommon 
(3)fastdfs-nginx-module 
(4)nginx-1.18.0

五台服务器,两台tracker 为 101 102
            两台storage 为 103 104
            一台client为 105
网段均属于192.168.10.0

2:安装前的准备

安装 gcc、libevent、libevent-devel

3.安装libfastcommon(除client外所有节点)

将下载好的 libfastcommon ,fastdfs, fastdfs-nginx-module, nginx-1.18.0 等文件使用工具上传到Linux服务器中(例如/usr/local/src)
安装ibfastcommon
# 解压下载下来的tar.gz压缩包到当前目录
tar -zxvf libfastcommon-1.0.36.tar.gz
# 切换到解压后的libfastcommon目录
cd libfastcommon-1.0.36
# 执行make脚本进行编译
./make.sh
# 注意:make编译的时候如果报错,需解决错误后再次进行make,通常发生错误是由于Linux缺少某些依赖库导致,根据错误提示解决错误
#执行make install进行安装
./make.sh install

4:安装FastDFS(除client外所有节点

# 解压下载下来的tar.gz压缩包到当前目录
tar -zxvf fastdfs-5.11.tar.gz
# 切换到解压后FastDFS的目录
cd fastdfs-5.11
# 执行make脚本进行编译
./make.sh
# 执行make install进行安装
./make.sh install
#至此FastDFS安装完成,所有编译出来的文件存放在/usr/bin目录下, 所有配置文件存放在/etc/fdfs目录下

5.配置tracker服务器(101,102节点)

# 拷贝文件 tracker.conf.sample 并重命名为 tracker.conf
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
# 编辑 tracker.conf 配置文件
vi /etc/fdfs/tracker.conf
…………
base_path=/fastdfs/tracker 
group_name=group1
…………


#创建日志目录
mkdir -p /fastdfs/tracker 

 6.配置storage服务器(103,104)

# 拷贝文件 storage.conf.sample 并重命名为 storage.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
# 编辑 storage.conf 配置文件
vi /etc/fdfs/storage.conf
…………
base_path=/fastdfs/storage
tracker_server=192.168.10.101:22122
tracker_server=192.168.10.102:22122
…………


#创建日志目录
mkdir -p /fastdfs/storage

7.配置 client(在任意一个 Fastdfs 节点上配置)

[root@localhost ~]# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
[root@localhost ~]# mkdir -p /fastdfs/tracker
[root@localhost ~l# vim /etc/fdfs/client.conf
#修改以下配置,其它保持默认
base path=/fastdfs/tracker
tracker server=192.100.139.121:22122# tracker 服务器 IP 和端囗
tracker server=192.100.139.122:22122# tracker 服务器 IP2 和端囗

8.FastDFS测试

首先在101,102节点启动tracker
/etc/init.d/fdfs_tarcker start
在103,104节点启动storage
/etc/init.d/fdfs_storage start


准备好要上传的文件
fdfs_test /etc/fdfs/client.conf upload levi.txt
//保存好最后显示的路径,后面测试需要使用

9.在所有 storage 节点安装 fastdfs-nginx-module 和nginx

#解压并修改 fastdfs-nginx-module 的配置文件

[root@localhost ~]# tar zxvf fastdfs-nginx-module v1.16.tar.gz
[root@localhost ~]# cd fastdfs-nginx-module/src

[root@localhost src]# vim config
将配置文件的路径的/local删除即可

10.编译安装 nginx 

[root@localhost ~]# tar zxvf nginx-1.19.5.tar.gz
[root@localhost ~l# useradd nginx
[root@localhost ~]# cd nginx-1.19.5
[root@localhost nginx-1.19.5]# cp /usr/include/fastcommon/* /usr/include/fastdfs/
[root@localhost nginx-1.19.5]# /configure-prefix=/usr/local/nginx
--add-module=/root/fastdfs-nginx-module/src/
[root@localhost ~]# cp /root/fastdfs-nginx-module/src/mod fastdfs.conf /etc/fdfs/
[root@localhost ~l# vim /etc/fdfs/mod fastdfs.conf

11.配置 FASTDFS

[root@localhost ~]# cp /root/fastdfs-nginx-module/src/mod fastdfs.conf /etc/fdfs/
[root@localhost ~l# vim /etc/fdfs/mod fastdfs.conf

tracker server=192.168,10.101:22122 # tracker 服务器 IP 和端囗tracker_server=192.168.10.102:22122 #tracker 服务器 IP2 和端口
#ur1 中包含 group 名称
url have group name=true

复制 FastDFs 的部分配置文件到/etc/fdfs 目录,在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录

[root@localhost ~]# cp /root/fastdfs-5.11/conf/http.conf /etc/fdfs
[root@localhost ~]# cp /root/fastdfs-5.11/conf/mime.types /etc/fdfs

[root@localhost ~]# In-s /fastdfs/storage/data/ /fastdfs/storage/data/M00

12.配置storage服务器中的nginx

[root@localhost ~]# cd /usr/local/nginx/
[root@localhost nginx]# vim conf/nginx.conf
serevr {
    …………
    location /group1/M00 {
        ngx_fastdfs_module;
    }
    …………
}

浏览器访问图片,访问前面保存的链接即可

13.部署 nginx 代理(在 105 主机上配置)

跳过安装nginx环节,直接配置nginx配置文件

[root@localhost ~l# vim /usr/local/nginx/conf/nginx.conf

http {
    …………
    upstream fdfs_server_group1 {
        server 192.168.10.103:80 weight=1;
        server 192.168.10.104:80 weight=2;
    }

    …………
    serever {
       …………
        //直接修改原有的location即可
           location / {
                proxy_pass http://fdfs_server_group1;

            }

       …………
    }
}

访问前面保存的路径,但IP可以改为105

相关推荐

  1. <span style='color:red;'>FastDFS</span>

    FastDFS

    2024-07-23 05:54:03      51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 05:54:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 05:54:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 05:54:03       45 阅读
  4. Python语言-面向对象

    2024-07-23 05:54:03       55 阅读

热门阅读

  1. Linux Vim教程(四):文本编辑与修改技巧

    2024-07-23 05:54:03       14 阅读
  2. Esxi 上的 CentOS 7.6 系统中搭建本地 Yum 源

    2024-07-23 05:54:03       16 阅读
  3. Android 多用户问题

    2024-07-23 05:54:03       18 阅读
  4. QT 4.8版本的Ubuntu2004编译错误的解决方案

    2024-07-23 05:54:03       15 阅读
  5. 算法1--双指针

    2024-07-23 05:54:03       14 阅读
  6. C++实现排序算法

    2024-07-23 05:54:03       14 阅读
  7. 微信小程序面试题汇总

    2024-07-23 05:54:03       14 阅读
  8. Ubuntu22.04重置root密码

    2024-07-23 05:54:03       16 阅读
  9. 手写简易版Spring IOC容器05【学习】

    2024-07-23 05:54:03       14 阅读
  10. 速盾:cdn技术实现原理是什么?

    2024-07-23 05:54:03       16 阅读
  11. Windows通过命令查看mac : getmac

    2024-07-23 05:54:03       17 阅读
  12. CentOS搭建 Mono 开发环境

    2024-07-23 05:54:03       13 阅读