zoukankan      html  css  js  c++  java
  • 学习FastDfs(一)

    一、简介

    FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成

    fastfds有两个角色:跟踪服务和存储服务

        跟踪服务控制:主要做调度工作,在访问上起负载均衡的作用。

        存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据

    不同组的Storage server之间不会相互通信,同组内的Storage server之间会相互连接进行文件同步。

    上传:

    下载:

    二、安装

    https://github.com/happyfish100

    1、安装libfastcommon

    unzip libfastcommon-master.zip
    cd libfastcommon-master
    yum install gcc
    ./make.sh  &&  ./make.sh  install

    2、安装 FastDFS

    unzip  fastdfs-master.zip 
    cd fastdfs-master ./make.sh && ./make.sh install

    3、配置 Tracker 服务

    mkdir -pv /data/fdfs_tracker
    1、修改配置文件
    cd /etc/fdfs
    cp tracker.conf.sample tracker.conf
    vim tracker.conf
     base_path=/data/fdfs_tracker
    2、启动服务 /etc/init.d/fdfs_trackerd start
    netstat -lnt | grep 22122

    4、配置 Storage 服务

    mkdir -pv /data/fdfs_storage/base
    mkdir -pv /data/fdfs_storage/store
    1、修改配置文件
    cd /etc/fdfs
    cp storage.conf.samplestorage.conf
    vim storage.conf
     base_path=/data/fdfs_storage/base      #运行数据文件和日志目录
     store_path0=/data/fdfs_storage/store   #实际文件存储路径
     tracker_server=192.168.4.16:22122
     tracker_server=192.168.4.17:22122
    
    2、启动服务
    /etc/init.d/fdfs_storaged start
    netstat -lnt| grep 23000

    5、服务监听测试

    测试storage服务器是否登记到tracker服务器

    /usr/bin/fdfs_monitor /etc/fdfs/storage.conf

    6、客户端配置

    cd /etc/fdfs
    cp client.conf.sample client.conf
    vim client.conf
    base_path=/tmp
    tracker_server=192.168.4.16:22122
    tracker_server=192.168.4.17:22122

    上传文件:

    fdfs_upload_file /etc/fdfs/client.conf /etc/hosts

    下载文件:

    fdfs_download_file etc/fdfs/client.conf  group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404

    查看文件信息

    fdfs_file_info /etc/fdfs/client.conf  group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404

    删除文件

    fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404

    追加上传:

    echo abc > f1.txt
    echo def > f2.txt
    fdfs_upload_appender /etc/fdfs/client.conf  f1.txt
    fdfs_download_file  /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txt  内容和f1.txt一致
    fdfs_append_file  /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txtf2.txt  追加上传
    fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txt 内容f1+f2

    删除某个storagegroup

    1、停止服务
    /etc/init.d/fdfs_storaged stop
    2、删除节点
    fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.4.17

    php客户端:

    1、安装模块
    yum install php php-devel php-fpm php-mbstring php-common 
    cd fastdfs-master/php_client/
    /usr/bin/phpize
    ./configure  --with-php-config=/usr/bin/php-config
    make && make install
    2、测试
    cat fastdfs_client.ini >> /etc/php.ini  #追加到php.ini
    /usr/bin/php  fastdfs_test.php 
    /usr/bin/php -i | grep configure        #查看php编译参数
    /usr/bin/php -i | grep php.ini          #查看ini文件路径       

    Java客户端:

    java -version  检查Java环境
    下载 https://github.com/happyfish100/fastdfs-client-java
    yum install ant
    cd fastdfs-client-java/src
    ant
    生成 /root/fastdfs-client-java/src/build/fastdfs_client.jar

    上传:

    java -cp fastdfs_client.jar org.csource.fastdfs.test.TestClient /etc/fdfs/client.conf /etc/resolv.conf  

    监控fastdfs的状态

    java -cp fastdfs_client.jar  org.csource.fastdfs.test.Monitor /etc/fdfs/client.conf

    nginx模块客户端:

    https://github.com/happyfish100/fastdfs-nginx-module

    1、下载并解压
    unzip fastdfs-nginx-module-master.zip
    2、重新编译nginx,添加模块
    cd nginx
     ./configure  --prefix=/app/nginx -add-module=/root/fastdfs-nginx-module/src/
    make (只make不make install,make install后会覆盖之前的安装)
    cp objs/nginx /app/nginx/sbin/nginx
    3、修改配置
    cd /root/fastdfs-nginx-module/src/
    cp mod_fastdfs.conf /etc/fdfs/
    cd /root/fastdfs/conf/
    cp anti-steal.jpg http.conf mime.types   /etc/fdfs/
    touch /var/log/mod_fastdfs.log
    chown nginx.nginx /var/log/mod_fastdfs.log
    vim /etc/nginx/nginx.conf 
     location /group1/M00 {
    
                    root /data/fdfs_storage/store;
    
                    ngx_fastdfs_module;
    
            }
    vim /etc/fdfs/mod_fastdfs.conf 
     tracker_server=192.168.4.16:22122
     tracker_server=192.168.4.17:22122
     url_have_group_name=true
     store_path0=/data/fastdfs/storage     # 要和/etc/fdfs/storage.conf里的一致
     log_filename=/var/log/mod_fastdfs.log
     response_mode=proxy
    nginx -t
    nginx -s stop && nginx

    上传测试:

    fdfs_upload_file /etc/fdfs/client.conf DSC_0171.JPG

    浏览器访问:http://192.168.4.16/group1/M00/00/00/wKgXhVh545iAP6ETADyH-kmtQ2U888.JPG

    注:生产中每个storage server上都要装fastdfs-nginx-module

  • 相关阅读:
    php解析word,获得文档中的图片
    小程序 图表 antv f2 的使用
    eslint配置大全
    node 操作word excel
    vue-element-admin
    python中字符串前的r什么意思
    python3 三种字符串(无前缀,前缀u,前缀b)与encode()
    Markdown语法
    Python3 字符串前面加u,r,b的含义
    Python os.walk()
  • 原文地址:https://www.cnblogs.com/wuhg/p/10395187.html
Copyright © 2011-2022 走看看