1. 安装依赖环境
    yum install make cmake gcc gcc-c++ pcre-devel zlib-devel perl-devel
  2. 安装libfastcommon-master.zip依赖
    wget https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz -O libfastcommon-master.tar.gz
    mkdir -p /usr/local/fast/
    tar -xf libfastcommon-master.tar.gz -C /usr/local/fast/
    cd libfastcommon-1.0.36
    ./make.sh
    ./make.sh install
    libfastcommon.so默认安装到了/usr/lib64/libfastcommon.so
    而FastDFS主程序设置的lib目录是/usr/local/lib/
    设置软连接
    ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
    ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
    ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
    ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
  3. 安装Fastdfs
    wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -O FastDFS-5.1.1.tar.gz
    tar -xf FastDFS-5.1.1.tar.gz -C /usr/local/fast/
    cd fastdfs-5.11
    ./make.sh
    ./make.sh install
  4. storage服务器配置(默认监听端口23000)
    安装fastdfs-nginx-module
    cd /usr/local/fast/
    git clone https://github.com/happyfish100/fastdfs-nginx-module.git
    通过nginx或openresty的安装包源目录编译安装
    ./configure --user=www --group=www --with-http_stub_status_module --with-http_flv_module --with-http_gzip_static_module  --add-module=/usr/local/fast/fastdfs-nginx-module/src
    ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src
    make
    make install
    ### 报错处理
    修改 fastdfs-nginx-module-1.20/src/config 文件,修改如下:
    ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
    然后重新 configure make make install,就可以了
    storage配置文件修改
    cd /etc/fdfs/
    cp storage.conf.sample storage.conf
    #### base_path=/fastdfs/FastDFSdata (这里的文件目录如果没有,要自己新建,不然会报错)
    #### store_path0=/fastdfs/FastDFSdata (建议与bast_path一样)
    #### tracker_server要改为自己的trakcer_server的ip
    vim storage.conf
    disabled=false
    group_name=group1
    bind_addr=
    client_bind=true
    port=23000
    connect_timeout=30
    network_timeout=60
    heart_beat_interval=30
    stat_report_interval=60
    base_path=/fastdfs/FastDFSdata
    max_connections=256
    buff_size = 256KB
    accept_threads=1
    work_threads=4
    disk_rw_separated = true
    disk_reader_threads = 1
    disk_writer_threads = 1
    sync_wait_msec=50
    sync_interval=0
    sync_start_time=00:00
    sync_end_time=23:59
    write_mark_file_freq=500
    store_path_count=1
    store_path0=/fastdfs/FastDFSdata
    subdir_count_per_path=2
    tracker_server=10.10.24.237:22122
    #tracker_server=10.10.24.238:22122
    log_level=info
    allow_hosts=*
    file_distribute_path_mode=0
    file_distribute_rotate_count=100
    fsync_after_written_bytes=0
    sync_log_buff_interval=10
    sync_binlog_buff_interval=10
    sync_stat_file_interval=300
    thread_stack_size=512KB
    upload_priority=10
    if_alias_prefix=
    check_file_duplicate=0
    file_signature_method=hash
    key_namespace=FastDFS
    keep_alive=0
    use_access_log = false
    rotate_access_log = false
    access_log_rotate_time=00:00
    rotate_error_log = false
    error_log_rotate_time=00:00
    rotate_access_log_size = 0
    rotate_error_log_size = 0
    log_file_keep_days = 0
    file_sync_skip_invalid_record=false
    use_connection_pool = false
    connection_pool_max_idle_time = 3600
    http.domain_name=
    http.server_port=80

    storage.conf

    复制配置文件
    cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf ./
    cp /usr/local/fast/fastdfs-5.11/conf/http.conf ./
    cp /usr/local/fast/fastdfs-5.11/conf/mime.types ./
    mod_fastdfs.conf 配置
    更改/etc/fdfs/mod_fastdfs.conf,增加"#include http.conf",必须加#号
    vim /etc/fdfs/mod_fastdfs.conf

    connect_timeout=2
    network_timeout=30
    base_path=/fastdfs/FastDFSdata
    load_fdfs_parameters_from_tracker=true
    storage_sync_file_max_delay = 86400
    use_storage_id = false
    storage_ids_filename = storage_ids.conf
    tracker_server=10.10.24.237:22122
    #tracker_server=10.10.24.238:22122
    storage_server_port=23000
    group_name=group1
    url_have_group_name = true
    store_path_count=1
    store_path0=/fastdfs/FastDFSdata
    log_level=info
    log_filename=/fastdfs/FastDFSdata/mod_fdfs.log
    response_mode=proxy
    if_alias_prefix=
    #include http.conf
    flv_support = true
    flv_extension = flv
    group_count = 0

    mod_fastdfs.conf

  5. tracker服务器配置(默认监听端口22122)
    tracker配置文件修改
    cd /etc/fdfs/
    cp tracker.conf.sample tracker.conf
    cp /usr/local/fast/fastdfs-5.11/conf/storage_ids.conf ./
    vim tracker.conf
    disabled=false
    bind_addr=
    port=22122
    connect_timeout=30
    network_timeout=60
    base_path=/fastdfs/FastDFSdata
    max_connections=256
    accept_threads=1
    work_threads=4
    store_lookup=2
    store_group=group2
    store_server=0
    store_path=0
    download_server=0
    reserved_storage_space = 10%
    log_level=info
    allow_hosts=*
    sync_log_buff_interval = 10
    check_active_interval = 120
    thread_stack_size = 64KB
    storage_ip_changed_auto_adjust = true
    storage_sync_file_max_delay = 86400
    storage_sync_file_max_time = 300
    use_trunk_file = false
    slot_min_size = 256
    slot_max_size = 16MB
    trunk_file_size = 64MB
    trunk_create_file_advance = false
    trunk_create_file_time_base = 02:00
    trunk_create_file_interval = 86400
    trunk_create_file_space_threshold = 20G
    trunk_init_check_occupying = false
    trunk_init_reload_from_binlog = false
    trunk_compress_binlog_min_interval = 0
    use_storage_id = false
    storage_ids_filename = storage_ids.conf
    id_type_in_filename = ip
    store_slave_file_use_link = false
    rotate_error_log = false
    error_log_rotate_time=00:00
    rotate_error_log_size = 0
    log_file_keep_days = 0
    use_connection_pool = false
    connection_pool_max_idle_time = 3600
    http.server_port=8080
    http.check_alive_interval=30
    http.check_alive_type=tcp
    http.check_alive_uri=/status.html

    tracker.conf

    storage_ids.conf 配置
    vi storage_ids.conf 
    100001 group1 10.10.24.237
    #100002 group1 10.10.24.238

  6. storage服务器nginx配置
    touch /fastdfs/FastDFSdata/mod_fdfs.log
    chmod 777 /fastdfs/FastDFSdata/mod_fdfs.log
    添加nginx虚拟主机配置文件
    server {
    listen 80;
    server_name fastcdn.test.com;
    access_log /data/logs/nginx/access_fastcdn.test.com_80.log main buffer=10k flush=5s;
    error_log /data/logs/nginx/error_fastcdn.test.com_80.log crit;
    location /group1/M00 {
    alias /fastdfs/FastDFSdata/data;
    ngx_fastdfs_module;
    }
    }
  7. 启停服务
    tracker: fdfs_trackerd /etc/fdfs/tracker.conf restart
    tracker: fdfs_trackerd /etc/fdfs/tracker.conf stop 
    storage: fdfs_storaged /etc/fdfs/storage.conf restart
    storage: fdfs_storaged /etc/fdfs/storage.conf stop
    (storage机器) nginx: /etc/init.d/nginx restart
  8. 功能测试
    tracker 服务器
    client.conf客户端配置:
    cd /etc/fdfs/
    cp client.conf.sample client.conf
    vim client.conf
    connect_timeout=30
    network_timeout=60
    base_path=/fastdfs/FastDFSdata
    tracker_server=10.10.24.237:22122
    #tracker_server=10.10.24.238:22122
    log_level=info
    use_connection_pool = false
    connection_pool_max_idle_time = 3600
    load_fdfs_parameters_from_tracker=false
    use_storage_id = false
    storage_ids_filename = storage_ids.conf
    http.tracker_server_port=80

    client.conf

    文件上传:
    cd /usr/local/fast
    echo "fdfs">fdfs.txt
    执行上传:
    fdfs_test /etc/fdfs/client.conf upload fdfs.txt
    文件下载:
    通过提示的URL,打开网页直接下载

  9. 集群说明
    节点增加
    tracker :可以动态扩容增加,需要配置storage 配置中增加tracker IP及端口,并重载配置
    storage : 动态添加,tracker 自动发现,文件会自动进行多节点同步 
    节点删除
    tracker : 删除节点,需要同步修改storage配置
    storage: 删除节点,tracker 会自动同步
    备份策略
    tracker:无数据,程序部分可通过多台实现互备
    storage: 数据存储,有多台相互之间自动实现同步
    分布式方案
    tracker: 多台部署,避免单点故障
    storage: 多台部署能够自动实现互备
  10. 安装php拓展
    cd /usr/local/fast/fastdfs-5.11/php_client/
    /usr/local/php7/bin/phpize
    ./configure --with-php-config=/usr/local/php7/bin/php-config
    make 
    make install
    /usr/local/php7/bin/php -m | grep fastdfs
  11. 查看配置
    fdfs_monitor /etc/fdfs/storage.conf
    fdfs_monitor /etc/fdfs/client.conf
    fdfs_file_info /etc/fdfs/client.conf group1/M00/01/01/rBLin109O96AewiGAADJ2ivPi74763.jpg

