FastDFS 安装及使用详解

Google了一下,流行的开源分布式文件系统有很多,介绍如下:
 
mogileFS:Key-Value型元文件系统,不支持FUSE,应用程序访问它时需要API,主要用在web领域处理海量小图片,效率相比mooseFS高很多。
fastDFS:国人在mogileFS的基础上进行改进的key-value型文件系统,同样不支持FUSE,提供比mogileFS更好的性能。
mooseFS:支持FUSE,相对比较轻量级,对master服务器有单点依赖,用perl编写,性能相对较差,国内用的人比较多
glusterFS:支持FUSE,比mooseFS庞大
ceph:支持FUSE,客户端已经进入了linux-2.6.34内核,也就是说可以像ext3/rasierFS一样,选择ceph为文件系统。彻底的分布式,没有单点依赖,用C编写,性能较好。基于不成熟的btrfs,其本身也非常不成熟。
lustre:Oracle公司的企业级产品,非常庞大,对内核和ext3深度依赖
NFS:老牌网络文件系统,具体不了解,反正NFS最近几年没发展,肯定不能用。
鉴于fastDFS是国人开发,也有国内的一些大公司在使用,so…
 
普通的文件架构其实一两年内也是没有问题的,但有句话叫未雨绸缪,于是决定折腾折腾。
源码下载:http://code.google.com/p/fastdfs
寻求帮助:http://www.csource.org
 

一、安装libevent

首先检查依赖环境gcc安装没有,如果没有安装,先安装
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. yum install gcc* make*  

fastDFS需要安装libevent比较新的版本,将本机的比较低的版本卸载了。
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. ls -al /usr/lib | grep libevent   

查看是否已安装,如果已安装且版本低于1.3,则先进行卸载。
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. rpm -qa libevent  
  2. libevent-1.4.13-1.el6.x86_64  
  3. rpm -e --nodeps libevent  
安装一个最新稳定版
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. wget https://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz  
  2. tar zxvf libevent-2.0.18-stable.tar.gz  
  3. cd libevent-2.0.18-stable  
  4. ./configure  
  5. make && make install  

为libevent创建软链接到/lib库下,64位系统对应/lib64
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. ln -s /usr/local/lib/libevent* /lib/  
  2. ln -s /usr/local/lib/libevent* /lib64/  

二、安装FastDFS

 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. wget http://fastdfs.googlecode.com/files/FastDFS_v3.06.tar.gz  
  2. tar zxvf FastDFS_v3.06.tar.gz  
  3. cd FastDFS  
  4. ./make.sh  
  5. ./make.sh install  

三、配置FastDFS

环境:
tracker server
192.168.1.5
storage server
192.168.1.51
192.168.1.52
 
1、配置并启动 tracker server
配置 tracker.conf
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. mkdir /home/yuqing/fastdfs  
  2. vim /etc/fdfs/tracker.conf  
  3. base_path=/home/yuqing/fastdfs  

启动 tracker
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf  

设置开机启动
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. vim /etc/rc.local  
  2. /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf  

2、配置并启动 storage server
配置 storage.conf
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. vim /etc/fdfs/storage.conf  
  2. base_path=/home/yuqing/fastdfs  
  3. store_path0=/home/yuqing/fastdfs  
  4. tracker_server=192.168.1.5:22122  

启动 storage 
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf  

设置开机启动
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. vim /etc/rc.local  
  2. /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf  

3、为storage节点安装fastdfs-nginx-module模块
①安装模块
安装Nginx详见:
需重新编译Nginx
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. wget http://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.15.tar.gz  
  2. wget http://nginx.org/download/nginx-1.2.0.tar.gz  
  3. tar zxvf fastdfs-nginx-module_v1.15.tar.gz  
  4. tar zxvf pcre-8.38.tar.gz  
  5. tar zxvf nginx-1.2.0.tar.gz  
  6. ./configure --prefix=/usr/local/nginx --with-pcre=/temp/pcre-8.38 --add-module=/temp/fastdfs-nginx-module/src  
  7. make && make install  

②配置
编辑nginx.conf

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. vim /usr/local/nginx/conf/nginx.conf  
  2. server {  
  3.     listen       80;  
  4.     server_name  localhost;  
  5.    
  6.     location /M00 {  
  7.         alias /data/images/data;  
  8.         ngx_fastdfs_module;  
  9.     }  
  10.     ......  
  11. }  

拷贝mod_fastdfs.conf 到 /etc/fdfs/并编辑
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/  
  2. vim /etc/fdfs/mod_fastdfs.conf  
  3. base_path=/home/yuqing/fastdfs  
  4. tracker_server=192.168.1.5:22122  
  5. store_path0=/home/yuqing/fastdfs  

如果需要上传之后访问路径包含group1,则需要配置mod_fastdfs.conf配置文件如下:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. url_have_group_name = true  

启动nginx:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /usr/local/nginx/sbin/nginx  

如果需要重启nginx,命令如下:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /usr/local/nginx/sbin/nginx -s reload  

四、使用FastDFS

1、上传文件
FastDFS安装包中,自带了客户端程序,通过程序可以进行文件上传。在使用这个客户端程序之前,首先需要配置client.conf,然后再进行文件上传及下载。
在tracker上修改客户端配置文件client.conf
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. vim /etc/fdfs/client.conf  
  2. base_path=/home/yuqing/fastdfs  
  3. tracker_server=192.168.1.5:22122  
如果需要支持外网访问需要用真实的IP
vim a.html
This Is FastDFS Test.
上传文件
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload a.html  

This is FastDFS client test program v3.06
 
Copyright (C) 2008, Happy Fish / YuQing
 
FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/ 
for more detail.
 
[2012-04-29 12:42:53] INFO - base_path=/data/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=group1, ip_addr=192.168.1.51, port=23000
server 2. group_name=group1, ip_addr=192.168.1.52, port=23000
 
group_name=group1, ip_addr=192.168.1.51, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgBM0-cxs32qFyYAAAADigvbpc90.html
source ip address: 192.168.1.51
file timestamp=2012-04-29 12:42:53
file size=14
file crc32=674197143
file url: http://192.168.1.5/group1/M00/00/00/wKgBM0-cxs32qFyYAAAADigvbpc90.html
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgBM0-cxs32qFyYAAAADigvbpc90_big.html
source ip address: 192.168.1.51
file timestamp=2012-04-29 12:42:53
file size=14
file crc32=674197143
file url: http://192.168.1.5/group1/M00/00/00/wKgBM0-cxs32qFyYAAAADigvbpc90_big.html
上传成功
试试用
 
http://192.168.1.51/M00/00/00/wKgBM0-cxs32qFyYAAAADigvbpc90_big.html
 
访问看看吧。

五、FastDFS常见命令


1: 启动FastDFS
          tracker: /usr/local/bin/fdfs_trackered /etc/fdfs/tracker.conf
          storage: /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
2:关闭FastDFS
          tracker:/usr/local/bin/stop.sh /usr/local/bin/fdfs_tracker
          storage:/usr/local/bin/stop.sh /usr/local/bin/fdfs_storage
        或者 killall fdfs_trackered(storaged)  -------注意,千万不要使用-9强行杀死进程。
3:重启FastDFS
         
[plain]  view plain  copy
 
  1. tracker:/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackered  
  2. storage:/usr/local/bin/restart.sh /usr/local/bin/fdfs_storaged  

4:查看集群情况
          在任意一台storage(tracker也可以) /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf
5:删除一个storage:
           在任意一台storage(tracker也可以) /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf delete group2 20.12.1.73


参考:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值