关闭

FastDFS的搭建

678人阅读 评论(0) 收藏 举报
分类:
一、何为分布式文件系统 
“分布式文件系统,顾名思义,就是 分布式+文件系统 。它包含这两个方面的内涵,从文件系统的客户使用的角度来看,它就是一个标准的文件系统,提供了一系列API,由此进行文件或目录的创建、移动、删除,以及对文件的读写等操作。从内部实现来看,分布式的系统则不再和普通文件系统一样负责管理本地磁盘,它的文件内容和目录结构都不是存储在本地磁盘上,而是通过网络传输到远端系统上。并且,同一个文件存储不只是在一台机器上,而是在一簇机器上分布式存储,协同提供服务,正所谓分布式。” 
                                                                         ——转自Venus神庙的blog 
链接: http://www.cnblogs.com/duguguiyu/archive/2009/02/22/1396034.html 
  
二、何为 FastDFS 
FastDFS是一个开源的轻量级分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 
(1)纯C语言实现,支持Linux、FreeBSD等类UNIX系统。 
(2)类Google FS,不是通用的文件系统,只能通过专有API访问,目前提供了C、Java和PHP的API. 
(3)为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性。 
(4)FastDFS可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适。 
  
FastDFS 官方主页: http://code.google.com/p/fastdfs/ 
论坛网址: http://bbs.chinaunix.net/forum-240-1.html 
  
三、 FastDFS 的工作流程 
“我们可以通过 FastDFS 对文件的上传过程,来初步了解 FastDFS 的基本架构。” 
“首先,客户端 client 发起对 FastDFS 的文件传输动作,是通过连接到某一台 Tracker Server 的指定端口来实现的, Tracker Server 根据目前已掌握的信息,来决定选择哪一台 Storage Server 。” 
“然后将这个 Storage Server 的地址等信息返回给 client ,然后 client 再通过这些信息连接到这台 Storage Server ,将要上传的文件传送到给 Storage Server 上。” 
                                                                                                                ——转自 诗商· 柳惊鸿CSDN 博客 
链接: http://blog.csdn.net/poechant/article/details/6977407 
  
四、 FastDFS 的安装 
1. 安装环境准备 
(1) 示例系统环境为: Ubuntu  11.10 i386 
  内核版本: Linux 3.0.0-12-generic 
(2) 事先更新 gcc 版本。 
   #sudo apt-get install build-essential 
(3)libevent-2.0.21-stable.tar.gz 
FastDFS 内部绑定了 libevent 作为 http 服务器。 Ubuntu 软件更新源上没有该库资源。所以需要手动下载,再自行解压安装。 
libevent 官网网址为: http://libevent.org/ ,建议选择最新的 stable 版本下载,千万不要使用 libevent 的非 stable 版本。 
或者 wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz 方式下载。 
(4)pthread 库 
使用系统自带的 pthread 库即可。 Ubuntu 11 及后续版本,可能会出现找不到动态库 pthread 库,所以请事先搜索确定 libpthread.so 所在路径。由于 FastDFS 目录下 make.sh 中默认的 libpthread 查找路径与 Ubuntu  11 以后版本的系统实际不符,所以安装会出现错误。详见后续章节。 
(5)FastDFS_v4.04.tar.gz 
  可以去 FastDFS 官方主页下载: http://code.google.com/p/fastdfs/downloads/list 
  
2. 安装 libevent 
请务必将 libevent 安装在 /usr 下,原因是 FastDFS 编译过程中需要在此目录下查找依赖文件。 
tar  xzvf  libevent-2.0.21-stable.tar.gz 
# ./configure –help 看一下配置帮助信息 
 
根据帮助信息 
#./configure   --prefix=/usr 
#make clean 
#make 
#make install 
  
3. 安装 FastDFS 
这里选择解压至用户目录,也可以放在其他目录,这都无所谓。 
#sudo tar vxzf FastDFS_v4.04.tar.gz  /home/ 用户名 / 
解压后进入 FastDFS 目录: 
 
(1)      因为要使用自带的 http 服务,编辑 FastDFS 目录下的 make.sh 文件: 
找到 #WITH_HTTPD=1 
改为 WITH_HTTPD=1 

(2)      因为可能由于 make.sh 内默认的查找 libpthread.so 文件目录与 Ubuntu 11 及以后版本的系统 libpthread 路径不符,所以需要更改该处。 
1) 查找本系统下 libpthread.so 路径: 
#sudo find / -name libpthread.so 
 

   本系统 libpthread.so 路径为: /usr/lib/i386-linux-gnu/libpthread.so 
   2) 更改 make.sh 内容,使 make.sh 能按照正确的路径找到 libpthread.so 
 
   
  
(3)      在 FastDFS 目录下 
#sudo  ./make.sh 
#sudo  ./make.sh  install 
执行两个命令后,若看到类似信息,则安装成功 

  
五、 FastDFS 的配置 
FastDFS 服务端有两个角色:跟踪器 tracker 和存储节点 storage 。 
跟踪器主要做调度工作,在访问上起到负载均衡的作用。 
存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口。 
具体介绍请见 ChinaUnix 论坛该置顶贴: http://bbs.chinaunix.net/thread-2001101-1-1.html 
  
