Fastdfs安装及配置--TG制作

 参考地址:

http://jianwen.blog.51cto.com/2519004/863106

 

Fastdfs 安装

一、环境预约

服务器     IP           端口         作用

Tracker1  192.168.8.235     22122       Tracker

Tracker2  192.168.8.236     22122       Tracker

Storage1  192.168.8.237Group1     23000       Storage

Storage2  192.168.8.238Group1     23000       Storage

Storage3  192.168.8.239Group2     23001       Storage

 

二、安装libevent

Fastdfs内部使用libevent作为http服务器,建议还是使用apacheNginx,使用libevent路径因为/usr,如果系统已安装,需要卸载掉,命令

#首先卸载原有的libevent

yum –y remove libevent

mkdir -p /root/soft

cd /root/soft

wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz

cd libevent-2.0.20-stable

./configure

 make && make install

#为 libevent 创建软链接到/lib 库下,64 位系统对应/lib64

ln -s /usr/local/lib/libevent* /lib/ 

ln -s /usr/local/lib/libevent* /lib64/

 

三、安装tracker_server

1. 创建安装目录

#mkdir/home/yuqing

#tar zxvf Fastdfs_v3.07.tar.gz  -C  /home/yuqing

开启http支持,需要先修改make.sh文件,修改"#WITH_HTTPD=1""WITH_HTTPD=1"

#./make.sh//开始编译

#./make.sh install //安装

2. 配置文件:

配置在/home/yuqing/fastdfs/conf文件里面,

Client.conf//客户端上传配置文件

Storage.conf//文件存储服务器配置文件

Tracker.conf//调度服务器配置文件

http.conf//http服务器配置文件

3. 配置tracker_server

修改tracker.conf文件,修改loggroup等文件存放的目录

base_path=/home/yuqing/fastdfs-> base_path=/home/yuqing/fastdfs

修改http端口

http.server_port=8080-> http.server.port=80

开启http支持

##includehttp.conf -> #include http.conf

4. 启动tracker_server

/usr/local/bin/fdfs_tracked /home/yuqing/fastdfs/conf/tracker.conf

进入/home/yuqing/fastdfs/logs/tracker.log查看tracker的日志,

 

出现上图则为成功启动tracker_server

Tracker 2依照上面安装tracker1 的步骤安装。

四、安装storage_server

#yum –y remove libevent

安装libevent:

#tar  -zxvf libevent 1.4.14b-stable

#cdlibevent

#./configure–prefix=/usr

#make

#makeinstall

 

1. 创建安装目录

#mkdir /home/yuqing

#tar  -zxvf libevent 1.4.14b-stable

#cdlibevent

#./configure–prefix=/usr

#make

#makeinstall

#tar zxvf Fastdfs_v3.07.tar.gz  -C  /home/yuqing

开启http支持,需要先修改make.sh文件,修改”#WITH_HTTPD=1“为”WITH_HTTPD=1”。

#./make.sh//开始编译

#./make.shinstall //安装

2. 配置storage

修改storage.conf配置文件,定义loggroup等存储目录

base_path=/home/yuqing/fastdfs-> base_path=/home/yuqing/fastdfs

修改文件存位置,一太storage可以指定多个目录

store_path0=/home/yuqing/fastdfs-> store_path0=/home/yuqing/fastdfs

定义组

Group_name=group1

修改tracker_server的地址和端口,可以指定多个

Tracker_server192.168.209.121:22122 -> tracker_server 192.168.8.235:22122

Tracker_server192.168.8.236:22122

开启http支持

##includehttp.conf –> #include http.conf

启动storage 服务器

#/usr/local/bin/fdfs_storaged/home/yuqing/fastdfs/conf/storage.conf

执行时会在data文件夹下生产256个文件夹,

打开storage.log日志,查看是否执行成功

3. Storage 2storage 3依照如上步骤执行。另外storage 3 的组为group2 ,端口为23001

 

 

、测试及文件上传

Fastdfs有自带的客户端程序,经过配置后,可进行文件上传。

