Ubuntu Linux下FastDFS分布式文件系统的安装、配置与初步使用

一、何为分布式文件系统

“分布式文件系统,顾名思义,就是分布式+文件系统。它包含这两个方面的内涵,从文件系统的客户使用的角度来看,它就是一个标准的文件系统,提供了一系列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.confstorage.conf配置文件中文详解,请参考ChinaUnix论坛置顶贴:

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

 

新建trackerstorage目录,本例为fastDFS_trackerfastDFS_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相关的loggroup内信息。

(2)       文件存储位置,一台文件存储节点服务器上可以指定多个存储位置

store_path0=/home/用户名/fastDFS_storage

(3)       指定分组名        group_name=group1

(4)      修改其指定的跟踪器服务器tracker serverIP和端口信息

tracker_server=192.168.123.155:22122

注意:一定要使用正确的IP地址,即使storagetracker都在同一主机,也不能使用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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值