FastDFS 分布式文件系统搭建的更多相关文章

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

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

  2. FastDFS分布式文件系统

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

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

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

  4. FastDFS分布式⽂文件系统

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

  5. Spark环境搭建(一)-----------HDFS分布式文件系统搭建

    下载的压缩文件放在~/software/    解压安装在~/app/ 一:分布式文件系统搭建HDFS 1,下载Hadoop HDFS环境搭建    使用版本:hadoop-2.6.0-cdh5.7. ...

  6. FastDFS 分布式文件系统的安装与使用(单节点)

    FastDFS 分布式文件系统的安装与使用(单节点) 跟踪服务器:192.168.4.121 (edu-dfs-tracker-01) 存储服务器:192.168.4.125 (edu-dfs-sto ...

  7. 使用Webupload上传图片到FastDFS分布式文件系统

    使用Webupload插件上传图片到FastDFS分布式文件系统. 前提条件:1.已安装FastDFS分布式文件系统 2.使用webuploader插件上传文件 3.maven工程已引入FastDFS ...

  8. FastDFS 分布式文件系统部署实战及基本使用

    FastDFS 分布式文件系统部署实战及基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. FastDFS是一个开源的高性能分布式文件系统.它的主要功能包括:文件存储,文件同步 ...

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

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

随机推荐

  1. 两种常用的全排列算法(java)

    问题:给出一个字符串,输出所有可能的排列. 全排列有多种算法,此处仅介绍常用的两种:字典序法和递归法. 1.字典序法: 如何计算字符串的下一个排列了?来考虑"926520"这个字符 ...

  2. SQL Server非域(跨域)环境下镜像(Mirror)的搭建步骤及注意事项

    在实际的生产环境下,我们经常需要跨域进行数据备份,而创建Mirror是其中一个方案.但跨域创建Mirror要相对复杂的多,需要借助证书进行搭建. 下面我们将具体的步骤总结如下: 第一部分 创建证书 S ...

  3. MySQL5.7参数log_timestamps

    最近测试MySQL 5.7.21  Community Server这个版本的MySQL数据库时,发现其错误日志的时间跟系统当前时间不一致,后面检查发现日期时间格式都是UTC时间,查了一下相关资料,原 ...

  4. C#基础第七天

    1.ref参数ref参数侧重于将一个变量以参数的形式带到一个方法中进行改变,改变完成后,再讲改变后的值带出来.在使用ref参数的时候需要注意:ref参数在方法外必须为其赋值. 2.方法的重载方法的重载 ...

  5. deepin 15.8桌面系统

    深度桌面环境是深度科技自主开发的美观易用.极简操作的桌面环境,主要由桌面.启动器.任务栏.控制中心.窗口管理器等组成,系统中预装了 WPS Office.搜狗输入法.有道词典.网易云音乐以及深度特色应 ...

  6. Python基础——8错误、调试和测试

    捕捉错误 try: print('try...') r = 10 / int('2') print('result:', r) except ValueError as e: print('Value ...

  7. jquery-插件iCheck 使用

    这是一个兼容多种浏览器的插件 官网:http://icheck.fronteed.com/ 官方给出了很多的例子,我说一个使用的问题. 使用的时候,要放到window..load的外部. 页面html ...

  8. HBase Rowkey 设计指南

    为什么Rowkey这么重要 RowKey 到底是什么 我们常说看一张 HBase 表设计的好不好,就看它的 RowKey 设计的好不好.可见 RowKey 在 HBase 中的地位.那么 RowKey ...

  9. maven-assembly-plugin打包可执行的jar包

    pom.xml添加 <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</a ...

  10. JavaScript代码组织结构良好的5个特点

    JavaScript代码组织结构良好的5个特点,随着JavaScript项目的成长,如果你不小心处理的话,他们往往会变得难以管理.我们发现自己常常陷入的一些问题: 当在创建新的页面时发现,很难重用或测 ...