`
bwhzhl
  • 浏览: 102771 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

FastDFS简单的配置实现

 
阅读更多

1.libevent库安装

 

wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.14-stable.tar.gz  
tar -zxvf libevent-2.0.14-stable.tar.gz   
cd libevent-2.0.14-stable  
./configure --prefix=/usr/local/libevent-2.0.14  
make && make install 

2.FastDFS安装

 

wget http://fastdfs.googlecode.com/files/FastDFS_v3.02.tar.gz  
tar -zxvf FastDFS_v3.02.tar.gz   
cd FastDFS  
vim make.sh
grep -A 4 '/usr/local/FastDFS' make.sh    #修改如下

TARGET_PREFIX=/usr/local/FastDFS  
TARGET_CONF_PATH=/etc/fdfs  
WITH_HTTPD=1 
WITH_LINUX_SERVICE=1 

./make.sh C_INCLUDE_PATH=/usr/local/libevent-2.0.14/include  LIBRARY_PATH=/usr/local/libevent-2.0.14/lib
./make.sh install  
ls /etc/fdfs/  
client.conf  http.conf  mime.types  storage.conf  tracker.conf 

 

3.修改相关文件

 

 echo '/usr/local/libevent-2.0.14/include/' >> /etc/ld.so.conf  
 echo '/usr/local/libevent-2.0.14/lib/' >> /etc/ld.so.conf  
 ldconfig 
mkdir -p /home/data/fastdfs 

 

注:3台服务器都如上操作

 

4.tracker节点安装

修改

/etc/fdfs/tracker.conf

如下配置

[root@DFS1 fdfs]# grep -v '^#' /etc/fdfs/tracker.conf |grep -v '^$'
disabled=false
bind_addr=192.168.1.201
port=22122
connect_timeout=30
network_timeout=60
base_path=/home/data/fastdfs
max_connections=256
work_threads=4
store_lookup=2
store_group=group2
store_server=0
store_path=0
download_server=0
reserved_storage_space = 4GB
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
sync_log_buff_interval = 10
check_active_interval = 120
thread_stack_size = 64KB
storage_ip_changed_auto_adjust = true
storage_sync_file_max_delay = 86400
storage_sync_file_max_time = 300
use_trunk_file = false 
slot_min_size = 256
slot_max_size = 16MB
trunk_file_size = 64MB
http.disabled=false
http.server_port=8080
http.check_alive_interval=30
http.check_alive_type=tcp
http.check_alive_uri=/status.html
http.need_find_content_type=true

 修改

/etc/fdfs/http.conf

如下配置

[root@DFS1 fdfs]# grep -v '^#' /etc/fdfs/http.conf |grep -v '^$'       
http.default_content_type = application/octet-stream
http.mime_types_filename=mime.types
http.anti_steal.check_token=false
http.anti_steal.token_ttl=900
http.anti_steal.secret_key=FastDFS1234567890
http.anti_steal.token_check_fail=/home/data/fastdfs/conf/anti-steal.jpg

启动:

/usr/local/FastDFS/bin/fdfs_trackerd /etc/fdfs/tracker.conf  

 echo $?

 22

[root@DFS1 fdfs]# cat /home/data/fastdfs/logs/trackerd.log 
[2012-11-21 13:55:08] ERROR - file: ../common/fdfs_http_shared.c, line: 128, param "http.mime_types_filename" not exist or is empty
 

修改tracker.conf

[root@DFS1 fdfs]# tail -3 /etc/fdfs/tracker.conf
#use "#include" directive to include http other settings
#include http.conf
 
[root@DFS1 fdfs]# netstat -antp 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 192.168.1.201:22122         0.0.0.0:*                   LISTEN      8929/fdfs_trackerd  
tcp        0      0 192.168.1.201:8080          0.0.0.0:*                   LISTEN      8929/fdfs_trackerd  
 

4.storage节点安装

修改

 /etc/fdfs/storage.conf 

如下配置

[root@DFS2 fdfs]# grep -v '^#' /etc/fdfs/storage.conf |grep -v '^$'            
disabled=false
group_name=group1
bind_addr=192.168.1.202
client_bind=true
port=23000
connect_timeout=30
network_timeout=60
heart_beat_interval=30
stat_report_interval=60
base_path=/home/data/fastdfs
max_connections=256
buff_size = 256KB
work_threads=4
disk_rw_separated = true
disk_rw_direct = false
disk_reader_threads = 1
disk_writer_threads = 1
sync_wait_msec=50
sync_interval=0
sync_start_time=00:00
sync_end_time=23:59
write_mark_file_freq=500
store_path_count=1
store_path0=/home/data/fastdfs
subdir_count_per_path=256
tracker_server=192.168.1.201:22122
log_level=info
run_by_group=
run_by_user=
allow_hosts=*
file_distribute_path_mode=0
file_distribute_rotate_count=100
fsync_after_written_bytes=0
sync_log_buff_interval=10
sync_binlog_buff_interval=10
sync_stat_file_interval=300
thread_stack_size=512KB
upload_priority=10
if_alias_prefix=
check_file_duplicate=0
key_namespace=FastDFS
keep_alive=0
http.disabled=false
http.domain_name=
http.server_port=8888
http.trunk_size=256KB
http.need_find_content_type=true
[root@DFS2 fdfs]# tail -n 3 /etc/fdfs/storage.conf 
#use "#include" directive to include HTTP other settings
#include http.conf
 

 

 

 

修改

/etc/fdfs/http.conf 

配置如下

[root@DFS2 fdfs]# grep -v '^#' /etc/fdfs/http.conf |grep -v '^$'
http.default_content_type = application/octet-stream
http.mime_types_filename=mime.types
http.anti_steal.check_token=false
http.anti_steal.token_ttl=900
http.anti_steal.secret_key=FastDFS1234567890
http.anti_steal.token_check_fail=/home/data/fastdfs/conf/anti-steal.jpg

 启动:

 /usr/local/FastDFS/bin/fdfs_storaged  /etc/fdfs/storage.conf 

 

[root@DFS2 fdfs]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 192.168.1.202:8888          0.0.0.0:*                   LISTEN      7861/fdfs_storaged  
tcp        0      0 192.168.1.202:23000         0.0.0.0:*                   LISTEN      7861/fdfs_storaged  
 

 

 

5.client配置测试

修改

/etc/fdfs/client.conf

配置如下

[root@DFS3 fastdfs]# grep -v '^#' '/etc/fdfs/client.conf' |grep  -v '^$'
connect_timeout=30
network_timeout=60
base_path=/home/data/fastdfs
tracker_server=192.168.1.201:22122
log_level=info
http.tracker_server_port=8080
 

测试上传

[root@DFS3 fastdfs]# /usr/local/FastDFS/bin/fdfs_test /etc/fdfs/client.conf  upload  /root/FastDFS_v3.02.tar.gz 
This is FastDFS client test program v3.02

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/ 
for more detail.

[2012-11-21 15:04:37] INFO - base_path=/home/data/fastdfs, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0

tracker_query_storage_store_list_without_group: 
        server 1. group_name=group1, ip_addr=192.168.1.202, port=23000

group_name=group1, ip_addr=192.168.1.202, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgBylCsfQbXgHCzAAU-MoCNswU.tar.gz
source ip address: 192.168.1.202
file timestamp=2012-11-21 15:04:38
file size=343602
file crc32=2156770053
file url: http://192.168.1.201:8080/group1/M00/00/00/wKgBylCsfQbXgHCzAAU-MoCNswU.tar.gz
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgBylCsfQbXgHCzAAU-MoCNswU_big.tar.gz
source ip address: 192.168.1.202
file timestamp=2012-11-21 15:04:38
file size=343602
file crc32=2156770053
file url: http://192.168.1.201:8080/group1/M00/00/00/wKgBylCsfQbXgHCzAAU-MoCNswU_big.tar.gz

 

 

 

6.其他:

 tracker.conf 配置文件分析

tracker.conf这个配置文件是否生效,因为在启动fastdfs服务端进程时需要指定配置文件,所以需要使次配置文件生效。false是生效,true是屏蔽。
	
        disabled=false
	 
	#程序的监听地址,如果不设定则监听所有地址
	bind_addr=
	 
	#tracker监听的端口
	port=22122
	 
	#链接超时设定
	connect_timeout=30
	 
	#tracker在通过网络发送接收数据的超时时间
	network_timeout=60
	 
	#数据和日志的存放地点
	base_path=/opt/fdfs
	 
	#服务所支持的最大链接数
	max_connections=256
	 
	#工作线程数一般为cpu个数
	work_threads=4
	 
	#在存储文件时选择group的策略,0:轮训策略 1:指定某一个组 2:负载均衡,选择空闲空间最大的group
	store_lookup=2
	 
	#如果上面的store_lookup选择了1,则这里需要指定一个group
	#store_group=group2
	 
	#在group中的哪台storage做主storage,当一个文件上传到主storage后,就由这台机器同步文件到group内的其他storage上,0:轮训策略 1:根据ip地址排序,第一个 2:根据优先级排序,第一个
	store_server=0
	 
	#选择那个storage作为主下载服务器,0:轮训策略 1:主上传storage作为主下载服务器
	download_server=0
	 
	#选择文件上传到storage中的哪个(目录/挂载点),storage可以有多个存放文件的base path 0:轮训策略 2:负载均衡,选择空闲空间最大的
	store_path=0
	 
	#系统预留空间,当一个group中的任何storage的剩余空间小于定义的值,整个group就不能上传文件了
	reserved_storage_space = 4GB
	 
	#日志信息级别
	log_level=info
	 
	#进程以那个用户/用户组运行,不指定默认是当前用户
	run_by_group=
	run_by_user=
	 
	#允许那些机器连接tracker默认是所有机器
	allow_hosts=*
	 
	#设置日志信息刷新到disk的频率,默认10s
	sync_log_buff_interval = 10
	 
	#检测storage服务器的间隔时间,storage定期主动向tracker发送心跳,如果在指定的时间没收到信号,tracker人为storage故障,默认120s
	check_active_interval = 120
	 
	#线程栈的大小,最小64K
	thread_stack_size = 64KB
	 
	#storage的ip改变后服务端是否自动调整,storage进程重启时才自动调整
	storage_ip_changed_auto_adjust = true
	 
	#storage之间同步文件的最大延迟,默认1天
	storage_sync_file_max_delay = 86400
	 
	#同步一个文件所花费的最大时间
	storage_sync_file_max_time = 300
	 
	#是否用一个trunk文件存储多个小文件
	use_trunk_file = false
	 
	#最小的solt大小,应该小于4KB,默认256bytes
	slot_min_size = 256
	 
	#最大的solt大小,如果上传的文件小于默认值,则上传文件被放入trunk文件中
	slot_max_size = 16MB
	 
	#trunk文件的默认大小,应该大于4M
	trunk_file_size = 64MB
	 
	#http服务是否生效,默认不生效
	http.disabled=false
	 
	#http服务端口
	http.server_port=8080
	 
	#检测storage上http服务的时间间隔,<=0表示不检测
	http.check_alive_interval=30
	 
	#检测storage上http服务时所用请求的类型,tcp只检测是否可以连接,http必须返回200
	http.check_alive_type=tcp
	 
	#通过url检测storage http服务状态
	http.check_alive_uri=/status.html
	 
	#if need find content type from file extension name
	http.need_find_content_type=true
	 
	#用include包含进http的其他设置
	##include http.conf
 

 

 

 

storage.conf配置文件分析

	#同tracker.conf
	disabled=false
	 
	#这个storage服务器属于那个group
	group_name=group1
	 
	#同tracker.conf
	bind_addr=
	 
	#连接其他服务器时是否绑定地址,bind_addr配置时本参数才有效
	client_bind=true
	 
	#同tracker.conf
	port=23000
	connect_timeout=30
	network_timeout=60
	 
	#主动向tracker发送心跳检测的时间间隔
	heart_beat_interval=30
	 
	#主动向tracker发送磁盘使用率的时间间隔
	stat_report_interval=60
	 
	#同tracker.conf
	base_path=/opt/fdfs
	max_connections=256
	 
	#接收/发送数据的buff大小,必须大于8KB
	buff_size = 256KB
	 
	#同tracker.conf
	work_threads=4
	 
	#磁盘IO是否读写分离
	disk_rw_separated = true
	 
	#是否直接读写文件,默认关闭
	disk_rw_direct = false
	 
	#混合读写时的读写线程数
	disk_reader_threads = 1
	disk_writer_threads = 1
	 
	#同步文件时如果binlog没有要同步的文件,则延迟多少毫秒后重新读取,0表示不延迟
	sync_wait_msec=50
	 
	#同步完一个文件后间隔多少毫秒同步下一个文件,0表示不休息直接同步
	sync_interval=0
	 
	#表示这段时间内同步文件
	sync_start_time=00:00
	sync_end_time=23:59
	 
	#同步完多少文件后写mark标记
	write_mark_file_freq=500
	 
	#storage在存储文件时支持多路径,默认只设置一个
	store_path_count=1
	 
	#配置多个store_path路径,从0开始,如果store_path0不存在,则base_path必须存在
	store_path0=/home/data/
	#store_path1=/opt/fastdfs2
	 
	#subdir_count  * subdir_count个目录会在store_path下创建,采用两级存储
	subdir_count_per_path=256
	 
	#设置tracker_server
	tracker_server=x.x.x.x:22122
	 
	#同tracker.conf
	log_level=info
	run_by_group=
	run_by_user=
	allow_hosts=*
	 
	#文件在数据目录下的存放策略,0:轮训 1:随机
	file_distribute_path_mode=0
	 
	#当问及是轮训存放时,一个目录下可存放的文件数目
	file_distribute_rotate_count=100
	 
	#写入多少字节后就开始同步,0表示不同步
	fsync_after_written_bytes=0
	 
	#刷新日志信息到disk的间隔
	sync_log_buff_interval=10
	 
	#同步storage的状态信息到disk的间隔
	sync_stat_file_interval=300
	 
	#线程栈大小
	thread_stack_size=512KB
	 
	#设置文件上传服务器的优先级,值越小越高
	upload_priority=10
	 
	#是否检测文件重复存在,1:检测 0:不检测
	check_file_duplicate=0
	 
	#当check_file_duplicate设置为1时,次值必须设置
	key_namespace=FastDFS
	 
	#与FastDHT建立连接的方式 0:短连接 1:长连接
	keep_alive=0
	 
	#同tracker.conf
	http.disabled=false
	http.domain_name=
	http.server_port=8888
	http.trunk_size=256KB
	http.need_find_content_type=true
	##include http.conf
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    虚拟机fastdfs配置静态ip

    FastDFS的设计原则在于简单高效,在实现上尽可能减少服务器资源消耗的同时,提供稳定的服务。 #### 二、虚拟机环境搭建 在进行FastDFS配置之前,首先需要搭建好虚拟机环境。这里我们假设使用的虚拟机软件是VMware或...

    FastDFS集群的配置文件

    FastDFS设计目标是轻量、简单、高效,易于部署和维护,广泛应用于互联网行业。下面将详细讲解FastDFS集群的配置文件及其重要设置。 首先,FastDFS的配置文件通常位于`/etc/fdfs`目录下,主要包括以下几个文件: 1....

    FastDFS配置详解

    在本文中,我们将深入探讨FastDFS的两个核心配置文件——`tracker.conf`和`storage.conf`,以及它们在FastDFS架构中的作用。 1. **Tracker Server配置(tracker.conf)** `tracker.conf`是FastDFS的跟踪服务器配置...

    FastDFS分布式存储服务器安装及nginx的安装配置

    FastDFS设计简单,易于部署,支持多种编程语言,使得它成为许多开发者的首选。 在安装FastDFS时,我们需要准备以下组件:libfastcommon(FastDFS的公共库)、fastdfs(FastDFS的核心服务)、fastdfs-nginx-module...

    FASTDFS 5.11稳定版

    8. **API接口简单**:FASTDFS提供了简单的HTTP协议接口,方便应用程序进行文件上传、下载操作,降低了开发难度。 9. **监控与管理**:FASTDFS提供了一系列管理工具,如检查状态、日志查看、故障恢复等,便于运维...

    fastdfs-6.06搭建安装包

    3. **配置文件**:配置FastDFS的配置文件,如`/etc/fdfs/tracker.conf`和`/etc/fdfs/storage.conf`,设定服务器的IP地址、端口、数据存储路径等参数。 4. **初始化数据**:运行初始化脚本,如`/usr/local/fastdfs/...

    SpringBoot集成FastDFS实现文件服务

    例如,一个简单的文件上传接口可以这样实现: ```java @RestController @RequestMapping("/file") public class FileController { @Autowired private FastDFSFileService fileService; @PostMapping("/upload...

    FastDFS安装需要的文件

    FastDFS设计的目标是简单、高效和高可用性,它将文件存储和文件访问(HTTP访问)的功能分离,提供了一个简单的基于HTTP协议的客户端接口。 FastDFS安装通常分为以下几个步骤: 1. **环境准备**:确保系统已经安装...

    FastDFS5.05 linux 分布式全部教程资源

    通过创建一个简单的Web应用,演示如何使用PHP或Java等语言与FastDFS进行交互,实现文件的上传和下载功能。 九、FastDFS高级特性 1. 负载均衡:FastDFS可以通过设置多个storage节点,实现文件的负载均衡存储。 2. ...

    fastdfs 配置示例

    总结,FastDFS的配置涉及到多个文件,它们协同工作,实现文件的高效存储、同步和访问。理解并正确配置这些参数对于搭建和优化FastDFS系统至关重要。在实际应用中,还需要根据业务需求和服务器硬件情况灵活调整,确保...

    fastdfs-master.zip

    1. **简单集成**:SpringBoot的自动配置和依赖注入使得整合FastDFS变得简单。 2. **高可扩展性**:SpringBoot的微服务架构和FastDFS的分布式特性,使得系统具有良好的可扩展性。 3. **易维护**:SpringBoot的优雅...

    fastdfs最新版,FastDFS分布式文件系统

    FastDFS支持文件分组和负载均衡,可以将不同的文件分发到不同的组,实现水平扩展。 文件上传流程大致为:客户端首先连接Tracker Server,Tracker Server根据当前Storage Server的状态选择一个最合适的Server,然后...

    FastDFS分布式文件系统 v6.12.0.zip

    FastDFS的安装相对简单,主要涉及Tracker和Storage两个服务组件。首先,解压下载的FastDFS v6.12.0压缩包,然后按照官方提供的文档进行编译和安装。配置文件主要包括`fastdfs.conf`,其中需指定Tracker和Storage的...

    Java操作FastDFS文件上传

    Java操作FastDFS文件上传是Java开发中常见的一项任务,下面我们将详细探讨如何使用`fastdfs-client-java`库实现这一功能。 首先,我们需要在项目中引入`fastdfs-client-java`依赖。通常,可以通过Maven或Gradle将该...

    FastDFS的安装,配置与使用(java)

    1. **轻量级**: FastDFS的架构简单,易于部署和维护。 2. **高性能**: 通过网络分布式文件系统,提供高并发的文件访问能力。 3. **负载均衡**: 支持多组服务器集群,自动负载均衡。 4. **文件分片存储**: 大文件可以...

    fastDFS资源包合集

    压缩包中的小demo可能包含了一个简单的客户端示例,演示如何使用FastDFS API进行文件上传和下载。通过这个示例,你可以了解FastDFS客户端的基本操作流程,例如连接Tracker,获取Storage信息,上传和下载文件等。 6...

    FastDFS资源集合.zip

    2. **分布式特性**:FastDFS支持多组服务器集群,每组集群可以独立工作,通过负载均衡器进行分发,实现水平扩展。 3. **负载均衡**:FastDFS内置负载均衡机制,自动将请求分发到不同的存储节点,避免单点故障。 4. *...

    FastDFS的项目下载

    FastDFS因其简单易用、高效稳定的特点,在很多大型互联网公司得到了广泛应用。掌握FastDFS的使用对于提升Java应用的文件处理能力具有重要意义。通过深入学习其原理和实践操作,开发者能够更好地应对大数据量的文件...

    通过java向fastdfs上传文件实例

    本文将详细讲解如何通过Java开发语言来实现向FastDFS系统的文件上传功能。 FastDFS是一个高性能、轻量级的分布式文件系统,它对文件进行管理,包括文件存储、文件同步、文件访问(文件上传、文件下载)等功能,解决...

    FastDFS和Linux下安装使用FastDFS 安装Nginx 分布式文件系统.docx

    总的来说,FastDFS是一个适用于大容量存储场景的高效分布式文件系统,它的简单架构和良好的扩展性使其成为许多企业的首选。在Linux环境中部署FastDFS并结合Nginx,可以构建出一个强大且易于管理的文件存储解决方案。...

Global site tag (gtag.js) - Google Analytics