修改/home/yuqing/fastdfs/conf/client文件。

Base_path=/home/yuqing/fastdfs-> bast_path=/home/yuqing/fastdfs

修改tracker_server, 可以不是唯一

Tracker_server192.168.209.121:22122 -> tracker_server 192.168.8.235:22122

Tracker_server192.168.8.236:22122

开启http支持

##includehttp.conf –> #include http.conf

上传文件

/usr/local/bin创建一个test.txt文件

#mkdirtest.txt

执行上传命令

 

#/usr/local/bin/fdfs_test/home/yuqing/fastdfs/conf/client.conf upload test.txt

如果执行成功可以看到如下信息

[root@c_basic fdfs]# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload /etc/passwd

This is FastDFS client test program v3.06
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.
[2014-05-19 02:48:25] INFO - base_path=/home/yuqing/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.117, port=23000
group_name=group1, ip_addr=192.168.1.117, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgBdVNr5CLbfnSUAAAEAlaqwJU8416900
source ip address: 192.168.1.117
file timestamp=2014-05-09 04:08:02
file size=1026
file crc32=1454030997
file url: http://192.168.1.101:8080/group1/M00/00/00/wKgBdVNr5CLbfnSUAAAEAlaqwJU8416900
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgBdVNr5CLbfnSUAAAEAlaqwJU8416900_big
source ip address: 192.168.1.117
file timestamp=2014-05-09 04:08:02
file size=1026
file crc32=1454030997
file url: http://192.168.1.101:8080/group1/M00/00/00/wKgBdVNr5CLbfnSUAAAEAlaqwJU8416900_big
[root@c_basic fdfs]#

 

五、常用命令

1. 重启tracker_server

/usr/local/bin/restart.sh /usr/local/bin/fdfs_tracked /home/yuqing/fastdfs/conf/tracker.conf

2. 停止tracker_server

/usr/local/bin/stop.sh /usr/local/bin/fdfs_tracked /home/yuqing/fastdfs/conf/tracker.conf

3. 如何让server进程退出运行?

直接kill即可让server进程正常退出,可以使用killall命令,例如:

killallfdfs_trackerd

killallfdfs_storaged

也可以使用Fastdfs自带的stop.sh脚本,如:

/usr/local/bin/stop.sh /usr/local/bin/fdfs_storaged  /etc/fdfs/storage.conf

stop.sh只会停止命令行(包括参数)完全相同的进程。

千万不要使用-9参数强杀,否则可能会导致binlog数据丢失的问题。

4. 如何重启server进程?

可以killserver进程后,执行启动命令行。如:

killallfdfs_trackerd

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

或者直接使用Fastdfs自带的restart.sh脚本,如:

/usr/local/bin/restart.sh  /usr/local/bin/fdfs_trackerd  /etc/fdfs/tracker.conf

5. 如何删除无效的storage server

可以使用fdfs_monitor来删除。命令行如下:

/usr/local/bin/fdfs_monitor<config_filename> delete <group_name> <storage_ip>

例如:

/usr/local/bin/fdfs_monitor/etc/fdfs/client.conf delete group1 192.168.0.100

注意:如果被删除的storage server的状态是ACTIVE,也就是该storage server还在线上服务的情况下,是无法删除掉的。

6. 查看tracker_serverstorage_server状态

#/usr/local/bin/fdfs_monitor/home/yuqing/fastdfs/conf/client.conf

 

 

六、来自chinaunix的配置介绍

# is thisconfig file disabled

# falsefor enabled

# truefor disabled

disabled=false

# 这个配置文件是否不生效,呵呵(改成是否生效是不是会让人感觉好点呢?) false 为生效(否则不生效) true反之

 

# bind anaddress of this host

# emptyfor bind all addresses of this host

bind_addr=

# 是否绑定IP,

#bind_addr= 后面为绑定的IP地址 (常用于服务器有多个IP但只希望一个IP提供服务)。如果不填则表示所有的(一般不填就OK),相信较熟练的SA都常用到类似功能,很多系统和应用都有

 

