一.什么是FastDFS

  FastDFS一个开源的轻量级分布式文件系统,它对文件进行管理,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

二.工作原理

  FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。

  1.tracke 跟踪器的作用:

    主要做调度工作,在访问上起负载均衡的作用;其中所有的跟踪器服务都是对等平级的,可以根据服务器的压力的大小随时增加或减少。

  2.storage 存储节点的作用:

    完成文件管理的所有功能。(主要用于存储文件,存储完成后会返回一个地址给跟踪器(tracker))

    为了可以支持扩容,跟踪器和存储节点都可以由一台或多台服务器构成。如果访问的压力大,可以多增加跟踪器,如果存储量大,可以增加多个存储节点,同时,可以把同一存储节点进行备份(back-up)。

系统架构图

三.安装过程

  1.准备工作

    准备2个不同ip的 linux 操作系统,安装 gcc 环境(fastdfs是C语言开发的,因此需要安装)

  2.安装过程

    ①安装libfastcommon

      解压:  tar -zxvf libfastcommonV1.0.7.tar.gz

      编译: ./make.sh    ./make.sh install

      注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/local/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/local/lib下。

    ② 建立软连接

      ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

      ln -s /usr/lib64/libfastcommon.so /usr/lib

      ln -s /usr/lib64/libfdfsclient.so /usr/local/lib

      ln -s /usr/lib64/libfdfsclient.so /usr/lib

      作用: 将原文件复制到指定的路径下,而不占用磁盘空间,并保持原文件的镜像连接不被破坏。

    ③安装FastDFS(共同部分)

      解压:  tar -zxvf FastDFS_v5.05.tar.gz

      编译: ./make.sh    ./make.sh install

    ④修改FastDFS 服务脚本bin

      因为FastDFS服务脚本设置的bin目录为:/usr/local/bin/下,但是实际上安装在了/usr/bin/下面,所以我们需要修改FastDFS配置文件,也就是需要修改2个配置文件

      命令: vim /etc/init.d/fdfs_storaged

      进行全局替换命令: %s+/usr/local/bin+/usr/bin

      命令: vim /etc/init.d/fdfs_trackerd

      进行全局替换命令: %s+/usr/local/bin+/usr/bin

    ⑤ tracker 跟踪器的配置(192.168.25.131节点)

      1.进入 cd /etc/fdfs/ 目录下

      2.复制1个tracker

      命令:  cp tracker.conf.sample tracker.conf

      

      3修改tracker.conf的配置

        命令:  vim tracker.conf

         1.修改base_path的路径为:

          base_path=/fastdfs/tracker      [此目录用于存储tracker的存储信息]

        2.创建之前定义好的文件夹

          命令: mkdir -p /fastdfs/tracker

     ⑥ 启动 tracker 跟踪器

      启动命令: /etc/init.d/fdfs_trackerd start

       停止命令: /etc/init.d/fdfs_trackerd stop

        查看进程:   ps -ef | grep fdfs

      

    ⑦设置开机启动tracker 服务

      一般生产环境需要开机启动一些服务,如keepalived、linux、tomcat等等

       命令: vim /etc/rc.d/rc.local

      加入配置: /etc/init.d/fdfs_trackerd strat

  

    ⑧ storage 存储器的配置(192.168.25.132节点)

      1.进入 cd /etc/fdfs/ 目录下

      2.复制1个storage

        命令:  cp storage.conf.sample storage.conf

        

      

        3修改storage.conf的配置

        命令:  vim storage.conf

          1.配置内容为:

            base_path=/fastdfs/storage

            store_path0=/fastdfs/storage

            tracker_server=192.168.25.131:22122

            http.server_prot=8888 [这个基本上不用配]

          2.创建之前定义好的文件夹

            命令: mkdir -p /fastdfs/storage

        

        4.打开防火墙

          如果是生产环境,需要打开防火墙

          命令:  vim /etc/sysconfig/iptables

          添加:  -A INPUT -m state NEW -m tcp -p tcp -dport 23000 -j ACCEPT

          重启 service iptables restart

    ⑨启动 storage 存储器

      在启动 storage 之前需要先将 tracker启动,因为 storage 中用到tracke的服务.[注意关掉 tracker中的防火墙]

      启动 tracker 命令:          /etc/init.d/fdfs_trackerd start

      停止 tracker 命令:     /etc/init.d/fdfs_trackerd stop

      启动 storage 命令: /etc/init.d/fdfs_storaged start

      停止 storage 命令:   /etc/init.d/fdfs_storaged stop

      查看进程命令:     ps -ef | grep fdfs

      

-------------------------------------------------------------------------------------------------------------------------

