fastFDS

本文详细介绍了FastDFS分布式文件系统的概念、角色、上传下载流程,以及在Linux环境下进行安装配置的过程,包括Tracker和Storage服务器的启动,Nginx的整合,解决了文件同步延迟可能导致的访问错误。此外,还提供了Java客户端的使用建议和可能出现的问题解决方案。
摘要由CSDN通过智能技术生成

什么是fastFDS?

FastDFS是由淘宝的余庆先生所开发的一个开源的分布式文件系统。用纯C语言开发,功能丰富:

  • 文件存储
  • 文件同步
  • 文件访问(上传、下载)
  • 存取负载均衡
  • 在线扩容

适合有大容量存储需求的应用或系统。同类的分布式文件系统有谷歌的GFS、HDFS(Hadoop)、TFS(淘宝)等。

FastDFS两个主要的角色:Tracker Server 和 Storage Server 。

  • Tracker:跟踪服务器,管理集群,tracker也可以实现集群。每个tracker节点地位平等。收集Storage集群的状态 ,通过Tracker实现组与组,卷与卷之间的负载均衡。

  • Storage:存储服务器,实际保存文件,分为多个组,每个组之间保存的文件是不同的。每个组内部可以有多个成员,组成员内部保存的内容是一样的,组成员的地位是一致的,没有主从的概念。

在这里插入图片描述

上传和下载流程

上传

在这里插入图片描述

  1. Client通过Tracker server查找可用的Storage server。
  2. Tracker server向Client返回一台可用的Storage server的IP地址和端口号。
  3. Client直接通过Tracker server返回的IP地址和端口与其中一台Storage server建立连接并进行文件上传。
  4. 上传完成,Storage server返回Client一个文件ID(卷、目录),文件上传结束。

下载

在这里插入图片描述

  1. Client通过Tracker server查找要下载文件所在的的Storage server。
  2. Tracker server向Client返回包含指定文件的某个Storage server的IP地址和端口号。
  3. Client直接通过Tracker server返回的IP地址和端口与其中一台Storage server建立连接并指定要下载文件。
  4. 下载文件成功。

安装

linux版安装

1.c语言

由于FastDFS是纯C语言开发,所以安装前要安装C语言环境

yum -y install gcc

准备四个安装包

在这里插入图片描述

2.安装libfastcommon-master

libfastcommon-master.zip(是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库)

#解压刚刚上传的libfastcommon-master.zip
unzip libfastcommon-master.zip

#进入解压完成的目录
cd libfastcommon-master

#编译并且安装:
./make.sh 
./make.sh install

3.安装fastdfs

tar -zxvf FastDFS_v5.08.tar.gz

cd FastDFS

./make.sh 

./make.sh install

如果安装成功,会看到/etc/init.d/下看到提供的脚本文件:

ll /etc/init.d/ | grep fdfs 

在这里插入图片描述

  • fdfs_trackerd 是tracker启动脚本
  • fdfs_storaged 是storage启动脚本

能够在 /etc/fdfs/ 目录下看到默认的配置文件模板:

ll /etc/fdfs/

在这里插入图片描述

  • tarcker.conf.sample 是tracker的配置文件模板
  • storage.conf.sample 是storage的配置文件模板
  • client.conf.sample 是客户端的配置文件模板

4.配置并启动tracker服务

FastDFS的tracker和storage在刚刚的安装过程中,都已经被安装了,我们安装这两种角色的方式是一样的。不同的是,两种需要不同的配置文件。

我们要启动tracker,就修改刚刚看到的tarcker.conf,并且启动fdfs_trackerd脚本即可。

  • 首先将模板文件复制

    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    
  • 修改复制后的配置文件:

    vim /etc/fdfs/tracker.conf 
    

    修改的内容如下:

    base_path=/powershop/tracker                 # 存储日志和数据的根目录
    
  • 新建目录:

    mkdir -p /powershop/tracker
    
    

    注意:关闭防火墙:

    chkconfig iptables off
    
    
  • 启动和停止

    启动tracker服务器: /etc/init.d/fdfs_trackerd start

    停止tracker服务器: /etc/init.d/fdfs_trackerd stop

    不过安装过程中,fdfs已经被设置为系统服务,我们可以采用熟悉的服务启动方式:

    service fdfs_trackerd start # 启动fdfs_trackerd服务,停止用stop
    
    

    检查FastDFS Tracker Server是否启动成功:

    ps -ef | grep fdfs_trackerd
    
    

    设置tracker服务开机启动:

    chkconfig fdfs_trackerd on
    
    

5.配置并启动storage服务

  • 首先将模板文件复制

    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    
    
  • 修改复制后的配置文件:

    vim /etc/fdfs/storage.conf
    
    

    修改的内容如下:

    base_path=/powershop/storage                 # 日志文件存储根目录 
    
    store_path0=/powershop/storage           # 文件存储目录 
    
    tracker_server=192.168.255.130:22122       #  tracker服务器IP和端口 
    
    
  • 新建目录:

    mkdir -p /powershop/storage
    
    

    注意关闭防火墙: chkconfig iptables off

  • 启动和停止

    启动storage服务器:/etc/init.d/fdfs_storaged start

    停止storage服务器:/etc/init.d/fdfs_storaged stop

    推荐使用:

    service fdfs_storaged start  # 启动fdfs_storaged服务,停止用stop
    
    

    检查FastDFS Tracker Server是否启动成功:

    ps -ef | grep fdfs
    
    

    设置storage服务开机启动:

    chkconfig fdfs_storaged on
    
    

nginx

安装完成后我们使用nginx访问FastDFS

为什么需要用Nginx访问?

FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。

假设Tracker服务器将文件上传到了192.168.4.125,上传成功后文件ID已经返回给客户端。此时FastDFS存储集群机制会将这个文件同步到同组存储192.168.4.126,在文件还没有复制完成的情况下,客户端如果用这个文件ID在192.168.4.126上取文件,就会出现文件无法访问的错误。

而fastdfs-nginx-module可以重定向文件连接到文件上传时的源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误

安装fastdfs-nginx-module插件

  1. 解压

    tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
    
    
  2. 修改config

    • 进入src目录
    cd fastdfs-nginx-module/src/
    
    
    • 编辑config

      vim config
      
      

      使用以下底行命令:

      将所有的/usr/local替换为 /usr,这个才是正确的目录:

      官方提示修改

      :%s+/usr/local/+/usr/+g
      
      

配置fastdfs-nginx-module与FastDFS关联配置文件

复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改

cp /usr/upload/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

vim /etc/fdfs/mod_fastdfs.conf

修改以下配置:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值