# thetracker server port

port=22122

# 提供服务的端口,不作过多解释了

 

# connecttimeout in seconds

# defaultvalue is 30s

connect_timeout=30

#连接超时时间,针对socket套接字函数connect

 

# networktimeout in seconds

network_timeout=60

# trackerserver的网络超时,单位为秒。发送或接收数据时,如果在超时时间后还不能发送或接收数据,则本次网络通信失败。

 

# thebase path to store data and log files

base_path=/home/yuqing/fastdfs

#base_path 目录地址(根目录必须存在,子目录会自动创建)

# 附目录说明:

trackerserver目录及文件结构:

${base_path}

|__data

||__storage_groups.dat:存储分组信息

||__storage_servers.dat:存储服务器列表

|__logs

|__trackerd.logtracker server日志文件

 

数据文件storage_groups.datstorage_servers.dat中的记录之间以换行符(\n)分隔,字段之间以西文逗号(,)分隔。

storage_groups.dat中的字段依次为:

1.group_name:组名

2.storage_portstorage server端口号

 

storage_servers.dat中记录storage server相关信息,字段依次为:

1.group_name:所属组名

2.ip_addrip地址

3. status:状态

4.sync_src_ip_addr:向该storage server同步已有数据文件的源服务器

5.sync_until_timestamp:同步已有数据文件的截至时间(UNIX时间戳)

6.stat.total_upload_count:上传文件次数

7.stat.success_upload_count:成功上传文件次数

8.stat.total_set_meta_count:更改meta data次数

9.stat.success_set_meta_count:成功更改meta data次数

10.stat.total_delete_count:删除文件次数

11.stat.success_delete_count:成功删除文件次数

12.stat.total_download_count:下载文件次数

13.stat.success_download_count:成功下载文件次数

14.stat.total_get_meta_count:获取meta data次数

15.stat.success_get_meta_count:成功获取meta data次数

16.stat.last_source_update:最近一次源头更新时间(更新操作来自客户端)

17.stat.last_sync_update:最近一次同步更新时间(更新操作来自其他storage server的同步)

 

# maxconcurrent connections this server supported

#max_connections worker threads start when this service startup

max_connections=256

# 系统提供服务时的最大连接数。对于V1.x,因一个连接由一个线程服务,也就是工作线程数。

# 对于V2.x,最大连接数和工作线程数没有任何关系

 

# workthread count, should <= max_connections

# defaultvalue is 4

# sinceV2.00

# V2.0引入的这个参数,工作线程数,通常设置为CPU

work_threads=4

 

# themethod of selecting group to upload files

# 0:round robin

# 1:specify group

# 2: loadbalance, select the max free space group to upload file

store_lookup=2

# 上传组() 的方式 0:轮询方式 1: 指定组 2: 平衡负载(选择最大剩余空间的组()上传)

# 这里如果在应用层指定了上传到一个固定组,那么这个参数被绕过

 

# whichgroup to upload file

# whenstore_lookup set to 1, must set store_group to the group name

store_group=group2

# 当上一个参数设定为1 (store_lookup=1,即指定组名时),必须设置本参数为系统中存在的一个组名。如果选择其他的上传方式,这个参数就没有效了。

 

# whichstorage server to upload file

# 0:round robin (default)

# 1: thefirst server order by ip address

# 2: thefirst server order by priority (the minimal)

store_server=0

# 选择哪个storage server 进行上传操作(一个文件被上传后,这个storage server就相当于这个文件的storage server源,会对同组的storage server推送这个文件达到同步效果)

# 0: 轮询方式

# 1: 根据ip 地址进行排序选择第一个服务器(IP地址最小者)

# 2: 根据优先级进行排序(上传优先级由storage server来设置,参数名为upload_priority

 

# whichpath(means disk or mount point) of the storage server to upload file

# 0:round robin

# 2: loadbalance, select the max free space path to upload file

store_path=0

# 选择storage server 中的哪个目录进行上传。storage server可以有多个存放文件的base path(可以理解为多个磁盘)。