FastDFS 的配置文件位于 FastDFS/conf 目录下,包括 
client.conf 客户端上传配置文件 
storage.conf  文件存储节点服务器配置文件 
tracker.conf  均衡调度服务器配置文件 
http.conf     http 服务器配置文件 
  
关于 tracker.conf 和 storage.conf 配置文件中文详解,请参考 ChinaUnix 论坛置顶贴: 
http://bbs.chinaunix.net/thread-1941456-1-1.html 
  
新建 tracker 和 storage 目录,本例为 fastDFS_tracker 和 fastDFS_storage ,建立在用户根目录下。 
事先 ifconfig 获取本机 IP 地址,本例将 tracker 服务器和 storage 服务器设在同一主机下。 
1.       配置 tracker 
修改 FastDFS/conf/tracker.conf 文件 
(1)      bash_path=/home/ 用户名 /fastDFS_tracker 该目录必须事先存在,用于存储日志等信息。 
(2)      改端口,自己设。用于 http 下载文件的端口 
http.server_port=5666 
(3)      ##include http.conf 修改为 #include http.conf  就是去掉一个 # 
(4)      其他配置可以参照《配置文件中文详解》自行修改,本例未作其他修改。 
  
为了支持 http ,将 http.conf 文件拷贝到 /etc/fdfs 目录下,否则无法启动。 
  
进入 /usr/local/bin/ 目录,启动 tracker 服务器 
#sudo  fdfs_trackerd /home/ 用户名 /FastDFS/conf/tracker.conf 
  
进入 /home/ 用户名 /fastDFS_tracker/logs/trackerd.log 查看 tracker 的启动日志,如果看到类似信息,则启动成功。 
 

2.       配置 storage 
修改 FastDFS/conf/storage.conf 文件 
(1)        bash_path=/home/ 用户名 /fastDFS_storage 该目录必须事先存在,用于存储 storage 相关的 log 、 group 内信息。 
(2)        文件存储位置,一台文件存储节点服务器上可以指定多个存储位置 
store_path0=/home/ 用户名 /fastDFS_storage 
(3)        指定分组名         group_name=group1 
(4)        修改其指定的跟踪器服务器 tracker server 的 IP 和端口信息 
tracker_server=192.168.123.155:22122 
注意:一定要使用正确的 IP 地址,即使 storage 和 tracker 都在同一主机,也不能使用 127.0.0.1 或者 localhost 来表示本地地址。否则 storage 启动必然出错!建议用 ifconfig 获取的准确 ip 来填写。 
(5)       ##include http.conf 修改为 #include http.conf  就是去掉一个 # 
  
进入 /usr/local/bin/ 目录,启动 storage 服务器 
# sudo fdfs_storaged /home/ 用户名 /FastDFS/conf/storage.conf 
 
执行后,会出现: 
   
 
    进入 /home/ 用户名 /fastDFS_storage/logs/storage.log 查看 storage 服务器启动日志,如果看到类似信息 


         
则 storageServer 启动成功。 
注:笔者曾经因为配置问题而导致多次启动失败,所以上图的启动日志信息时间跨度较大。 
  
六、         FastDFS 的初步使用体验 
  
1.       可以使用自带的客户端进行文件上传,使用之前需要配置 client.conf 
修改 FastDFS/conf/client.conf 文件 
(1)      指定目录,该目录必须事先存在,用于存放文件上传的日志。本例将其放在 fastDFS_tracker 目录中 
base_path=/home/ 用户名 /fastDFS_tracker 
(2)      tracker_server=192.168.102.155:22122 此处注意事项同 storage.conf 配置。 
(3)      http.tracker_server_port=5666 修改为 tracker.conf 中我们设置的端口号。 
(4)      ##include http.conf 修改为 #include http.conf  就是去掉一个 # 
  
2.       上传文件 
进入 /usr/local/bin 目录,我们可以事先建立一个 hello.txt 文件,用于上传实验。 
  
执行命令: 
# sudo fdfs_test  /home/ 用户名 /FastDFS/conf/client.conf  upload hello.txt 
  
假如执行后的命令信息类似于: 
 
则上传成功!请记下图中标记的 URL 地址。 
3.       下载文件 
进入你的浏览器, Ubuntu 应该默认自带的是 FireFox 。 
在浏览器地址栏输入上图中记下的 URL 地址, tracker server 会自动重定向到 storage server, 浏览器成功显示文件。 
 
         到目前为止,你的 FastDFS 已经安装配置成功,并成功试验了上传和下载。 
  
本文在参考网络上众人的技术博客,并结合自己实际操作情况而成,谢谢广大童鞋们的共享精神。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:325762次
    • 积分:4579
    • 等级:
    • 排名:第6380名
    • 原创:168篇
    • 转载:106篇
    • 译文:5篇
    • 评论:38条