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



跟踪服务器:192.168.4.121  (edu-dfs-tracker-01)  


存储服务器:192.168.4.125  (edu-dfs-storage-01)  


环境:CentOS 6.6  


用户:root                                                                      


数据目录:/fastdfs  (注:数据目录按你的数据盘挂载路径而定)  

安装包:  


FastDFS v5.05  


libfastcommon-master.zip (是从FastDFS 和FastDHT 中提取出来的公共C 函数库)  


fastdfs-nginx-module_v1.16.tar.gz  


nginx-1.6.2.tar.gz  


fastdfs_client_java._v1.25.tar.gz  


     源码地址:https://github.com/happyfish100/   


     下载地址:http://sourceforge.net/projects/fastdfs/files/   


     官方论坛:http://bbs.chinaunix.net/forum-240-1.html   

一、所有跟踪服务器和存储服务器均执行如下操作  


1、编译和安装所需的依赖包:  


     # yum install make cmake gcc gcc-c++  


       


2、安装libfastcommon:  


(1)上传或下载libfastcommon-master.zip 到/usr/local/src 目录  


(2)解压  


    # cd /usr/local/src/  


    # unzip libfastcommon-master.zip  


    # cd libfastcommon-master  


                                                                                  


(3) 编译、安装  


    # ./make.sh  


    # ./make.sh install  


    libfastcommon 默认安装到了  


    /usr/lib64/libfastcommon.so  


    /usr/lib64/libfdfsclient.so  


(4)因为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  


(1)上传或下载FastDFS 源码包 (FastDFS_v5.05.tar.gz)到 /usr/local/src  目录  


(2)解压  


     # cd /usr/local/src/  


     # tar -zxvf FastDFS_v5.05.tar.gz  


     # cd FastDFS  


                                                                                 


(3)编译、安装 (编译前要确保已经成功安装了libfastcommon)  


    # ./make.sh  


    # ./make.sh install  


      


    采用默认安装的方式安装,安装后的相应文件与目录:  


    A、服务脚本在:  


          /etc/init.d/fdfs_storaged  


          /etc/init.d/fdfs_tracker  


     B、配置文件在 (样例配置文件):  


          /etc/fdfs/client.conf.sample  


          /etc/fdfs/storage.conf.sample  


          /etc/fdfs/tracker.conf.sample  


     C、命令工具在/usr/bin/ 目录下的:  


          fdfs_appender_test  


          fdfs_appender_test1  


          fdfs_append_file  


          fdfs_crc32  


          fdfs_delete_file  


          fdfs_download_file  


          fdfs_file_info  


          fdfs_monitor  


          fdfs_storaged  


          fdfs_test  


          fdfs_test1  


          fdfs_trackerd  


          fdfs_upload_appender  


          fdfs_upload_file  


          stop.sh  


          restart.sh  


                     


(4)因为FastDFS 服务脚本设置的bin 目录是/usr/local/bin,但实际命令安装在/usr/bin,可以进入  


   /user/bin 目录使用以下命令查看fdfs 的相关命令:  


   # cd /usr/bin/  


   # ls | grep fdfs  


                                                                  
   因此需要修改FastDFS 服务脚本中相应的命令路径,也就是把/etc/init.d/fdfs_storaged  


   和/etc/init.d/fdfs_tracker 两个脚本中的/usr/local/bin 修改成/usr/bin:  


   # vi fdfs_trackerd  


   使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin  


   # vi fdfs_storaged  


   使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin  


  


二、配置FastDFS 跟踪器(192.168.4.121)  


1、  复制FastDFS 跟踪器样例配置文件,并重命名:  


    # cd /etc/fdfs/  


                                                                              


    # cp tracker.conf.sample tracker.conf  


  


