最近在研究负载均衡和集群,其中涉及到一个主要问题是,如何让集群中的real server共享一套文件系统。在网上查到FastDFS,国人(happy fish,感谢他的开源精神)开发的一套轻量级分布式文件系统。实际搭建了一下,感觉还不错,小巧易用,支持http下载。
虽然FastDFS官方网站 上已经有比较详细的按照使用手册,但在实际搭建过程中,还是遇到了很多问题,希望我的记录可以让后来的同学们少走一些弯路:)
下面进入正题.
FastDFS安装使用实战(安装篇)
Keywords:FastDFS、分布式文件系统、Ubuntu
Author:soartju
转载请注明出处:http://soartju.iteye.com/blog/803477
目前FastDFS支持类Unix系统 ,在Linux和FreeBSD下测试过,本文使用的是Ubuntu10.4,建议安装之前先简单了解一下FastDFS的原理 ,这对后继的配置部分会有很好的理解。
一、准备工作-安装libevent
FastDFS 内部绑定了 libevent 作为 http 服务器 ,在V2.X版本必须安装 libevent ,本文安装的是V2.2版本,因此必须安装libevent。(官方也推荐使用 http 方式下载 文件 )
如果已经安装了 libevent,请确认安装路径是 /usr , 因为 FastDFS 在编译源程序时,需要到此目录下查找一些依赖文件,否则编译 FastDFS 会出错 。如果不是,建议首先卸载 libevent ,然后安装到 /usr 下。Ubuntu10.4默认是安装了libevent,可以到软件中心卸载掉然后按照下面介绍的方式安装。
本文安装的是 libevent1.4.14b-stable ,下载地址: http://monkey.org/~provos/libevent/
安装步骤:
解压 libevent ,然后进入解压后的目录分别执行:
Shell代码
安装libevent完成。
二、安装 FastDFS
1、下载 FastDFS 源程序,下载地址 http://code.google.com/p/fastdfs/downloads/list ,这里下载的是 FastDFS_v2.02.tar.gz (建议安装V2.02版本,比V1.X版本更加稳定且性能提升明显)
2、在 FastDFS_v2.02.tar.gz 所在文件夹下执行:
Shell代码
注: /home/soar/FastDFS 也可以是其他目录,记住这是解压目录,以后用 %FastDFS% 表示)
3、由于要使用内置的 http 服务,因此编辑 %FastDFS%/make.sh 文件,找到
#WITH_HTTPD=1
修改成
WITH_HTTPD=1
以支持 http
4、进入 %FastDFS% 目录,执行:
Shell代码
5、在 %FastDFS% 目录下,执行:
Shell代码
如果运行如上命令后,在命令行信息最后看到类似
Shell代码
恭喜你,已经安装成功了!
FastDFS安装使用实战二(配置篇)
Keywords:FastDFS、分布式文件系统、Ubuntu
Author:soartju
转载请注明出处:http://soartju.iteye.com/blog/803524
FastDFS的配置文件在%FastDFS%/conf目录下,其中包括
Client.conf 客户端上传配置文件
Storage.conf 文件存储服务器配置文件
Tracker.conf 负责均衡调度服务器配置文件
http.conf http服务器配置文件
配置文件需要根据服务器环境的不同,进行不同的配置,具体可以参考FastDFS官方的安装配置文档http://code.google.com/p/fastdfs/wiki/Setup,以及FastDFS原理介绍文档http://code.google.com/p/fastdfs/wiki/Overview
在本例中,Tracker Server,Storage Server都安装在一台服务器上,IP:10.0.2.15
1、配置及启动Tracker Server
A、修改%FastDFS%/conf/tracker.conf文件,修改如下
#可以自己指定目录位置,但目录必须存在,用于存储日志及storage server等信息,否则tracker server无法启动
Txt代码
#改成你想要的http端口,将来http下载文件的端口就是他了
Txt代码
#http支持
Txt代码
#默认4GB,如果空间不足,建议调小,否则会报no free space的异常,无法正常启动
Txt代码
#tracker server对storage server供服务的端口,使用默认的即可,也可以自定义
Txt代码
B、将http.conf文件拷贝到/etc/fdfs目录下,执行
Shell代码
注:为了支持http,必须将这个文件拷贝到此目录,否则无法启动,报param http.XXX not exist or is empty类似的错误
C、进入/usr/local/bin/目录,启动tracker服务器,执行
Shell代码
D、进入/home/soar/fastdfs_tracker/logs/trackerd.log查看tracker的启动日志,如果看到类似
Shell代码
恭喜你,tracker server已经启动成功!
2、配置及启动Storage Server
A、修改%FastDFS%/conf/storage.conf文件,修改如下:
#可以自定义,但必须存在此目录,用于存储storage相关的log、group内的相关信息
Txt代码
#文件的存储位置,在一台storage server上可以指定多个存储位置
Txt代码
#必须指定
Txt代码
#修改成tracker server的IP和端口信息
Txt代码
#http支持
Txt代码
B、进入/usr/local/bin/目录,启动storage服务器,执行
Shell代码
C、进入/home/soar/fastdfs_tracker/logs/storage.log查看storage服务器启动日志,如果看到类似
Shell代码
恭喜你,storage server已经启动成功!
FastDFS安装使用实战三(使用篇)
Keywords:FastDFS、分布式文件系统、Ubuntu
Author:soartju
转载请注明出处:http://soartju.iteye.com/blog/803548
经过前面的安装、配置、启动,马上就可以看到FastDFS的效果了,我们先上传一个文件,然后再通过http下载。
一、上传文件
FastDFS安装包中,自带了客户端程序,通过程序可以进行文件上传。在使用这个客户端程序之前,首先需要配置client.conf,然后再进行文件上传及下载。
1、修改%FastDFS%/conf/client.conf文件,修改如下:
#可自定义,但此目录必须存在,用于存放文件上传log
Txt代码
Txt代码
Txt代码
#支持http
Txt代码
2、进入/usr/local/bin/目录,上传文件,执行
Txt代码
注:a.txt可以在/usr/local/bin/目录下自己创建一个
如果命令行反馈类似如下:
则说明上传文件成功。
二、下载文件
在浏览器中,输入上图中的url地址, tracker server会自动重定向到存储文件的storage server,文件下载成功。
至此,已经成功搭建了FastDFS,编写你自己的client来进行访问吧:)