FastDFS分布式文件系统的安装及配置-多服务器版

FastDFS分布式文件系统的安装及配置

  • 整体网络配置

       Tracker Server  192.168.127.11  /home/fastdfs/tracker 端口:22122
       Storage1 Server     192.168.127.12 group1 /home/fastdfs/fdfs_storage 端口:23000
       Storage2 -Server1(源)  192.168.127.13 group2 /home/fastdfs/fdfs_storage 端口:23000
       Storage2 -Server2    192.168.127.14 group2 /home/fastdfs/fdfs_storage 端口:23000
       注意:
       1.Storage2 同组的fastdfs服务的端口必须一致: port=23000
       2.如果开启http 端口 则Storage2 同组的http端口必须一致: http.server_port
       3.一台服务器可以装多个组但不能装同组的多个Storage,日志会报错误
       4.无论你是否启动内部绑定的的http服务器,都要安装libevent包,fastdfs内部调用libevent的处理机制
       
  •    #软件安装包存储:
       /usr/local/src
       /etc/fdfs/*     #tracker,storage ·· 配置文件所在目录
    
       #基本目录列表:
       /home/fastdfs/tracker    #创建tracker目录保存运行日志
       /home/fastdfs/fdfs_storage  #创建Storage目录保存运行日志及其data数据
    
       mkdir -p /home/fastdfs/tracker;
       mkdir -p /home/fastdfs/fdfs_storage;
    
       为方便查找目录,设置变量
       # vi .bashrc
       alias  worksrc='cd /usr/local/src;ls'
       alias  worktracker='cd /home/fastdfs/tracker;ls'
       alias  workstorage='cd /home/fastdfs/fdfs_storage;ls'
       #track启动 重启 停止
       alias  trackstart='/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf;netstat -tunl ';
       alias  trackrestart='/usr/local/bin/restart.sh  /usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf;netstat -tunl';
       alias  trackstop='/usr/local/bin/stop.sh  /usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf;netstat -tunl';
       #storaged 启动 重启 停止
       alias  storagedstart='/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf;netstat -tunl ';
       alias  storagedrestart='/usr/local/bin/restart.sh  /usr/local/bin/fdfs_storaged  /etc/fdfs/storage.conf;netstat -tunl';
       alias  storagedstop='/usr/local/bin/stop.sh  /usr/local/bin/fdfs_storaged  /etc/fdfs/storage.conf;netstat -tunl';
       配置生效
       # source .bashrc
       
  1. 安装libevent 和 FastDFS

    • 首先安装libevent,因为 FastDFS 在编译源程序时,需要用到libevent一些依赖文件,否则编译 FastDFS 会出错

          ##卸载系统自带libevent,自带版本过低,安装fastdfs会出错
          rpm -qa|grep libevent;yum remove libevent*
          #下载安装libevent
          worksrc;
          wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz;
          tar -zxvf libevent-2.0.19-stable.tar.gz;
          cd libevent-2.0.19-stable;
          make clean;
          ./configure --prefix=/usr/local/libevent
          make && make install;
      
          ##为libevent创建软链接到/lib库下,64位系统对应/lib64
          ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
          ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
      
          命令汇总:worksrc;wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz;tar -zxvf libevent-2.0.19-stable.tar.gz;cd libevent-2.0.19-stable;make clean;./configure --prefix=/usr/local/libevent;make && make install;cd ../
          
    • 安装FastDFS的步骤

          wget http://fastdfs.googlecode.com/files/FastDFS_v3.11.tar.gz
          tar -zxvf FastDFS_v3.11.tar.gz
          cd FastDFS
          #因为不启用内置http服务,所以不需要修改make.sh和开启端口
          ./make.sh C_INCLUDE_PATH=/usr/local/libevent/include LIBRARY_PATH=/usr/local/libevent/lib
          ./make.sh install
          
  2. 安装Tracker Server -192.168.127.11

    • 引用上例中安装libevent 和 FastDFS步骤
    • 配置及启动Tracker Server,端口:22122

         #修改tracker.conf配置
         vim /etc/fdfs/tracker.conf
         # the tracker server port
         port=22122
         # the base path to store data and log files
         base_path=/home/yuqing/fastdfs -> base_path=/home/fastdfs/tracker #日志目录
         reserved_storage_space = 4GB -> reserved_storage_space = 1GB
         
         #启动Tracker Server
         /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
         
         #启动过程中出现的错误
         #./fdfs_trackerd: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
         #解决办法
         ln -s /usr/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
         
    • #检查tracker是否启动成功,可以查看如下文件

         vim /home/fastdfs/tracker/logs/trackerd.log
         #[2012-08-26 19:01:30] INFO - FastDFS v3.11, base_path=/home/fastdfs/tracker, run_by_group=, run_by_user=, connect_timeout=30s, network_timeout=60s, port=22122, bind_addr=, max_connections=256, work_threads=4, store_lookup=0, store_group=, store_server=0, store_path=0, reserved_storage_space=1024MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s, check_active_interval=120s, thread_stack_size=64 KB, storage_ip_changed_auto_adjust=1, storage_sync_file_max_delay=86400s, storage_sync_file_max_time=300s, use_trunk_file=0, slot_min_size=256, slot_max_size=16 MB, trunk_file_size=64 MB, trunk_create_file_advance=0, trunk_create_file_time_base=02:00, trunk_create_file_interval=86400, trunk_create_file_space_threshold=20 GB
         
         #启动成功,加入开机启动
         # vim /etc/rc.d/rc.local
         /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
         

    安装Storage Server -192.168.127.12
    配置及启动存储服务(Storage Server)

    • 引用上例中安装libevent 和 FastDFS步骤
    •    #修改storage.conf配置
         vim /etc/fdfs/storage.conf
         # the name of the group this storage server belongs to
         group_name=group1
         # the name of the group this storage server belongs to
         # the storage server port #the storage server port
         port=23000
         # the base path to store data and log files #日志目录
         base_path=/home/yuqing/fastdfs -> /home/fastdfs/fdfs_storage
         # store_path#, based 0, if store_path0 not exists, it's value is base_path #data数据存储目录
         # the paths must be exist
         store_path0=/home/fastdfs/fdfs_storage
         # tracker_server can ocur more than once, and tracker_server format is
         #  "host:port", host can be hostname or ip address
         tracker_server=192.168.209.121:22122 -> tracker_server=192.168.127.11:22122
      
         #启动storage Server
         /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
      
         #接下来会出现很多mkdir data path,这是系统在创建数据目录
         data path: /home/fastdfs/fdfs_storage/data, mkdir sub dir...
         mkdir data path: 00 ...
         mkdir data path: 01 ...
         mkdir data path: 02 ...
         mkdir data path: 03 ...
         .......................
         data path: /home/fastdfs/fdfs_storage/data, mkdir sub dir done.
         
         #启动成功,加入开机启动
         # vim /etc/rc.d/rc.local
         /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
         

    安装Storage Server -192.168.127.13
    配置及启动存储服务(Storage Server)

    • 引用上例中安装libevent 和 FastDFS步骤
    •    #修改storage.conf配置
         vim /etc/fdfs/storage.conf
         # the name of the group this storage server belongs to
         group_name=group1 ->group_name=group2
         # the name of the group this storage server belongs to
         # the storage server port #the storage server port
         port=23000
         # the base path to store data and log files #日志目录
         base_path=/home/yuqing/fastdfs -> /home/fastdfs/fdfs_storage
         # store_path#, based 0, if store_path0 not exists, it's value is base_path #data数据存储目录
         # the paths must be exist
         store_path0=/home/fastdfs/fdfs_storage
         # tracker_server can ocur more than once, and tracker_server format is
         #  "host:port", host can be hostname or ip address
         tracker_server=192.168.209.121:22122 -> tracker_server=192.168.127.11:22122
      
         #启动storage Server
         /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
      
         #接下来会出现很多mkdir data path,这是系统在创建数据目录
         data path: /home/fastdfs/fdfs_storage/data, mkdir sub dir...
         mkdir data path: 00 ...
         mkdir data path: 01 ...
         mkdir data path: 02 ...
         mkdir data path: 03 ...
         .......................
         data path: /home/fastdfs/fdfs_storage/data, mkdir sub dir done.
         
         #启动成功,加入开机启动
         # vim /etc/rc.d/rc.local
         /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
         

    安装Storage Server -192.168.127.14
    配置及启动存储服务(Storage Server)

    • 引用上例中安装libevent 和 FastDFS步骤
    •    #修改storage.conf配置
         vim /etc/fdfs/storage.conf
         # the name of the group this storage server belongs to
         group_name=group1 ->group_name=group2
         # the name of the group this storage server belongs to
         # the storage server port #the storage server port
         port=23000
         # the base path to store data and log files #日志目录
         base_path=/home/yuqing/fastdfs -> /home/fastdfs/fdfs_storage
         # store_path#, based 0, if store_path0 not exists, it's value is base_path #data数据存储目录
         # the paths must be exist
         store_path0=/home/fastdfs/fdfs_storage
         # tracker_server can ocur more than once, and tracker_server format is
         #  "host:port", host can be hostname or ip address
         tracker_server=192.168.209.121:22122 -> tracker_server=192.168.127.11:22122
      
         #启动storage Server
         /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
      
         #接下来会出现很多mkdir data path,这是系统在创建数据目录
         data path: /home/fastdfs/fdfs_storage/data, mkdir sub dir...
         mkdir data path: 00 ...
         mkdir data path: 01 ...
         mkdir data path: 02 ...
         mkdir data path: 03 ...
         .......................
         data path: /home/fastdfs/fdfs_storage/data, mkdir sub dir done.
         
         #启动成功,加入开机启动
         # vim /etc/rc.d/rc.local
         /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
         
  3. 测试及使用FastDFS-192.168.127.11

    • FastDFS之配置client

        vim /etc/fdfs/client.conf
        base_path=/home/yuqing/fastdfs-> base_path=/home/fastdfs/tracker
        tracker_server=192.168.209.121:22122 -> tracker_server=192.168.127.11:22122
        
    •   cd /usr/local/bin
        vim aa.txt 增加内容:展示aa.txt文本数据   :wq
        ./fdfs_test /etc/fdfs/client.conf upload aa.txt
        

      执行成功后会出现如下提示:

        # ./fdfs_test /etc/fdfs/client.conf upload aa.txt
        [2012-08-25 02:08:26] INFO - base_path=/home/fastdfs/tracker, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0
        tracker_query_storage_store_list_without_group:
                server 1. group_name=group2, ip_addr=192.168.127.13, port=23000
        group_name=group2, ip_addr=192.168.127.6, port=23000
        storage_upload_by_filename
        group_name=group2, remote_filename=M00/00/00/wKh_BlA3wxql4hTXAAAAB8v-VvY710.txt
        source ip address: 192.168.127.13
        file timestamp=2012-08-25 02:08:26
        file size=7
        file crc32=3422443254
        file url:
        storage_upload_slave_by_filename
        group_name=group2, remote_filename=M00/00/00/wKh_BlA3wxql4hTXAAAAB8v-VvY710_big.txt
        source ip address: 192.168.127.6
        file timestamp=2012-08-25 02:08:26
        file size=7
        file crc32=3422443254
        file url:
        
        执行过程中可能出现防火墙封口:
        # ERROR - file: tracker_proto.c, line: 420, connect to 192.168.127.11:22122 fail, errno: 113, error info: No route to host
        解决:
        iptables -L;iptables -F;service iptables stop
        
    • 测试下载文件
      在浏览器中,输入上图中的url地址, tracker server会自动重定向到存储文件的storage server,文件下载成功。至此,已经成功搭建了FastDFS,编写你自己的client来进行访问吧:

        展示aa.txt文本数据
        
    • 常规命令范例:

        #启动tracker、storaged
        /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
        /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
      
        #重启tracker、storaged
        /usr/local/bin/restart.sh  /usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf
        /usr/local/bin/restart.sh  /usr/local/bin/fdfs_storaged  /etc/fdfs/storage.conf
      
        #停止tracker、storaged
        /usr/local/bin/stop.sh  /usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf
        /usr/local/bin/stop.sh  /usr/local/bin/fdfs_storaged  /etc/fdfs/storage.conf
      
        #监控storage
        /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf
        #如果存在多个多个组,只需要监控其中一个组,就能调出所有组的状态
      
        #删除组内服务器storage和查看各个组内服务器状态
        /usr/local/bin/fdfs_monitor /etc/fdfs/client.conf delete group2 192.168.127.13
        /usr/local/bin/fdfs_monitor /etc/fdfs/client.conf
        storage server有7个状态,如下(数值从1~7):
        # FDFS_STORAGE_STATUS:INIT      :初始化,尚未得到同步已有数据的源服务器
        # FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到同步已有数据的源服务器
        # FDFS_STORAGE_STATUS:SYNCING   :同步中
        # FDFS_STORAGE_STATUS:DELETED   :已删除,该服务器从本组中摘除
        # FDFS_STORAGE_STATUS:OFFLINE   :离线
        # FDFS_STORAGE_STATUS:ONLINE    :在线,尚不能提供服务
        # FDFS_STORAGE_STATUS:ACTIVE    :在线,可以提供服务
        
相关文章
  1. 对Web静态资源缓存自动更新的思考与实践的总结
  2. CentOS 6.5安装部署SVN 1.8.13
  3. php-redis扩展
  4. Redis安装部署
  5. gearman应用-分布式图库系统设计
  6. SVN trunk, branches and tags
本站版权
1、本站所有主题由该文章作者发表,该文章作者与尘埃享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和尘埃的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:
二维码
Posted in Cache/File存储, FastDFS分布式文件系统
Comments are closed.