轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级)

实验室所在的课题组以研究云计算为主,但所有的研究都是在基于理论的凭空想像,缺少分布式环境的平台的实践,云计算神马的都是浮云了。因此,我想借助Hadoop把实验室的服务器搭建出一个基础的分布式实验环境,方便于以后进行实验测试神马的。无意中,看到了一款开源的轻量级分布式文件系统FastDFS,它是用纯C语言实现,详细信息可参见博客:分布式文件系统FastDFS架构剖析。通过收集资料,自己动手做了一些安装和测试使用,现在对前人的一些经验进行一些总结。

一、FastDFS的安装过程

1)准备工作-安装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/

安装步骤:

tar vxzf libevent1.4.14b-stable.tar.gz

./configure --prefix=/usr

make clean;

make

make install

安装libevent完成。

2)安装 FastDFS

1、下载 FastDFS 源程序,下载地址 http://code.google.com/p/fastdfs/downloads/list ,这里下载的是 FastDFS_v2.04.tar.gz ,建议安装V2.X版本,比V1.X版本更加稳定且性能提升明显)、

2、在 FastDFS_v2.04.tar.gz 所在文件夹下执行:

tar vxzf FastDFS_v2.04.tar.gz /home/monkey/FastDFS

tar vxzf FastDFS_v2.04.tar.gz /home/monkey/FastDFS

注:/home/monkey/FastDFS 也可以是其他目录,记住这是解压目录,以后用 %FastDFS% 表示)

3、由于要使用内置的 http 服务,因此编辑 %FastDFS%/make.sh 文件,找到#WITH_HTTPD=1,修改成WITH_HTTPD=1,以支持HTTP。

4、进入 %FastDFS% 目录,执行:

./make.sh

./make.sh

5、在 %FastDFS% 目录下,执行:

./make.sh install

./make.sh install

如果运行如上命令后,在命令行信息最后看到类似

#ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so

#ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so

sh ./fdfs_link_library.sh

#ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so

#ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so

sh ./fdfs_link_library.sh

恭喜你,已经安装成功了!

二、FastDFS的配置说明

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:211.69.205.1。

1)配置及启动Tracker Server

1、修改%FastDFS%/conf/tracker.conf文件,修改如下:

#可以自己指定目录位置,但目录必须存在,用于存储日志及storage server等信息,否则tracker server无法启动。

base_path=/home/yuqing/fastdfsàbase_path=/home/monkey/fastdfs_tracker

#改成你想要的http端口,将来http下载文件的端口就是它了。

http.server_port=8080àhttp.server_port=8090

#http支持

##include http.confà#include http.conf

#默认4GB,如果空间不足,建议调小,否则会报no free space的异常,无法正常启动。

reserved_storage_space = 4GBàreserved_storage_space = 1GB

#tracker server对storage server供服务的端口,使用默认的即可,也可以自定义

port=22122

2、将http.conf文件拷贝到/etc/fdfs目录下,执行:

cp %FastDFS%/conf/http.conf /etc/fdfs/

cp %FastDFS%/conf/http.conf /etc/fdfs/

注:为了支持http,必须将这个文件拷贝到此目录,否则无法启动,报param http.XXX not exist or is empty类似的错误。

3、进入/usr/local/bin/目录,启动tracker服务器,执行:

fdfs_trackerd %FastDFS%/conf/tracker.conf

dfs_trackerd %FastDFS%/conf/tracker.conf

4、进入/home/soar/fastdfs_tracker/logs/trackerd.log查看tracker的启动日志,如果看到类似:

[2010-11-26 21:33:44] INFO - FastDFS v2.04, base_path=/home/monkey/fastdfs_tracker, connect_timeout=30s, network_timeout=60s, port=22122, bind_addr=, max_connections=256, work_threads=4, store_lookup=2, store_group=, store_server=0, store_path=0, reserved_storage_space=1024MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s, check_active_interval=120s, thread_stack_size=64 KB, storage_ip_changed_auto_adjust=1, storage_sync_file_max_delay=86400s, storage_sync_file_max_time=300s

[2010-11-26 21:33:44] INFO - HTTP supported: server_port=8090, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0, check_active_interval=30, check_active_type=tcp, check_active_uri=/status.html

恭喜你,tracker server已经启动成功!

2)配置及启动Storage Server

1、修改%FastDFS%/conf/storage.conf文件,修改如下:

#可以自定义,但必须存在此目录,用于存储storage相关的log、group内的相关信息

base_path=/home/yuqing/fastdfsà/home/monkey/fastdfs_storge

#文件的存储位置,在一台storage server上可以指定多个存储位置

store_path0=/home/yuqing/fastdfsàstore_path0=/home/monkey/fastdfs_storge