# 0: 轮流方式,多个目录依次存放文件

# 2: 选择剩余空间最大的目录存放文件(注意:剩余磁盘空间是动态的,因此存储到的目录或磁盘可能也是变化的)

 

# whichstorage server to download file

# 0:round robin (default)

# 1: thesource storage server which the current file uploaded to

download_server=0

# 选择哪个 storage server 作为下载服务器

# 0: 轮询方式,可以下载当前文件的任一storage server

# 1: 哪个为源storage server 就用哪一个 (前面说过了这个storage server是怎样产生的) 就是之前上传到哪个storage server服务器就是哪个了

 

#reserved storage space for system or other applications.

# if thefree(available) space of any stoarge server in

# a group<= reserved_storage_space,

# no filecan be uploaded to this group.

# bytesunit can be one of follows:

### G org for gigabyte(GB)

### M orm for megabyte(MB)

### K ork for kilobyte(KB)

### nounit for byte(B)

reserved_storage_space= 4GB

# storageserver 上保留的空间,保证系统或其他应用需求空间(指出如果同组的服务器的硬盘大小一样,以最小的为准,也就是只要同组中有一台服务器达到这个标准了,这个标准就生效,原因就是因为他们进行备份)

 

#standardlog level as syslog, case insensitive, value list:

### emergfor emergency

### alert

### critfor critical

### error

### warnfor warning

###notice

### info

### debug

log_level=info

# 选择日志级别(日志写在哪?看前面的说明了,有目录介绍哦呵呵)

 

#unixgroup name to run this program,

#not set(empty) means run by the group of current user

run_by_group=

# 操作系统运行Fastdfs的用户组 (不填就是当前用户组,哪个启动进程就是哪个)

 

#unixusername to run this program,

#not set(empty) means run by current user

run_by_user=

# 操作系统运行Fastdfs的用户 (不填就是当前用户,哪个启动进程就是哪个)

 

#allow_hosts can ocur more than once, host can be hostname or ip address,

#"*" means match all ip addresses, can use range like this:10.0.1.[1-15,20] or

# host[01-08,20-25].domain.com,for example:

#allow_hosts=10.0.1.[1-15,20]

#allow_hosts=host[01-08,20-25].domain.com

allow_hosts=*

# 可以连接到此 tracker server ip范围(对所有类型的连接都有影响,包括客户端,storage server

 

# synclog buff to disk every interval seconds

# defaultvalue is 10 seconds

sync_log_buff_interval= 10

# 同步或刷新日志信息到硬盘的时间间隔,单位为秒

# 注意:tracker server 的日志不是时时写硬盘的,而是先写内存。

 

# checkstorage server alive interval

check_active_interval= 120

# 检测 storage server 存活的时间隔,单位为秒。

# storageserver定期向tracker server 发心跳,如果tracker server在一个check_active_interval内还没有收到storage server的一次心跳,那边将认为该storage server已经下线。所以本参数值必须大于storage server配置的心跳时间间隔。通常配置为storage server心跳时间间隔的2倍或3倍。

 

# threadstack size, should > 512KB

# defaultvalue is 1MB

thread_stack_size=1MB

# 线程栈的大小。Fastdfs server端采用了线程方式。更正一下,tracker server线程栈不应小于64KB,不是512KB

# 线程栈越大,一个线程占用的系统资源就越多。如果要启动更多的线程(V1.x对应的参数为max_connections

V2.0work_threads),可以适当降低本参数值。

 

# autoadjust when the ip address of the storage server changed

# defaultvalue is true

storage_ip_changed_auto_adjust=true

# 这个参数控制当storage server IP地址改变时,集群是否自动调整。注:只有在storage server进程重启时才完成自动调整。

 

# storagesync file max delay seconds

# defaultvalue is 86400 seconds (one day)

# sinceV2.00

storage_sync_file_max_delay= 86400

# V2.0引入的参数。存储服务器之间同步文件的最大延迟时间,缺省为1天。根据实际情况进行调整

