人若无名,便可专心练剑

分布式文件系统fastDFS部署与配置

  |   0 评论   |   5,361 浏览
    架构:
    跟踪节点(tracker) :跟踪器主要做调度工作,在访问上起负载均衡的作用
                                       比如我们上传文件时需先向tacker节点申请存储节点,tracker根据资源情况给我们返回一台存储节点,并通过返回的存储节点上传到存储节点服务器(存储节点间数据自动同步)
    存储节点(storager):存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,
                                       FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,
                                       以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。
                                       文件metadata是文件属性列表,可以 包含多个键值对


    环境
    tracker:192.168.3.111 cluster1
    storager:   192.168.3.112 cluster2  192.168.3.113 cluster3
    环境准备:
     yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel git libevent

    另外需要安装额外的commonlib包:

     需要准备一个用户和一个用户组:


     useradd fastdfs -M -s /sbin/nologin 


    (默认会创建一个用户组)

    安装:
    (注:无论tracker节点,还是storager节点安装都一样 ,安装记录只以tracker为准)
           下载安装文件: fastdfs:

    1,下载
    当前目录:/home/cluster1
    [root@localhost cluster1]# git clone https://github.com/happyfish100/fastdfs.git
     2,安装
    [root@localhost cluster1]#  cd fastdfs
    [root@localhost cluster1]# ./make.sh && ./make.sh install
    说明:安装后程序会默认安装到系统bin目录下
    3,拷贝几个额外的配置文件(安装后/etc/fdfs/ 目录下已经有这么几个默认文件:client.conf.sample   storage.conf.sample  tracker.conf.sample)
    [root@localhost cluster1]#cp -rv /home/cluster1/fastdfs/conf/httpd.conf /etc/fdfs/  #(如果要用httpserver 或者使用nginx作为文件获取服务器必须要这个文件)
    [root@localhost cluster1]#   cp -rv /home/cluster1/fastdfs/conf/mime.types /etc/fdfs/ 
    4,关闭防火墙或则建立防火墙规则(很重要
          
    配置:
    (注意:配置tracker 和storager 存在区别)
    1,tracker 配置
         a,创建相关数据存放目录
              
    [root@localhost cluster1]# mkdir -p /data/fastdfs/tracker
         b, copy配置模板文件
         
    [root@localhost cluster1]#   cp -rv /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
          c, 配置copy的后文件          
    [root@localhost cluster1]# vim /etc/fdfs/tracker.conf
               将该文件做以下修改:
                   
                 base_path=/data/fastdfs/tracker
                 store_lookup=0
                 store_group=g1 #(上传文件时存放的组名)
                 store_path=0
                 run_by_group=fastdfs
                 run_by_user=fastdfs
                 rotate_error_log=true

                默认会启动自带的httpserver 我们可以注销掉相关配置:
                 
     # HTTP port on this tracker server
     #http.server_port=8080
     # check storage HTTP server alive interval seconds
     # <= 0 for never check
    # default value is 30
     #http.check_alive_interval=30
    # check storage HTTP server alive type, values are:
     #   tcp : connect to the storge server with HTTP port only,
    #        do not request and get response
     #   http: storage check alive url must return http status 200
    # default value is tcp
     #http.check_alive_type=tcp
    
    # check storage HTTP server alive uri/url
     # NOTE: storage embed HTTP server support uri: /status.html
     #http.check_alive_uri=/status.html

           d:配置服务项并注册为服务
                 
     [root@localhost  cluster1]# cp /home/cluster1/fastdfs/init.d/fdfs_trackerd /etc/init.d/
     [root@localhost  cluster1]# chkconfig --add fdfs_trackerd
     [root@localhost  cluster1]# chkconfig fdfs_trackerd on

    2,配置storager (使用cluster2,另外cluster3 也如此 )
                 a,创建相关数据存放目录
              
    [root@localhost cluster2]# mkdir -p /data/fastdfs/storage/data
               b, copy配置模板文件
               
    [root@localhost cluster2]#   cp -rv /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
              c, 配置copy的后文件
             
      [root@localhost cluster2]#   vim  /etc/fdfs/storage.conf
                   将该文件做以下修改:
                       
    group_name=g1  #(和tracker节点 保持一致性)
    base_path=/data/fastdfs
    store_path_count=1
    store_path0=/data/fastdfs/storage
    tracker_server=192.168.3.111:22122 #tracker 节点 
    run_by_group=fastdfs
    run_by_user=fastdfs
    file_distribute_path_mode=1 #文件分布式路径模式 开启
    rotate_error_log=true #开启错误日志

                  默认会启动自带的httpserver 建议注销掉相关配置:  
                           
    # use the ip address of this storage server if domain_name is empty,
    # else this domain name will ocur in the url redirected by the tracker server
    #http.domain_name=
    # the port of the web server on this storage server
    #http.server_port=80
              d:修改httpd.conf 文件 
                 
    #http.anti_steal.secret_key=FastDFS1234567890
    #http.anti_steal.token_check_fail=/home/yuqing/fastdfs/conf/anti-steal.jpg
              e: 配置并注册成为系统服务(我们也可以不注册成为系统服务,使用全路径名启动)
                
    [root@localhost cluster2]# cp /home/cluster2/fastdfs/init.d/fdfs_storaged/ /etc/init.d/fdfs_storaged
    [root@localhost cluster2]# chkconfig --add fdfs_storaged
    [root@localhost cluster2]# chkconfig fdfs_storaged on
    3,测试
          a, 启动tracker节点
              
    [root@localhost  cluster1]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
                  查看是否启动成功(我们可以使用ps或者netstat 命令查看端口22122)
          b, 启动storage节点
                 
    [root@localhost  cluster2]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
                    查看是否启动成功(我们可以使用ps或者netstat 命令查看端口 23000)
          
         配置客户端进行上传或者下载(实例为:命令行上传下载   另外官方提供了 java的lib包 也可以使用java 实现上传下载)
           c:配置客户端配置
                   我们以cluster2 为客户机
                
    [root@localhost cluster2]# pwd
    /home/cluster2
    [root@localhost cluster2]#vim client.conf
                 加入如下内容并保存:
                 
    base_path=/data/fastdfs
    tracker_server=192.168.3.111:22122 
       
           测试上传文件:
              [root@localhost cluster2]# fdfs_upload_file client.conf nginx.tar.gz   #格式 fdfs_upload_file  配置文件 需要上传的文件
              g1/M00/DC/17/wKgDcFS_BfuAD2xXAfM4AJDnK5k.tar.gz #上传成功后返回的路径
              测试下载文件 
              
     [root@localhost cluster2]# fdfs_download_file client.conf g1/M00/DC/17/wKgDcFS_BfuAD2xXAfM4AJDnK5k.tar.gz
    [root@localhost cluster2]# ls
    client.conf  fastdfs  fastdfs-nginx-module  libfastcommon  mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz  nginx  nginx.tar.gz  wKgDcFS_BfuAD2xXAfM4AJDnK5k.tar.gz
    [root@localhost cluster2]# ls -al
    total 531072
    drwx------.  6 cluster2 cluster2      4096 Jan 20 17:54 .
    drwxr-xr-x.  3 root     root          4096 Dec 23 02:59 ..
    -rw-------.  1 cluster2 cluster2       603 Jan 16 06:18 .bash_history
    -rw-r--r--.  1 cluster2 cluster2        18 Oct 16 06:56 .bash_logout
    -rw-r--r--.  1 cluster2 cluster2       176 Oct 16 06:56 .bash_profile
    -rw-r--r--.  1 cluster2 cluster2       124 Oct 16 06:56 .bashrc
    -rw-r--r--   1 root     root            60 Jan 20 17:42 client.conf
    drwxr-xr-x  11 root     root          4096 Jan 20 07:36 fastdfs
    drwxr-xr-x   4 root     root          4096 Jan 20 07:52 fastdfs-nginx-module
    drwxr-xr-x   5 root     root          4096 Jan 20 07:36 libfastcommon
    -rw-rw-r--.  1 cluster2 cluster2 478325708 Jan  5 08:07 mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz
    -rw-------.  1 cluster2 cluster2        23 Jan  6 00:57 .ndb_mgm_history
    drwxr-xr-x  10 root     root          4096 Jan 20 08:00 nginx
    -rw-r--r--   1 root     root      32716800 Jan 20 08:11 nginx.tar.gz  #(先前上传的源文件)
    -rw-r--r--   1 root     root      32716800 Jan 20 17:54 wKgDcFS_BfuAD2xXAfM4AJDnK5k.tar.gz (刚刚下载的文件)

    文件校验:
         [root@localhost cluster2]# md5sum nginx.tar.gz 
         ba70c99623327cf632a45c10ef4bb423  nginx.tar.gz
         [root@localhost cluster2]# md5sum wKgDcFS_BfuAD2xXAfM4AJDnK5k.tar.gz
         ba70c99623327cf632a45c10ef4bb423  wKgDcFS_BfuAD2xXAfM4AJDnK5k.tar.gz
    我们下载的文件内容和我们原来上传的文件内容一致

    另外我们可以检查运行状态
    [root@localhost cluster2]#fdfs_monitor client.conf

    注意:权限很重要,如果你不知道具体权限怎么设置 请强数据存放目录设置为 777 
              如:数据存放路径/data/fastdfs/storage
              我们设置权限: chmod -R 777  /data/fastdfs



    dropbox:邀请您的加入,让你随时随地同步您的文件:https://db.tt/wCU4HQq4

    人生格言: 如果说人生是自我编写的程序, 那么青春就是其中意味深长的代码。 或简单,分解成彼此独立的字符: 或复杂, 拼凑成一连串神秘的语句。 我们尝试着不断调试, 不断优化,无论编译结果如何, 过程才是最美。 如果说这段代码不能复制, 那么我愿意用一生去续写.

    评论

    发表评论

    validate