#必须指定

group_name=group1

#修改成tracker server的IP和端口信息

tracker_server=192.168.209.121:22122àtracker_server=211.69.205.1:22122

#http支持

##include http.confà#include http.conf

2、进入/usr/local/bin/目录,启动storage服务器,执行

fdfs_storaged %FastDFS%/conf/storage.conf

3、进入/home/monkey/fastdfs_tracker/logs/storage.log查看storage服务器启动日志,如果看到类似:

[2010-11-26 21:38:59] INFO - FastDFS v2.04, base_path=/home/monkey/fastdfs_storge, store_path_count=1, subdir_count_per_path=256, group_name=group1, connect_timeout=30s, network_timeout=60s, port=23000, bind_addr=, client_bind=1, max_connections=256, work_threads=4, disk_rw_separated=1, disk_reader_threads=1, disk_writer_threads=1, buff_size=256KB, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=1, sync_wait_msec=200ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time=23:59, write_mark_file_freq=500, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=60s, sync_stat_file_interval=300s, thread_stack_size=512 KB, upload_priority=10, if_alias_prefix=, check_file_duplicate=0, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0, HTTP server port=8888, domain name=

[2010-11-26 21:38:59] INFO - HTTP supported: server_port=8888, http_trunk_size=262144, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0

[2010-11-26 21:39:29] INFO - file: storage_param_getter.c, line: 48, storage_ip_changed_auto_adjust=1

[2010-11-26 21:39:30] INFO - file: tracker_client_thread.c, line: 274, successfully connect to tracker server 211.69.205.1:22122, as a tracker client, my ip is 211.69.205.1

恭喜你,storage server已经启动成功!

三、FastDFS使用举例说明

经过前面的按照、配置、启动,马上就可以看到FastDFS的效果了,我们先上传一个文件,然后再通过http下载。

1)上传文件

FastDFS安装包中,自带了客户端程序,通过程序可以进行文件上传。在使用这个客户端程序之前,首先需要配置client.conf,然后再进行文件上传及下载。

1、修改%FastDFS%/conf/client.conf文件,修改如下:

#可自定义,但此目录必须存在,用于存放文件上传log

base_path=/home/yuqing/fastdfsàbase_path=/home/monkey/fastdfs_tracker

tracker_server=192.168.209.121:22122àtracker_server=211.69.205.1:22122

http.tracker_server_port=8080àhttp.tracker_server_port=8090

##include http.confà#include http.conf

2、进入/usr/local/bin/目录,上传文件,执行:

fdfs_test %FastDFS%/conf/client.conf upload monkey.txt

注:monkey.txt可以在/usr/local/bin/目录下自己创建一个。

如果命令行反馈类似如下,则说明上传文件成功。

2)下载文件

在浏览器中,输入上图中的url地址, tracker server会自动重定向到存储文件的storage server,文件下载成功。至此,已经成功搭建了FastDFS,编写你自己的client来进行访问吧:)

最新文章

  1. 单片机与控制实验(5)——重量测量并在LCD12864显示
  2. c++利用循环数组建立FIFO模板队列
  3. js判断手机 横屏模式
  4. android 异步加载框架 原理完全解析
  5. Laravel教程 七:表单验证 Validation
  6. SQL Server 查看物理页存储
  7. BZOJ-2002 弹飞绵羊 Link-Cut-Tree (分块)
  8. 【转】VC++与MySQL数据库的连接
  9. 如何查看windows操作系统当前使用的字符集
  10. mysql rr 查询出现的事务情况
  11. postgres 利用unique index代替 primay key
  12. .NET 元数据
  13. Http远程调用服务
  14. 201521123061 《Java程序设计》第五周学习总结
  15. JavaScript 浏览器类型及版本号
  16. 基于jsmpeg库下使用ffmpeg创建视频流连接websocket中继器传输视频并播放
  17. 【BZOJ 2850】巧克力王国
  18. left join on和where
  19. pdf流文件的展示、下载、打印;html转为pdf
  20. 快速傅立叶变换(FFT)算法

热门文章

  1. [web.config]如何灵活使用配置文件
  2. 在TQ2440上运行perf,生成Flame Graph
  3. Delphi XE5 Android 运行黑屏卡死的解决方法
  4. I/O会一直占用CPU吗?【转载】
  5. 从零開始学android<使用嵌套布局实现计算器界面.十七.>
  6. 手机端可以和PC端同时在线-java QRCode 实现网站扫码登录(即支持同帐号多设备同时登录)
  7. SpringBoot扫描包提示找不到mapper的问题
  8. 双面女间谍第一至五季/全集Alias迅雷下载
  9. bash 设置
  10. 《Redis设计与实现》