zoukankan      html  css  js  c++  java
  • FastDFS入门

    FastDFS入门

    1.分布式文件系统

    分布式文件系统是一个文件管理服务器,通常分布在不同的服务器节点上,这些服务器通过网络相连构成一个庞大的文件服务器集群。这些服务器都用于存储文件资源,通过分布式文件系统管理这些服务器上的文件。常见的文件系统有:FastDFS、GFS、HDFS、Ceph、GridFS、TFS等。

    2.传统的文件系统和分布式文件系统区别


    3.FastDFS介绍

    FastDFS是一个开源的轻量级分布式文件系统,C语言开发,阿里巴巴开源。主要功能:文件存储、文件同步、文件访问(文件上传、下载、删除),解决了大容量文件存储的问题,适用于以文件为载体的在线服务。
    FastDFS文件系统由客户端和服务端组成。FASTDFS提供了API访问(c,java,php支持),用来访问FastDFS.
    服务端包含两部分组成:一个是跟踪器tracer,一个是存储节点storage.跟踪器主要做调度工作,在内存中记录集群中存储的节点状态信息,是前端client和后端存储节点的枢纽。存储节点用来存储文件,包含文件和文件属性(meta data),都保存在存储服务器磁盘上,完成文件管理的所有功能:文件存储、文件同步、文件访问等。

    4.环境搭建

    (1.)检查linux上是否安装了gcc、Libevent、libevent-devel

    yum list installed |grep gcc
    yum list installed |grep libevent
    yum list installed |grep libevent-devel
    

    如果没有安装,则进行安装

    yum install gcc libevent libevent-devel -y
    

    (2.)安装libfastcommon库
    libfastcommon库是FastDFS文件系统运行需要的公共C语言函数库。注意:v1.0.39与FastDFS11不兼容。
    下载地址:https://github.com/happyfish100/fastdfs
    下载后解压

    tar -zxvf libfastcommon-1.0.36.tar.gz
    cd libfastcommon-1.0.36
    ./make.sh
    ./make.sh install
    

    (3.)下载fastDFS包
    下载地址:https://github.com/happyfish100/fastdfs/tags
    下载后解压

    tar -zxvf fastdfs-5.11.tar.gz
    cd fastdfs-5.11
    ./make.sh
    ./make.sh install
    

    (4.)修改配置文件

    cd /etc/fdfs
    mv client.conf.sample client.conf
    mv storage.conf.sample storage.conf
    mv storage _ids.conf.sample storage_ids.conf
    mv tracker.conf.sample tracker.conf
    

    (5.)修改tracker.conf文件

    vim tracker.conf
    base_path=/opt/fastdfs/tracker
    

    (6.)修改storage.conf文件

    vim storage.conf
    base_path=/opt/fastdfs/storage  # storage存储数据目录,注意:需要提前手动创建对应的目录
    store_path0=/opt/fastdfs/storage/files  # 真正存放文件的目录
    tracker_server=192.168.1.120:22122   # 跟踪器服务器地址
    
    # 创建对应的目录
    cd /opt
    mkdir fastdfs/tracker -p
    mkdir fastdfs/storage/files -p
    

    (7.)启动FastDFS的tracker服务

    fdfs_trackerd /etc/fdfs/tracker.conf  启动
    fdfs_trackerd /etc/fdfs/tracker.conf restart  # 重启
    fdfs_trackerd /etc/fdfs/tracker.conf stop  # 停止
    

    (8.)启动storage

    fdfs_storaged /etc/fdfs/storage.conf # 启动
    fdfs_storaged /etc/fdfs/storage.conf stop # 停止
    fdfs_storaged /etc/fdfs/storage.conf restart 重启 
    

    (9.)测试
    修改client.conf配置文件

    vim /etc/fdfs/client.conf
    base_path=/opt/fastdfs/client  # 提前创建目录
    tracker_server=192.168.1.120:22122
    
    # 创建目录
    mkdir -p /opt/fastdfs/client
    

    上传文件

    fdfs_test /etc/fdfs/client.conf upload /root/test.txt
    # 查看上传的文件
    cd /opt/fastdfs/storage/files/data/00/00/
    ls
    # 生成的文件目录结构和目录说明
    goup1/M00/00/0C/wkjiExxdjklsfjljljsdfa.h
    组名/磁盘/目录/文件名
    
    注意:没有搭建集群只有一个组group1,后缀包含-m的为属性文件(meta)
    

    测试文件删除

    fdfs_delete_file /etc/fdfs/client.conf group1/文件路径
    

    (9.)配置HTTP访问
    将fastdfs的Nginx扩展模块源码fastdfs-nginx-module-master.zip上传到linux上,解压unzip fastdfs-nginx-module-master.zip

    (9.1)安装Nginx
    下载Nginx源码

    cd nginx-1.14.2
    ./configure --prefix=/usr/local/nginx --add-module=/home/fastdfs-nginx-module-master/src  # 需要制定模块的源码路径
    make 
    make install
    
    # 拷贝配置文件
    cp /home/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
    
    修改mod_fastdfs.conf文件
    base_path=/opt/fastdfs/nginx_mod  # 提前创建目录
    tracker_server=192.168.1.120:22122
    url_have_group_name=true  # true表示访问路径中需要有group1 
    storage_path0=/opt/fastdfs/storage/files
    
    # 创建目录
    mkdir -p /opt/fastdfs/nginx_mod
    
    # 修改nginx.conf配置文件
    location ~/group[1-9]/M0[0-9]{
      ngx_fastdfs_module;
    }
    
    # 启动Nginx
    nginx -c /usr/local/nginx、conf/nginx.conf -t
    注意:nginx安装需要gcc,openssl,pcre,zlib需要提前安装
    yum install gcc openssl openssl-devel pcre zlib-devel -y
    
    【励志篇】: 古之成大事掌大学问者,不惟有超世之才,亦必有坚韧不拔之志。
  • 相关阅读:
    将python的代码文件打包成可执行文件
    SpringBoot整合JdbcTemplate连接Mysql
    Golang开发环境搭建
    java中的Lamdba表达式和Stream
    MySQL 优化1
    MySQL you *might* want to use the less safe log_bin_trust_function_creators variable
    MySQL mysqlbinlog
    MySQL 事件调度器
    MySQL 忘记密码解决办法
    MySQL 创建自定义函数(2)
  • 原文地址:https://www.cnblogs.com/tomtellyou/p/15114743.html
Copyright © 2011-2022 走看看