2、  编辑跟踪器配置文件:  


    # vi /etc/fdfs/tracker.conf  


    修改的内容如下:  


    disabled=false  


    port=22122  


    base_path=/fastdfs/tracker  


      (其它参数保留默认配置,具体配置解释请参考官方文档说明:  


    http://bbs.chinaunix.net/thread-1941456-1-1.html )  


      


3、  创建基础数据目录 (参考基础目录base_path 配置):  


    # mkdir -p /fastdfs/tracker  


      


4、  防火墙中打开跟踪器端口(默认为22122):  


    # vi /etc/sysconfig/iptables  


    添加如下端口行:  


    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT  


    重启防火墙:  


    # service iptables restart  


      


5、  启动Tracker:  


    # /etc/init.d/fdfs_trackerd start  


      (初次成功启动,会在/fastdfs/tracker 目录下创建data、logs 两个目录)  


    查看FastDFS Tracker 是否已成功启动:  


    # ps -ef | grep fdfs  


                                                                                                           


      


6、  关闭Tracker:  


    # /etc/init.d/fdfs_trackerd stop  


      


7、  设置FastDFS 跟踪器开机启动:  


    # vi /etc/rc.d/rc.local  


    添加以下内容:  


    ## FastDFS Tracker  


    /etc/init.d/fdfs_trackerd start  


  


三、配置FastDFS 存储(192.168.4.125)  


1、  复制FastDFS 存储器样例配置文件,并重命名:  


    # cd /etc/fdfs/  


                                                                                                           


    # cp storage.conf.sample storage.conf  

2、  编辑存储器样例配置文件:  


    # vi /etc/fdfs/storage.conf  


    修改的内容如下:  


    disabled=false  


    port=23000  


    base_path=/fastdfs/storage  


    store_path0=/fastdfs/storage  


    tracker_server=192.168.4.121:22122  


    http.server_port=8888  


     (其它参数保留默认配置,具体配置解释请参考官方文档说明:  


    http://bbs.chinaunix.net/thread-1941456-1-1.html )  


      


3、  创建基础数据目录 (参考基础目录base_path 配置):  


    # mkdir -p /fastdfs/storage  


      


4、  防火墙中打开存储器端口(默认为23000):  


    # vi /etc/sysconfig/iptables  


    添加如下端口行:  


    -A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT  


    重启防火墙:  


    # service iptables restart  


      


5、  启动Storage:  


    # /etc/init.d/fdfs_storaged start  


     (初次成功启动,会在/fastdfs/storage 目录下创建data、logs 两个目录)  


    查看FastDFS Storage 是否已成功启动  


    # ps -ef | grep fdfs  


                                                                                                           


      


6、  关闭Storage:  


    # /etc/init.d/fdfs_storaged stop  


      


7、  设置FastDFS 存储器开机启动:  


    # vi /etc/rc.d/rc.local  


    添加:  


    ## FastDFS Storage  


    /etc/init.d/fdfs_storaged start  


  


四、文件上传测试(192.168.4.121)  


1、修改Tracker 服务器中的客户端配置文件:  


     # cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf  


     # vi /etc/fdfs/client.conf  


     base_path=/fastdfs/tracker  


     tracker_server=192.168.4.121:22122  


  


2、执行如下文件上传命令:  


     # /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/FastDFS_v5.05.tar.gz  


     返回ID 号:group1/M00/00/00/wKgEfVUYNYeAb7XFAAVFOL7FJU4.tar.gz  


      (能返回以上文件ID,说明文件上传成功)  


  


六、在每个存储节点上安装nginx  


1、fastdfs-nginx-module 作用说明  


     FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入 


文件复制,有同步延迟的问题。假设Tracker 服务器将文件上传到了 192.168.4.125,上传成功后文件ID 


已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.4.126,在文件还 


没有复制完成的情况下,客户端如果用这个文件ID 在 192.168.4.126 上取文件,就会出现文件无法访问的 


错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的 


文件无法访问错误。(解压后的fastdfs-nginx-module 在nginx 安装时使用)  


  


2、上传fastdfs-nginx-module_v1.16.tar.gz 到/usr/local/src  


  


3、解压  


     # cd /usr/local/src/  


     # tar -zxvf fastdfs-nginx-module_v1.16.tar.gz  


       


4、修改fastdfs-nginx-module 的config 配置文件  


     # cd fastdfs-nginx-module/src  


     # vi config  


     CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"  


     修改为:  


     CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"  


      (注意:这个路径修改是很重要的,不然在nginx 编译的时候会报错的)  


  


5、上传当前的稳定版本Nginx(nginx-1.6.2.tar.gz)到/usr/local/src 目录  


  


6、安装编译Nginx 所需的依赖包  


     # yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel  


  


7、编译安装Nginx (添加fastdfs-nginx-module 模块)  


     # cd /usr/local/src/  


     # tar -zxvf nginx-1.6.2.tar.gz  


     # cd nginx-1.6.2  


     # ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src  


     # make && make install  


  


8、复制fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录,并修改  

  # cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/  


     # vi /etc/fdfs/mod_fastdfs.conf  


     修改以下配置:  


     connect_timeout=10  


     base_path=/tmp  


     tracker_server=192.168.4.121:22122  


     storage_server_port=23000  


     group_name=group1  


     url_have_group_name = true  


     store_path0=/fastdfs/storage  


  


9、复制FastDFS 的部分配置文件到/etc/fdfs 目录  


     # cd /usr/local/src/FastDFS/conf  


     # cp http.conf mime.types /etc/fdfs/  


  


10、在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录  


     # ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00  


  


11、配置Nginx  


简洁版nginx 配置样例:  


user  root ;  


worker_processes  1;  


events {  


    worker_connections  1024;  


}  


http {  


    include       mime.types;  


    default_type  application/octet-stream;  


    sendfile        on;  


    keepalive_timeout  65;  


    server {  


        listen       8888;  


        server_name  localhost;  


        location ~/group([0-9])/M00 {  


            #alias /fastdfs/storage/data;  


            ngx_fastdfs_module;  


        }  


        error_page   500 502 503 504  /50x.html;  


        location = /50x.html {  


            root   html;  


        }  


    }  


}  


注意、说明:  

      A、8888 端口值是要与/etc/fdfs/storage.conf 中的http.server_port=8888 相对应,  


     因为http.server_port 默认为8888,如果想改成80,则要对应修改过来。  


     B、Storage 对应有多个group 的情况下,访问路径带group 名,如/group1/M00/00/00/xxx,  


     对应的Nginx 配置为:  


     location ~/group([0-9])/M00  {  


         ngx_fastdfs_module;  


     }  


     C、如查下载时如发现老报404,将nginx.conf 第一行user nobody 修改为user root 后重新启动。  


  


12、防火墙中打开Nginx 的8888 端口  


     # vi /etc/sysconfig/iptables  


     添加:  


     -A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT  


     # service iptables restart  


  


13、启动Nginx  


     # /usr/local/nginx/sbin/nginx  


     ngx_http_fastdfs_set pid=xxx  


      (重启Nginx 的命令为:/usr/local/nginx/sbin/nginx -s reload)  


  


14、通过浏览器访问测试时上传的文件  


     http://192.168.4.125:8888/group1/M00/00/00/wKgEfVUYNYeAb7XFAAVFOL7FJU4.tar.gz  


注意:千万不要使用kill  -9 命令强杀FastDFS 进程,否则可能会导致binlog 数据丢失。  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值