FastDFS的搭建

转载 2013年12月05日 17:11:08
一、何为分布式文件系统 
“分布式文件系统,顾名思义,就是 分布式+文件系统 。它包含这两个方面的内涵,从文件系统的客户使用的角度来看,它就是一个标准的文件系统,提供了一系列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 已经安装配置成功,并成功试验了上传和下载。 
  
本文在参考网络上众人的技术博客,并结合自己实际操作情况而成,谢谢广大童鞋们的共享精神。

相关文章推荐

Fastdfs搭建

  • 2017年11月18日 09:21
  • 421KB
  • 下载

fastdfs集群搭建以及与java集成

  • 2017年08月08日 18:13
  • 1.98MB
  • 下载

fastdfs 环境搭建使用及最佳实践

一、分布式文件系统 FastDFS 架构解析FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片、视频、文档等文件,许多大型互联网公司包括几个大的云网盘都在使用,感兴...
  • pzw_0612
  • pzw_0612
  • 2016年09月18日 13:46
  • 14671

FastDFS分布式搭建

  • 2017年08月23日 15:37
  • 230KB
  • 下载

fastdfs搭建-文件系统

  • 2017年01月05日 14:50
  • 3.73MB
  • 下载

CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程(一)

链接: 第二篇:FastDFS搭建 第三篇:FastDFS整合nginx 第四篇:整合Java Spring MVC上传1.绪论最近要用到fastDFS,所以自己研究了一下,在搭建Fast...

搭建FastDFS服务器的所需资源

  • 2016年05月23日 22:26
  • 618KB
  • 下载

fastDFS文件系统搭建

  • 2017年09月12日 14:42
  • 1.07MB
  • 下载

FastDFS与Nginx的搭建及遇到的问题

1、完整搭建fastdfa+nginx图片服务器; 2、解决无法浏览器无法访问图片的问题;...

Linux下FastDFS图片服务器的搭建

在真正的大型Web后台系统中,上传图片的操作可以算是耗时操作,而且其中最大的问题就是,在一个分布式系统中,图片上传不可能上传到当前服务器,这样如果下次访问的是其他服务器,在其他服务器上是没有上传的图片...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FastDFS的搭建
举报原因:
原因补充:

(最多只允许输入30个字)