# 注:本参数并不影响文件同步过程。本参数仅在下载文件时,判断文件是否已经被同步完成的一个阀值(经验值)

 

# the maxtime of storage sync a file

# defaultvalue is 300 seconds

# sinceV2.00

storage_sync_file_max_time= 300

# V2.0引入的参数。存储服务器同步一个文件需要消耗的最大时间,缺省为300s,即5分钟。

# 注:本参数并不影响文件同步过程。本参数仅在下载文件时,作为判断当前文件是否被同步完成的一个阀值(经验值)

 

# if usea trunk file to store several small files

# defaultvalue is false

# sinceV3.00

use_trunk_file= false

# V3.0引入的参数。是否使用小文件合并存储特性,缺省是关闭的。

 

# the minslot size, should <= 4KB

# defaultvalue is 256 bytes

# sinceV3.00

slot_min_size= 256

# V3.0引入的参数。

# trunkfile分配的最小字节数。比如文件只有16个字节,系统也会分配slot_min_size个字节。

 

# the maxslot size, should > slot_min_size

# storethe upload file to trunk file when it's size <= this value

# defaultvalue is 16MB

# sinceV3.00

slot_max_size= 16MB

# V3.0引入的参数。

# 只有文件大小<=这个参数值的文件,才会合并存储。如果一个文件的大小大于这个参数值,将直接保存到一个文件中(即不采用合并存储方式)。

 

# thetrunk file size, should >= 4MB

# defaultvalue is 64MB

# sinceV3.00

trunk_file_size= 64MB

# V3.0引入的参数。

# 合并存储的trunk file大小,至少4MB,缺省值是64MB。不建议设置得过大。

 

# ifcreate trunk file advancely

# defaultvalue is false

trunk_create_file_advance= false

# 是否提前创建trunk file。只有当这个参数为true,下面3个以trunk_create_file_打头的参数才有效。

 

# thetime base to create trunk file

# thetime format: HH:MM

# defaultvalue is 02:00

trunk_create_file_time_base= 02:00

# 提前创建trunk file的起始时间点(基准时间),02:00表示第一次创建的时间点是凌晨2点。

 

# theinterval of create trunk file, unit: second

# defaultvalue is 38400 (one day)

trunk_create_file_interval= 86400

# 创建trunk file的时间间隔,单位为秒。如果每天只提前创建一次,则设置为86400

 

# thethreshold to create trunk file

# whenthe free trunk file size less than the threshold, will create

# thetrunk files

# defaultvalue is 0

trunk_create_file_space_threshold= 20G

# 提前创建trunk file时,需要达到的空闲trunk大小

# 比如本参数为20G,而当前空闲trunk4GB,那么只需要创建16GBtrunk file即可。

 

# 以下是关于http的设置了默认编译是不生效的要求更改 #WITH_HTTPD=1 注释#去掉再编译

# 关于http的应用说实话不是很了解没有见到相关说明 ,版主可以完善一下以下是字面解释了

#HTTPsettings

http.disabled=false# HTTP服务是否不生效

http.server_port=8080# HTTP服务端口

 

 

#use"#include" directive to include http other settiongs

##includehttp.conf # 如果加载http.conf的配置文件去掉第一个#

 

哈哈完成了一个下面是 storage.conf

 

 

# is thisconfig file disabled

# falsefor enabled

# truefor disabled

disabled=false

#同上文了就不多说了

 

# thename of the group this storage server belongs to

group_name=group1

# 指定 storage server 所在()

 

# bind anaddress of this host

# emptyfor bind all addresses of this host

bind_addr=

# 同上文

 

# if bindan address of this host when connect to other servers

# (thisstorage server as a client)

# truefor binding the address configed by above parameter: "bind_addr"

# falsefor binding any address of this host

client_bind=true

#bind_addr通常是针对server的。当指定bind_addr时,本参数才有效。

# storage server作为client连接其他服务器(如tracker server、其他storage server),是否绑定bind_addr

 

# the storageserver port

port=23000

# storageserver服务端口

 

# connecttimeout in seconds

# defaultvalue is 30s