至此,我们的FastDFS 环境已经搭建完成

    ⑩创建 client 端进行测试

      Client端可以单独出一个ip来配置,在这里用 tracker 来配置

      1.进入 cd /etc/fdfs/ 目录下

      2.复制1个client

        命令: cp client.conf.sample client.conf

      3修改client.conf 的配置

        命令:  vim client.conf

        配置内容为:

          base_path=/fastdfs/tracker

          tracker_server=192.168.25.131:22122

      4.测试上传

        在 tracker中上传1张照片到 /usr/local/software 下

        

      5.在 tracker 中进行上传【记得关掉2边的防火墙】

        命令: /usr/bin/fdfs_upload_file /etc/fdfs/client.conf + 要上传文件的路径(/usr/local/software/IMG_20160831_191057.jpg)

        使用fdfs_upload_file 这个命令通过client.conf这个客户端,将这个jpg文件上传到服务器中

        

        如果有返回值: /group1/M00/00/00/wKgZhFo9As2AeSMYABWdflqP_oo764.jpg 说明上传成功

-------------------------------------------------------------------------------------------------------------------------

至此,我们的FastDFS 测试已完成

    ⑪FastDFS和Nginx的整合搭建

      在存储节点上(storage ) 安装fastdfs-nginx-module

      1.解压 fastdfs-nginx-module_v1.16.tar.gz

        命令:  mkdir -p /usr/local/fast/

         命令:  tar -zxvf fastdfs-nginx-module_v1.16.tar.gz  -C /usr/local/fast/

     2.进入module的src目录

         命令: cd /usr/local/fast/fastdfs-nginx-module/src

     3.编辑配置文件 config

        命令: vim config

       

        把原先有local的路径给去掉

     ⑫ 安装Nginx

        1.上传解压 nginx

        2.下载所需要的依赖库

           命令: yum install pcre   yum install pcre-devel

          命令:  yum install zlib     yum install zlib-devel

        3.进入nginx目录下

          命令: cd /usr/local/software/nginx-1.8.0/ && ll

           

           加入模块命令:

            ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/

            在nginx的src 中把 module中的命令添加进来

            

           重新编译安装命令:

            make && make install

         

        4.复制 fastdfs-nginx-module 中的配置文件,到 /etc/fdfs 目录中

          命令:  cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf  /etc/fdfs/

          因为启动FastDFS时会用到fastdfs-nginx-module整合包中的命令,所以将它拷贝到启动文件夹下

        5.修改刚才复制过来的文件 mod_fastdfs.conf

          命令: vim /etc/fdfs/mod_fastdfs.conf

          修改内容: 连接超时时间、跟踪器路径配置、url 的group 配置

            connect_timeout=10

            tracker_server=192.168.25.131:22122

            url_have_group_name=true(这样才可以通过地址栏访问到)

            store_path0=/fastdfs/storage

        6.复制刚才安装FastDfs下的配置文件

          进入命令:cd /usr/local/software/FastDFS/conf && ll

          复制命令:  cp http.conf mime.types /etc/fdfs/

        7.创建软连接

          在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录

          命令:  ln -s /fastdfs/storage/data/  /fastdfs/storage/data/M00

        8.修改nginx的配置文件(这个nginx是加过module 的这个nginx,不是单一的nginx)

          进入命令:   cd /usr/local/nginx/conf  && ll

          修改命令:   vim nginx.conf

            1.修改服务端口号

            

            因为我们在配置 storage的http.server_prot=8888 所以要跟这个服务保持一致

            

          2.修改 location 的匹配规则

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

              ngx_fastdfs_module;

            }

        

        9.最后检查防火墙,然后我们启动 nginx服务

          启动nginx命令:      /usr/local/nginx/sbin/nginx

          关闭nginx命令: /usr/local/nginx/sbin/nginx -s stop

          重新加载命令:      /usr/local/nginx/sbin/nginx -s reload

          启动成功:

          

        10.查看nginx启动成功

        地址栏: http://192.168.25.132:8888

        

       11.验证上传图片

        1.把tracker 和storaged 2个服务启起来

        2.上传

          上传命令:   /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/img.jpg

          

        3.在地址栏进行访问

          把 storaged 的地址和返回的group id 拼接,进行访问

          地址:

           192.168.25.132:8888/group1/M00/00/00/wKgZhFo9As2AeSMYABWdflqP_oo764.jpg

          

