• FastDFS分布式文件系统


    一.FastDFS:

      是一个分布式文件系统,具有文件存储,文件同步,文件访问解决了大量文件存储问题

    二.FastDFS:架构

         Client:
      客户端
      Tracker:
      tracker是一个追踪服务器,它时刻的关注着Storage服务器,它是storage和client的桥梁  
      Storage:
      文件存储服务器,用来存放文件的

      工作流程:

             

       <1>  单机版:

          1.单机版的配置:

               由于FastDFS的安装解压后,需要编译后才能安装(c语言书写的)所以我们需要依赖   gcc

             a: yum install gcc-c++ perl-devel pcre-devel openssl-devel zlib-devel wget        //该依赖是用来编译C语言写的程序

             由于FastDFS编译完后,需要make install 进行安装,在安装的过程中他需要依赖 libfastcommon

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

             开始下载FastDFS 文件

             c: wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz   // 最后用5.11版本  后面跟nginx搭建

              以上的啊a,b,c的操作都是准备工作    

           现在我们将分别解压下载后的 V1.0.35.tar.gz 和 V5.11.tar.gz

             d: tar -zxvf   V1.0.35.tar.gz  解压   进入解压后的文件 cd libfastcommon-1.0.35/   执行 ./make.sh 完成 编译    执行./make.sh install完成安装

                e:tar -zxvf   V5.11.tar.gz  解压   进入解压后的文件 cd fastdfs-5.10/   执行 ./make.sh 完成 编译    执行./make.sh install完成安装  

                     以上的d,e操作完成了FastDFS的安装,接下来我们看看 文件的安装位置在哪  

             安装完了,FastDFS分布式文件系统将会分为 配置文件 启动脚本  相关命令   

                                 配置文件-->存放在  /etc/fdfs/  目录下

                   这里我们需要将里面的client.conf.sample,storage.conf.sample和tracker.conf.sample这三个配置文件

                   通过执行 cp 命令(cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf ) 来文件 重命名 除掉.sample 比喻结果 client.conf   这三个文件

                   很重要他将是我们的启动文件 

            启动脚本-->存放在 /etc/init.d/  目录下

                  /etc/init.d/fdfs_tracker   start   //启动

            相关命令-->存放在 /usr/bin 目录下  都是一fdfs_开头的   这些命令是正对一些文件操作的 比喻上传 下载 删除

          到了这一步了,先别急,我们首先要创建一个文件作为 FastDFS 运行时产生的数据存储位置

                   执行  mkdir -p /data/fastdfs/{tracker,storage/store}  命令   /data/fastdfs/storage/store 是存放文件的目录

          最后一步配置了

            进入我们的配置文件  打开tracker.conf文件 修改他的 base_path=/data/fastdfs/tracker   保存退出

            打开storage.conf (配置存储服务器)

                     vi /etc/fdfs/storage.conf

                     base_path=/data/fastdfs/storage

                     store_path0=/data/fastdfs/storage/store/

                     group_name=group2

                     tracker_server=192.168.128.141:22122            //这个追踪服务器他的 ip:port 指向追踪器服务器的 可以配置多个

            配置客户端配置器

                    vi /etc/fdfs/client.conf
                    base_path=/tmp
                    tracker_server=192.168.128.141.22122            //这个追踪服务器他的 ip:port 指向追踪器服务器的 可以配置多个

      <2> 集群版的搭建:

            集群版的搭建很容易:只需要在单机版的搭建的最后一步的文件配置上 配置多个tracker 追踪服务就ok        

      总结流程执行流程:

          client接受请求去找tracker追踪器,这个tracker追踪器他监控着多个storage文件存储服务器(从storage.conf文件中可以知道那个文件存储服务器是由XXX追踪器管理的,但是文件服务器也能搭建集群,就是说storage存储服务器交给多个tracker他去管理,而怎么知道有哪些tracker追踪器可以从client客户端知晓。最终的一个意思就是FastDFS的集群搭建,从追踪器开始搭建,3个追踪器,6个存储服务器,存储服务器分为三组每一组两个存储服务器(他们之能过自动的完成备份),过后以组来划分每一组都拥有3个追踪器达到的效果是高性能,高并发高可用。client客户端是用来分配调用的是哪一个追踪器)

    三.nginx来整合FastDFS


        a. 不用nginx时出现的问题:
           1.FastDFS的HTTP服务较为简单,无法提供负载均衡等高性能的服务

           2.同卷之间的文件备份具有延迟,如果在这个时间段上client进行了访问就会出现问题 

           3.当访问文件的时候IP地址时刻在更换

        b. 用nginx的好处:

           解决上面的问题,nginx作为反向代理屏蔽了IP地址得到差异,它拥有高性能的负载均衡,还有一个叫着FastDFS模块nginx他解决了文件备份延迟导致的错误

        重定向到源服务器去取文件

        c. 搭建Nginx

          1.下载

            yum install git

                               # fastdfs 需 >=5.11

                 git clone https://github.com/happyfish100/fastdfs.git
            ./make.sh clean
            ./make.sh && ./make.sh install
            # fastdfs模块依赖
            https://github.com/happyfish100/fastdfs-nginx-module.git
            # nginx
            wget http://nginx.org/download/nginx-1.11.1.tar.gz

          2.安装

            tar -zxvf nginx-1.11.1.tar.gz

            cd nginx-1.11.1
            # nginx和fastdfs模块联合编译
            ./configure --add-module=/root/fastdfs-nginx-module/src/ --prefix=/usr/local/nginx
            # 安装nginx
            make && make install
            # 拷贝mod_fastdfs.conf 到/etc/fdfs目录下
            cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
            # 拷贝fastdfs-5.10/conf下anti-steal.jpg 、http.conf mime.types 文件
            cd /root/fastdfs/conf/
            cp http.conf mime.types anti-steal.jpg /etc/fdfs/

          3.配置

            # 修改nginx.conf

            location ~/group([0-2])/M00 {

            root /data/fastdfs/storage/store;
            ngx_fastdfs_module;
            }
            # 修改/etc/fdfs/mod_fastdfs.conf配置文件
            tracker_server=192.168.128.141:22122
            url_have_group_name = true
            group_name=group1
            store_path0=/data/fastdfs/storage/store

        4. 启动nginx

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

        以上几步就完成了nginx与FastDFS的搭建,可以通过HTTP去访问文件夹,但是在访问的时候出现了,时刻的需要更换IP地址,接下来搭建一个nginx的方向代理服务

                                

        upstream fdfs_group1 {

          server 192.168.128.137:80 weight=1 max_fails=2 fail_timeout=30s;

          server 192.168.128.151:80 weight=1 max_fails=2 fail_timeout=30s;

          }

        upstream fdfs_group2 {

          server 192.168.128.150:80 weight=1 max_fails=2 fail_timeout=30s;

          server 192.168.128.152:80 weight=1 max_fails=2 fail_timeout=30s;

          }

  • 相关阅读:
    mysql分区
    pl/sql查看tnsnames.ora文件路径
    mysql之事务控制和锁定语句
    mysql返回查询行数fund_rows()
    mysql之视图
    Mysql之btree索引和hash索引的区别
    Java中反射 API 的使用
    zookeeper 客户端 Apache curator 分布式锁实操
    springBoot 整合 ZooKeeper Java客户端之 Apache Curator 实战
    初识 ZooKeeper
  • 原文地址:https://www.cnblogs.com/youer66/p/youer.html
Copyright © 2020-2023  润新知