connect_timeout=30

#连接超时时间,针对socket套接字函数connect

 

# networktimeout in seconds

network_timeout=60

# storageserver 网络超时时间,单位为秒。发送或接收数据时,如果在超时时间后还不能发送或接收数据,则本次网络通信失败。

 

# heartbeat interval in seconds

heart_beat_interval=30

# 心跳间隔时间,单位为秒 (这里是指主动向tracker server 发送心跳)

 

# diskusage report interval in seconds

stat_report_interval=60

# storageservertracker server报告磁盘剩余空间的时间间隔,单位为秒。

 

 

# thebase path to store data and log files

base_path=/home/yuqing/fastdfs

#base_path 目录地址,根目录必须存在子目录会自动生成 ( :这里不是上传的文件存放的地址,之前是的,在某个版本后更改了)

# 目录结构因为版主没有更新到论谈上这里就不发了大家可以看一下置顶贴:

 

# maxconcurrent connections server supported

#max_connections worker threads start when this service startup

max_connections=256

# 同上文

 

# workthread count, should <= max_connections

# defaultvalue is 4

# sinceV2.00

# V2.0引入的这个参数,工作线程数,通常设置为CPU

work_threads=4

 

# thebuff size to recv / send data

# defaultvalue is 64KB

# sinceV2.00

buff_size= 256KB

# V2.0引入本参数。设置队列结点的buffer大小。工作队列消耗的内存大小 = buff_size * max_connections

# 设置得大一些,系统整体性能会有所提升。

# 消耗的内存请不要超过系统物理内存大小。另外,对于32位系统,请注意使用到的内存不要超过3GB

 

# if read/ write file directly

# if setto true, open file will add the O_DIRECT flag to avoid file caching

# by thefile system. be careful to set this parameter.

# defaultvalue is false

disk_rw_direct= false

# V2.09引入本参数。设置为true,表示不使用操作系统的文件内容缓冲特性。

# 如果文件数量很多,且访问很分散,可以考虑将本参数设置为true

 

# if diskread / write separated

## falsefor mixed read and write

## truefor separated read and write

# defaultvalue is true

# sinceV2.00

disk_rw_separated= true

# V2.0引入本参数。磁盘IO读写是否分离,缺省是分离的。

 

# diskreader thread count per store base path

# formixed read / write, this parameter can be 0

# defaultvalue is 1

# sinceV2.00

disk_reader_threads= 1

# V2.0引入本参数。针对单个存储路径的读线程数,缺省值为1

# 读写分离时,系统中的读线程数 = disk_reader_threads *store_path_count

# 读写混合时,系统中的读写线程数 = (disk_reader_threads +disk_writer_threads) * store_path_count

 

# diskwriter thread count per store base path

# formixed read / write, this parameter can be 0

# defaultvalue is 1

# sinceV2.00

disk_writer_threads= 1

# V2.0引入本参数。针对单个存储路径的写线程数,缺省值为1

# 读写分离时,系统中的写线程数 = disk_writer_threads *store_path_count

# 读写混合时,系统中的读写线程数 = (disk_reader_threads +disk_writer_threads) * store_path_count

 

# when noentry to sync, try read binlog again after X milliseconds

# 0 fortry again immediately (not need to wait)

sync_wait_msec=200

# 同步文件时,如果从binlog中没有读到要同步的文件,休眠N毫秒后重新读取。0表示不休眠,立即再次尝试读取。

# 出于CPU消耗考虑,不建议设置为0。如何希望同步尽可能快一些,可以将本参数设置得小一些,比如设置为10ms

 

# aftersync a file, usleep milliseconds

# 0 forsync successively (never call usleep)

sync_interval=0

# 同步上一个文件后,再同步下一个文件的时间间隔,单位为毫秒,0表示不休眠,直接同步下一个文件。

 

# syncstart time of a day, time format: Hour:Minute

# Hourfrom 0 to 23, Minute from 0 to 59

sync_start_time=00:00

 

# syncend time of a day, time format: Hour:Minute

