zoukankan      html  css  js  c++  java
  • FastDFS 分布式文件系统搭建

    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;
          }
      }
      View Code
    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
  • 相关阅读:
    [Git & GitHub] 利用Git Bash进行第一次提交文件
    Linux下 Unison 实现文件双向同步
    Linux SSH使用公钥私钥实现免登陆
    SSH自动断开连接的原因
    hosts.deny 和hosts.allow 配置不生效
    bind启动时提示953端口被使用
    Linux查询系统配置常用命令
    Linux 查硬件配置
    BIND rndc—使用说明
    rndc 错误解决 和 远程配置
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/8316481.html
Copyright © 2011-2022 走看看