简单搭建FastDFS分布式文件系统(简单易懂)的更多相关文章

  1. Linux - 搭建FastDFS分布式文件系统

    1. FastDFS简介 说明:FastDFS简介部分的理论知识全部来自于博主bojiangzhou的 <用FastDFS一步步搭建文件管理系统>,在此感谢博主的无私分享.当然最最要感谢的 ...

  2. CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群

    分布式集群搭建结构 双Tracker 2组Group 轮询存储策略 Keepalived+Nginx高可用 Nginx缓存 4个存储节点 一. 集群规划清单 1.安装清单 软件名称 版本 百度云盘存放 ...

  3. 基于docker容器搭建fastdfs分布式文件系统

    本次环境的搭建参考了 https://blog.csdn.net/qq_43455410/article/details/84797814, 感谢博主. 主要流程如下: 1. 下载fastdfs镜像 ...

  4. 07.Linux系统-Fastdfs分布式文件系统-互为主从配置搭建部署

    Fastdfs分布式文件系统-互为主从配置部署 1.安装基础依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl ...

  5. FastDFS分布式文件系统

    FastDFS分布式文件系统 阅读目录 相关文章 1 分布式文件系统介绍 2 系统架构介绍 3 FastDFS性能方案 4 Linux基本命令操作 5 安装VirtualBox虚拟机并配置Ubuntu ...

  6. django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除

    运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.16 ...

  7. Dubbo入门到精通学习笔记(八):ActiveMQ的安装与使用(单节点)、Redis的安装与使用(单节点)、FastDFS分布式文件系统的安装与使用(单节点)

    文章目录 ActiveMQ的安装与使用(单节点) 安装(单节点) 使用 目录结构 edu-common-parent edu-demo-mqproducer edu-demo-mqconsumer 测 ...

  8. CentOS7 安装FastDFS分布式文件系统

    CentOS7 安装FastDFS分布式文件系统 最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的过程中遇到过很多的问题,为了能帮忙到以后搭建FastDFS的同学,少走弯路,与大家 ...

  9. FastDFS分布式⽂文件系统

    FastDFS分布式⽂文件系统  1. 什么是FastDFS FastDFS 是⽤用 c 语⾔言编写的⼀一款开源的分布式⽂文件系统.FastDFS 为互联⽹网量量身定制, 充分考虑了了冗余备份.负载均 ...

随机推荐

  1. 【云安全与同态加密_调研分析(3)】国内云安全组织及标准——By Me

    ◆3. 国内云安全组织及标准◆ ◆云安全标准机构(主要的)◆ ◆标准机构介绍◆ ◆相关标准制定◆ ◆建立的相关模型参考◆ ◆备注(其他参考信息)◆ ★中国通信标准化协会(CCSA) ●组织简介:200 ...

  2. GROUP BY 和 ORDER BY一起使用

    转:http://lzfhope.blog.163.com/blog/static/636399220092554045196/ 环境:oracle 10g单单group by 或者order by本 ...

  3. linux 目录与文件命令

    目录与文件常用命令 1.cd命令 cd [相对路径或绝对路径或特殊符号] 功用:变换目录 ps: 不加参数时,默认切换到用户主目录,即环境变量HOME指定的目录,如root用户的HOME变量为/roo ...

  4. R中的一些基础1106

    1.R中NA,NaN,Inf代表什么? NA:缺失数据 NaN:无意义的数,比如sqrt(-2) Inf:正无穷大 -Inf:负无穷大 2.确定一个数值型vector的第一个最值(最大/最小)的下标: ...

  5. What does Quick Sort look like in Python?

    Let's talk about something funny at first. Have you ever implemented the Quick Sort algorithm all by ...

  6. BFC 详说 Block Formatting Contexts (块级格式化上下文)

    定位方案是控制元素的布局,在 CSS 2.1 中,有三种定位方案——普通流 (Normal Flow) .浮动 (Floats) 和绝对定位 (Absolute Positioning) ,下面分别对 ...

  7. appium不同姿势安装

    一 桌面版(打开很慢,常用于辅助元素定位) 1.官网下载window版本: 2.直接点击图标即可打开  

  8. cocos2dx lua invalid 'cobj' in function 'lua_cocos2dx‘ 躺坑

    for 循环中保存了创建的 Node节点到 userdata 数据结构中 再次引用发现 一直报 LUA ERROR: [string ".\framework/cocos2dx/NodeEx ...

  9. U盘在制作Ubuntu启动盘后Windows系统下显示空间不对的解决办法(Ubuntu系统下格式化U盘的方法)

    用Ubuntu系统自带的启动盘制作工具后,将U盘拿到Windows系统下使用显示出的空间与U盘大小不同. 解决该问题的办法: 使用Linux终端: 第一步:sudo fdisk -l 这个命令主要是查 ...

  10. python单元测试框架——pytest

    官网:https://docs.pytest.org/en/latest/ pytest帮你写出更好的程序 1.An example of a simple test:(一个简单的例子),命名为tes ...