# Hourfrom 0 to 23, Minute from 0 to 59

sync_end_time=23:59

# 上面二个一起解释。允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定,相信sa都会明白

 

# writeto the mark file after sync N files

# defaultvalue is 500

write_mark_file_freq=500

# 同步完N个文件后,把storagemark文件同步到磁盘

# 注:如果mark文件内容没有变化,则不会同步

 

#path(disk or mount point) count, default value is 1

store_path_count=1

# 存放文件时storage server支持多个路径(例如磁盘)。这里配置存放文件的基路径数目,通常只配一个目录。

 

#store_path#, based 0, if store_path0 not exists, it's value is base_path

# thepaths must be exist

store_path0=/home/yuqing/fastdfs

#store_path1=/home/yuqing/fastdfs2

# 逐一配置store_path个路径,索引号基于0。注意配置方法后面有0,1,2 ......,需要配置0store_path - 1

# 如果不配置base_path0,那边它就和base_path对应的路径一样。

 

#subdir_count * subdir_count directories will be auto created under each

#store_path (disk), value can be 1 to 256, default value is 256

subdir_count_per_path=256

# Fastdfs存储文件时,采用了两级目录。这里配置存放文件的目录个数 (系统的存储机制,大家看看文件存储的目录就知道了)

# 如果本参数只为N(如:256),那么storage server在初次运行时,会自动创建 N * N 个存放文件的子目录。

 

#tracker_server can ocur more than once, and tracker_server format is

#"host:port", host can be hostname or ip address

tracker_server=10.62.164.84:22122

tracker_server=10.62.245.170:22122

#tracker_server 的列表要写端口的哦 (再次提醒是主动连接tracker_server )

# 有多个tracker server时,每个tracker server写一行

 

#standardlog level as syslog, case insensitive, value list:

### emergfor emergency

### alert

### critfor critical

### error

### warnfor warning

###notice

### info

### debug

log_level=info

# 日志级别不多说

 

#unixgroup name to run this program,

#not set(empty) means run by the group of current user

run_by_group=

# 同上文了

 

#unixusername to run this program,

#not set(empty) means run by current user

run_by_user=

# 同上文了 (提醒注意权限如果和 webserver不搭可以会产生错误)

 

#allow_hosts can ocur more than once, host can be hostname or ip address,

#"*" means match all ip addresses, can use range like this:10.0.1.[1-15,20] or

# host[01-08,20-25].domain.com,for example:

#allow_hosts=10.0.1.[1-15,20]

#allow_hosts=host[01-08,20-25].domain.com

allow_hosts=*

# 允许连接本storage serverIP地址列表(不包括自带HTTP服务的所有连接)

# 可以配置多行,每行都会起作用

 

# themode of the files distributed to the data path

# 0: roundrobin(default)

# 1:random, distributted by hash code

file_distribute_path_mode=0

# 文件在data目录下分散存储策略。

# 0: 轮流存放,在一个目录下存储设置的文件数后(参数file_distribute_rotate_count中设置文件数),使用下一个目录进行存储。

# 1: 随机存储,根据文件名对应的hash code来分散存储。

 

# validwhen file_distribute_to_path is set to 0 (round robin),

# whenthe written file count reaches this number, then rotate to next path

# defaultvalue is 100

file_distribute_rotate_count=100

# 当上面的参数file_distribute_path_mode配置为0(轮流存放方式)时,本参数有效。

# 当一个目录下的文件存放的文件数达到本参数值时,后续上传的文件存储到下一个目录中。

 

# callfsync to disk when write big file

# 0:never call fsync

# other:call fsync when written bytes >= this bytes

# defaultvalue is 0 (never call fsync)

fsync_after_written_bytes=0

# 当写入大文件时,每写入N个字节,调用一次系统函数fsync将内容强行同步到硬盘。0表示从不调用fsync

 

# synclog buff to disk every interval seconds

# defaultvalue is 10 seconds

sync_log_buff_interval=10

# 同步或刷新日志信息到硬盘的时间间隔,单位为秒

