最近在研究负载均衡和集群,其中涉及到一个主要问题是,如何让集群中的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代码  

  1. ./configure --prefix=/usr
  2. make clean;
  3. make
  4. make install

安装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代码  

  1. sudo tar vxzf FastDFS_v2.02.tar.gz /home/soar/FastDFS

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

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

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

Shell代码  

  1. sudo ./make.sh

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

Shell代码  

  1. sudo ./make.sh install

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

Shell代码  

  1. #ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so
  2. #ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so
  3. sh ./fdfs_link_library.sh

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

 

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代码  

  1. base_path=/home/yuqing/fastdfs -> base_path=/home/soar/fastdfs_tracker

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

Txt代码  

  1. http.server_port=8080 -> http.server_port=8090

#http支持

Txt代码  

  1. ##include http.conf -> #include http.conf

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

Txt代码  

  1. reserved_storage_space = 4GB -> reserved_storage_space = 1GB

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

Txt代码  

  1. port=22122

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

Shell代码  

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

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

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

Shell代码  

  1. sudo fdfs_trackerd %FastDFS%/conf/tracker.conf

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

Shell代码  

  1. [2010-11-04 16:21:25] INFO - FastDFS v2.02, base_path=/home/soar/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=4MB, 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
  2. [2010-11-04 16:21:25] 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

A、修改%FastDFS%/conf/storage.conf文件,修改如下:
#可以自定义,但必须存在此目录,用于存储storage相关的log、group内的相关信息

Txt代码  

  1. base_path=/home/yuqing/fastdfs -> /home/soar/fastdfs_storge

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

Txt代码  

  1. store_path0=/home/yuqing/fastdfs -> store_path0=/home/soar/fastdfs_storge

#必须指定

Txt代码  

  1. group_name=group1

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

Txt代码  

  1. tracker_server=192.168.209.121:22122 -> tracker_server=10.0.2.15:22122

#http支持

Txt代码  

  1. ##include http.conf ->#include http.conf

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

Shell代码  

  1. sudo fdfs_storaged %FastDFS%/conf/storage.conf

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

Shell代码  

  1. [2010-11-04 16:37:16] INFO - FastDFS v2.02, base_path=/home/soar/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=
  2. [2010-11-04 16:37:16] 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
  3. [2010-11-04 16:37:16] INFO - file: storage_param_getter.c, line: 48, storage_ip_changed_auto_adjust=1
  4. [2010-11-04 16:37:19] INFO - file: tracker_client_thread.c, line: 274, successfully connect to tracker server 10.0.2.15:22122, as a tracker client, my ip is 10.0.2.15

恭喜你,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代码  

  1. base_path=/home/yuqing/fastdfs-> base_path=/home/soar/fastdfs_tracker

Txt代码  

  1. tracker_server=192.168.209.121:22122 -> tracker_server=10.0.2.15:22122

Txt代码  

  1. http.tracker_server_port=8080 ->http.tracker_server_port=8090

#支持http

Txt代码  

  1. ##include http.conf ->#include http.conf

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

Txt代码  

  1. sudo fdfs_test %FastDFS%/conf/client.conf upload a.txt

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

如果命令行反馈类似如下:

则说明上传文件成功。

二、下载文件

在浏览器中,输入上图中的url地址, tracker server会自动重定向到存储文件的storage server,文件下载成功。

至此,已经成功搭建了FastDFS,编写你自己的client来进行访问吧:)

FastDFS介绍和配置过程 二的更多相关文章

  1. 分布式文件系统FastDFS介绍和配置过程

    http://ylw6006.blog.51cto.com/470441/948729/ 由于网站使用nfs共享方式保存用户上传的图片,附件等资料,然后通过apache下载的方式供用户访问,在网站架构 ...

  2. FastDFS介绍和配置过程

    由于网站使用nfs共享方式保存用户上传的图片,附件等资料,然后通过apache下载的方式供用户访问,在网站架构初期,使用这种简单的方式实现了静态资源的读写分离,但随着网站数据量的增加,图片服务器渐渐成 ...

  3. FastDFS介绍和搭建(转载)

    FastDFS介绍和配置过程--http://blog.51cto.com/ylw6006/948729 FastDFS的五篇文章--http://www.cnblogs.com/smartycity ...

  4. FastDFS配置过程

    在我的生产环境中利用FastDFS实现动静分离的方案

  5. Linux的VMWare下Centos7的三种网络配置过程(网络二)

    Linux之VMWare下Centos7的三种网络配置过程 环境:虚拟软件:VMWare 14.0客户机:windows 10虚拟机:centos 7 VMware三种网络连接方式 Bridge(桥接 ...

  6. FastDFS的安装配置

    一:实验描述: fastdfs 介绍 FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别 ...

  7. 【Big Data】HADOOP集群的配置(二)

    Hadoop集群的配置(二) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问 ...

  8. Win7上Git安装及配置过程

    Win7上Git安装及配置过程 文档名称 Win7上Git安装及配置过程 创建时间 2012/8/20 修改时间 2012/8/20 创建人 Baifx 简介(收获) 1.在win7上安装msysgi ...

  9. FastDFS、nginx配置手记

    第一部分   FastDFS介绍 1.FastDFS是什么 FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux.FreeBSD.AIX等UNIX系统.它只能 ...

随机推荐

  1. ng 双向数据绑定 实现 注册协议效果

    效果: 代码: <!DOCTYPE html> <html ng-app="myApp"> <head lang="en"> ...

  2. js 扩展实例

    //扩展实例1 字符串中首字符转大写 var test=' this is '; String.prototype.mytrim=function(){ var re=/^\s+(.*?)\s+$/; ...

  3. Mac安装并破解StarUML

    1.下载与安装这里不做赘述,直接去官网下载即可 http://staruml.io/ 2.关键的事情来了,破解 一.打开安装包的目录 cd /Applications/StarUML.app/Cont ...

  4. [转载] PHP升级导致系统负载过高问题分析

    原文:http://chuansongme.com/n/797172 背景 据XX部门兄弟反应, 其在将PHP从5.3.8 升级到5.5.13 时, 开始运行正常, 运行一段时间后, 系统负载变高,达 ...

  5. JavaScript碎片

    option option 元素定义下拉列表中的一个选项(一个条目). 浏览器将 <option> 标签中的内容作为 <select> 标签的菜单或是滚动列表中的一个元素显示. ...

  6. 剑指Offer面试题:1.实现单例模式

    一 题目:实现单例模式Singleton 题目:设计一个类,我们只能生产该类的一个实例. 只能生成一个实例的类是实现了Singleton(单例)模式的类型.由于设计模式在面向对象程序设计中起着举足轻重 ...

  7. plsql基本操作 复制表 导出表 导出表结构 及其导入

    上一片中介绍了安装instantclient +plsql取代庞大客户端的安装,这里说下plsql的基本操作 plsql操作界面图: 1.复制表 语句:create table IGIS_COPY a ...

  8. Windows下运行Hadoop

    Windows下运行Hadoop,通常有两种方式:一种是用VM方式安装一个Linux操作系统,这样基本可以实现全Linux环境的Hadoop运行:另一种是通过Cygwin模拟Linux环境.后者的好处 ...

  9. 【Xamarin】MonoTouch - iOS 使用 UIImagePickerController 打开图片库和相机选择图片修改头像

    Application tried to present modally an active controller <UIImagePickerController: 0x7b6ff400> ...

  10. android生命周期参考

    public class ActivityDemo extends Activity { private static final String TAG = "ActivityDemo&qu ...