# 注意:storage server 的日志信息不是时时写硬盘的,而是先写内存。

 

# syncbinlog buff / cache to disk every interval seconds

# thisparameter is valid when write_to_binlog set to 1

# defaultvalue is 60 seconds

sync_binlog_buff_interval=60

# 同步binglog(更新操作日志)到硬盘的时间间隔,单位为秒

# 本参数会影响新上传文件同步延迟时间

 

# syncstorage stat info to disk every interval seconds

# defaultvalue is 300 seconds

sync_stat_file_interval=300

# storagestat文件同步到磁盘的时间间隔,单位为秒。

# 注:如果stat文件内容没有变化,不会进行同步

 

# threadstack size, should >= 512KB

# defaultvalue is 512KB

thread_stack_size=512KB

# 线程栈的大小。Fastdfs server端采用了线程方式。

# 对于V1.xstorage server线程栈不应小于512KB;对于V2.0,线程栈大于等于128KB即可。

# 线程栈越大,一个线程占用的系统资源就越多。

# 对于V1.x,如果要启动更多的线程(max_connections),可以适当降低本参数值。

 

# thepriority as a source server for uploading file.

# thelower this value, the higher its uploading priority.

# defaultvalue is 10

upload_priority=10

# storage server作为源服务器,上传文件的优先级,可以为负数。值越小,优先级越高。这里就和 tracker.conf store_server= 2时的配置相对应了

 

# ifcheck file duplicate, when set to true, use FastDHT to store file indexes

# 1 oryes: need check

# 0 orno: do not check

# defaultvalue is 0

check_file_duplicate=0

# 是否检测上传文件已经存在。如果已经存在,则不存在文件内容,建立一个符号链接以节省磁盘空间。

# 这个应用要配合FastDHT 使用,所以打开前要先安装FastDHT

# 1yes 是检测,0no 是不检测

 

#namespace for storing file indexes (key-value pairs)

# thisitem must be set when check_file_duplicate is true / on

key_namespace=Fastdfs

# 当上个参数设定为1 yes (true/on也是可以的) FastDHT中的命名空间。

 

# setkeep_alive to 1 to enable persistent connection with FastDHT servers

# defaultvalue is 0 (short connection)

keep_alive=0

# FastDHT servers 的连接方式 (是否为持久连接) ,默认是0(短连接方式)。可以考虑使用长连接,这要看FastDHT server的连接数是否够用。

 

# 下面是关于FastDHT servers 的设定需要对FastDHT servers 有所了解,这里只说字面意思了

# you canuse "#include filename" (not include double quotes) directive to

# loadFastDHT server list, when the filename is a relative path such as

# purefilename, the base path is the base path of current/this config file.

# mustset FastDHT server list when check_file_duplicate is true / on

# pleasesee INSTALL of FastDHT for detail

##include/home/yuqing/fastdht/conf/fdht_servers.conf

# 可以通过 #include filename 方式来加载 FastDHT servers 的配置,装上FastDHT就知道该如何配置啦。

# 同样要求 check_file_duplicate=1 时才有用,不然系统会忽略

#fdht_servers.conf 记载的是 FastDHT servers 列表

 

下面是http的配置了。如果系统较大,这个服务有可能支持不了,可以自行换一个webserver,我喜欢lighttpd,当然ng也很好了。具体不说明了。相应这一块的说明大家都懂,不明白见上文。

#HTTPsettings

http.disabled=false

 

# theport of the web server on this storage server

http.server_port=8888

 

http.trunk_size=256KB

#http.trunk_size表示读取文件内容的buffer大小(一次读取的文件内容大小),也就是回复给HTTP client的块大小。

 

 

# use theip address of this storage server if domain_name is empty,

# elsethis domain name will ocur in the url redirected by the tracker server

http.domain_name=

# storageserverweb server域名,通常仅针对单独部署的web server。这样URL中就可以通过域名方式来访问storage server上的文件了,

# 这个参数为空就是IP地址的方式。

 

#use"#include" directive to include HTTP other settiongs

##includehttp.conf