fastdfs配置文件说明

发布时间 2023-06-18 11:14:19作者: kht

参考网址

一、tracker.conf

# 配置tracker.conf 文件是否生效 false生效 true屏蔽
disabled = false

# 程序的监听地址,如果不设定则监听所有地址(0.0.0.0)
bind_addr =

# tracker监听的端口
port = 22122

# 连接超时时间(秒)。
# 默认值为30。
# 注意:在内网(LAN)中,2秒就足够了。
connect_timeout = 5

# 发送和接收的网络超时时间(秒)。
# 默认值为30
# tracker server的网络超时,单位为秒。发送或接收数据时,如果在超时时间后还不能发送
# 或接收数据,则本次网络通信失败。 
network_timeout = 60

# ------------------------------------------------------
# base_path 目录地址(根目录必须存在,子目录会自动创建)
# 附目录说明: 
#   tracker server目录及文件结构:
#   ${base_path}
#     |__data
#     |     |__storage_groups.dat:存储分组信息
#     |     |__storage_servers.dat:存储服务器列表
#     |__logs
#           |__trackerd.log:tracker server日志文件
# 数据文件storage_groups.dat和storage_servers.dat中的记录之间以换行符(\n)分隔,字段之间以西文逗号(,)分隔。
# storage_groups.dat中的字段依次为:
#   1. group_name:组名
#   2. storage_port:storage server端口号
# 
# storage_servers.dat中记录storage server相关信息,字段依次为:
#   1. group_name:所属组名
#   2. ip_addr:ip地址
#   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的同步)
base_path = /home/yuqing/fastdfs

# 此服务器支持的最大并发连接数。
# 默认值为256
max_connections = 1024

# 接受线程数。
# 默认值为1,推荐使用。
# 从V4.07开始
# 该参数决定接收客户端连接的线程数,默认值为1,适当放大该参数可改善Storage处理连接的能力,改
# 成2[线上环境cpu为32核心可支持足够多的线程数]。
accept_threads = 1

# 工作线程数。
# 处理网络IO的工作线程数。
# 默认值为4。
# 从V2.00开始
# 工作线程用来处理网络IO,默认值为4,该参数影响Stroage可以同时处理的连接数
work_threads = 4

# 最小网络缓冲区大小。
# 默认值8KB
# 接收/发送数据的buff大小,必须大于8KB
min_buff_size = 8KB

# 最大网络缓冲区大小。
# 默认值128KB
# 接收/发送数据的buff大小必须小于128KB
max_buff_size = 128KB

# 在存储文件时选择group的策略。
# 0:轮询。
# 1:指定组。
# 2:负载均衡,选择上传文件的最大可用空间组
store_lookup = 2

# 上传文件到哪组。
# 当 store_lookup设置为1时,必须将 store_group设置为指定上传的组名
store_group = group2

# 上传文件到哪台存储服务器。
# 0:循环(默认)。
# 1:第一台按IP地址排序的服务器。
# 2:根据优先级排序,第一个(最小)。
# 注意:如果 use_trunk_file设置为 true,则必须将 set store_server设置为1或2
store_server = 0


# 选择文件上传到storage中的哪个(目录/挂载点),storage可以有多个存放文件的base
# path 0:轮训策略 2:负载均衡,选择空闲空间最大的
store_path = 0

# 选择那个storage作为主下载服务器,
# 0:轮训策略 1:主上传storage作为主下载服务器
download_server = 0

# 系统预留空间,当一个group中的任何storage的剩余空间小于定义的值,整个group就不能上传文件了
reserved_storage_space = 20%

# 设置日志级别
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level = info


# 进程以那个用户/用户组运行,不指定默认是当前用户
run_by_group=
run_by_user =

# 允许那些机器连接tracker默认是所有机器
allow_hosts = *

# 定时将日志缓冲区同步到磁盘。
# 默认值为10秒
sync_log_buff_interval = 1

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

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

# 存储服务器IP地址更改时自动调整。
# 默认值为true
# storage的ip改变后服务端是否自动调整,storage进程重启时才自动调整
storage_ip_changed_auto_adjust = true

# 存储同步文件最大延迟秒数。
# 默认值为86400秒(一天)。
# 从V2.00开始
storage_sync_file_max_delay = 86400

# 文件同步最大存储时间。
# 默认值为300秒。
# 从V2.00开始
# 就是存储服务器同步一个文件需要消耗的最大时间,单位为300s,即5分钟。
storage_sync_file_max_time = 300

# 是否使用小文件合并存储特性 [false代表关闭]
use_trunk_file = false 

# 最小插槽大小,应<=4KB。
# 默认值为256字节。
# 从V3.00开始
# trunk file分配的最小字节数。比如文件只有16个字节,系统也会分配 slot_min_size个字节。
slot_min_size = 256

# 最大插槽大小,应>插槽最小大小。
# 当上传文件大小<=此值时,将上传文件存储到主干文件。
# 默认值为16MB。
# 从V3.00开始
# 只有文件大小<=这个参数值的文件,才会合并存储。
# 如果一个文件的大小大于这个参数值,将直接保存到一个文件中(即不采用合并存储方式)
slot_max_size = 1MB

# 对齐大小越大,磁盘碎片的可能性越小,但浪费的空间也更多。
trunk_alloc_alignment_size = 256

# 是否合并中继文件的连续可用空间
# since V6.05
trunk_free_space_merge = true

# files 删除/回收未使用的中继文件
# since V6.05
delete_unused_trunk_files = false

# trunk file 大小
# since V3.00
trunk_file_size = 64MB

# 是否提前创建 trunk file
# since V3.06
trunk_create_file_advance = false

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

# 创建 trunk file 时间间隔, 86400 即隔一天
trunk_create_file_interval = 86400

# 提前创建trunk file时,需要达到的空闲trunk大小
# 比如本参数为20G,而当前空闲trunk为4GB,那么只需要创建16GB的trunk file即可。
trunk_create_file_space_threshold = 20G

# trunk初始化时,是否检查可用空间是否被占用
trunk_init_check_occupying = false

# 是否无条件从trunk binlog中加载trunk可用空间信息
# FastDFS缺省是从快照文件storage_trunk.dat中加载trunk可用空间,
# 该文件的第一行记录的是trunk binlog的offset,然后从binlog的offset开始加载
trunk_init_reload_from_binlog = false

# 压缩 trunk binlog 文件的最小间隔
trunk_compress_binlog_min_interval = 86400

# 压缩 trunk binlog 文件的间隔时间 (默认1天)
trunk_compress_binlog_interval = 86400

# 压缩 trunk binlog 文件的时间点
trunk_compress_binlog_time_base = 03:00

# trunk binlog 文件最大备份数
trunk_binlog_max_backups = 7

# 是否使用server ID作为storage server标识
use_storage_id = false

# 指定存储ID文件名,可以使用相对路径或绝对路径。
# 只有当use_storage_id设置为true时,该参数才有效。
storage_ids_filename = storage_ids.conf

# 文件名中存储服务器的#id类型,值为:
## IP:存储服务器的IP地址。
## id:存储服务器的服务器id。
# 仅当use_storage_id设置为true时,此参数才有效。
# 默认值为ip。
# since V4.03
id_type_in_filename = id

# 存储从文件是否使用符号链接
store_slave_file_use_link = false

# 是否定期轮转error log,目前仅支持一天轮转一次
rotate_error_log = false

# error log定期轮转的时间点,只有当rotate_error_log设置为true时有效
error_log_rotate_time = 00:00

# 是否压缩旧的错误日志
compress_old_error_log = false

# 压缩几天前的错误日志  (compress_old_error_log = false本参数不生效)
compress_error_log_days_before = 7

# 当日志文件超过此大小时轮换错误日志。
# 设置为0表示不按文件大小轮转,否则当error log达到该大小,就会轮转到新文件中
rotate_error_log_size = 0

# 日志文件保留几天(0代表永久保留)
log_file_keep_days = 0

# 是否使用连接池
use_connection_pool = true

# 连接空闲时长,超过则连接被关闭 (单位秒)
connection_pool_max_idle_time = 3600

# 此跟踪器服务器上的HTTP端口
http.server_port = 8080

# 检查存储HTTP服务器活动间隔秒数。
# <=0表示从不检查。
# 默认值为30
http.check_alive_interval = 30

# 检查存储HTTP服务器活动类型,值为:
# TCP:仅使用HTTP端口连接到存储服务器。
# 不请求,不获取响应。
# http:存储检查活动url必须返回http状态200。
# 默认值为tcp
http.check_alive_type = tcp

# 检查存储HTTP服务器活动uri/url。
# 注意:Storage Embedded HTTP服务器支持uri:/status.html
http.check_alive_uri = /status.html

二、storage.conf

在这里插入代码片# 配置storage.conf 文件是否生效 false生效 true屏蔽
disabled = false

# 该存储服务器所属的组名。
# 注释或删除此项目以从跟踪器服务器获取,
# 在这种情况下,tracker.conf中的use_storage_id必须设置为true。
# 和storage_ids.conf必须正确配置。
group_name = group1

# 程序的监听地址,如果不设定则监听所有地址(0.0.0.0)
bind_addr =

# bind_addr通常是针对server的。当指定bind_addr时,本参数才有效。
# 本storage server作为client连接其他服务器(如tracker server、
# 其他storage server),是否绑定bind_addr。
client_bind = true

# storage 默认端口
port = 23000

# 连接超时时间(秒)。
# 默认值为30。
# 注意:在内网(LAN)中,2秒就足够了。
connect_timeout = 5

# 发送和接收的网络超时时间(秒)。
# 默认值为30
network_timeout = 60

# 心跳间隔(秒)。
# 存储服务器定期向Tracker服务器发送心跳。
# 默认值为30
heart_beat_interval = 30

# 磁盘使用情况报告间隔(秒)。
# 存储服务器定期向Tracker服务器发送磁盘使用情况报告。
# 默认值为300
stat_report_interval = 60

# 数据存储目录地址
base_path = /home/yuqing/fastdfs

# 最大连接数
max_connections = 1024

# 设置队列结点的buffer大小。工作队列消耗的内存大小 = buff_size * max_connections
# 设置得大一些,系统整体性能会有所提升。
buff_size = 256KB

# 接收数据的线程数
accept_threads = 1

# 工作线程数,一般为cpu个数,当然CPU核数太多的话可以稍小一点。如我们是12CPU,这里设置为8
work_threads = 4

# 磁盘IO读写是否分离。磁盘读/写分离为false则为混合读写,
# 如果为true则为分离读写的。默认值为V2.00以后为true。
disk_rw_separated = true

# 针对单个存储路径的读线程数,默认值为1。
# 读写分离时:
# 系统中的读线程数 = disk_reader_threads * store_path_count
# 读写混合时:
# 系统中的读写线程数 = (disk_reader_threads + disk_writer_threads) * store_path_count
disk_reader_threads = 1

# 针对单个存储路径的写线程数,默认值为1。
# 读写分离时:
# 系统中的写线程数 = disk_writer_threads * store_path_count
# 读写混合时:
# 系统中的读写线程数 = (disk_reader_threads + disk_writer_threads) * store_path_count
disk_writer_threads = 1

# 同步文件时,如果从binlog中没有读到要同步的文件,休眠N毫秒后重新读取。0表示不休眠,立即再次尝试读取。
# 出于CPU消耗考虑,不建议设置为0。如何希望同步尽可能快一些,可以将本参数设置得小一些,比如设置为10ms
sync_wait_msec = 50

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

# 下面二个一起解释。允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定
sync_start_time = 00:00
sync_end_time = 23:59

# 同步 N 个文件后就写入标记文件
write_mark_file_freq = 500

# 硬盘恢复线程数
disk_recovery_threads = 3

# storage在存储文件时支持多路径,默认只设置一个
store_path_count = 1

# store_path(0~⚮),根据0配置存储文件的存储路径。
# 如果store_path0不存在,则取值为base_path(不推荐)。
# 路径必须存在
store_path0 = /home/yuqing/fastdfs
#store_path1 = /home/yuqing/fastdfs2

# subdir_count  * subdir_count个目录会在store_path下创建,采用两级存储
subdir_count_per_path = 256

# 设置tracker_server 服务器地址  多个代表多个Tracker集群
tracker_server = 192.168.209.121:22122
tracker_server = 192.168.209.122:22122

# 日志级别
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level = info

# 进程以那个用户/用户组运行,不指定默认是当前用户
run_by_group =
run_by_user =

# 允许那些机器连接tracker默认是所有机器
allow_hosts = *

# 文件分发到数据路径的方式。
# 0: 轮流存放,在一个目录下存储设置的文件数后
#(参数file_distribute_rotate_count中设置文件数),使用下一个目录进行存储。
# 1: 随机存储,根据文件名对应的hash code来分散存储。
file_distribute_path_mode = 0

# 当上面的参数file_distribute_path_mode配置为0(轮流存放方式)时,本参数有效。
# 当一个目录下的文件存放的文件数达到本参数值时,后续上传的文件存储到下一个目录中。
file_distribute_rotate_count = 100

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

# 同步或刷新日志信息到硬盘的时间间隔,单位为秒
# 注意:storage server 的日志信息不是时时写硬盘的,而是先写内存。
sync_log_buff_interval = 1

# 同步binglog(更新操作日志)到硬盘的时间间隔,单位为秒
# 本参数会影响新上传文件同步延迟时间
sync_binlog_buff_interval = 1

# 把storage的stat文件同步到磁盘的时间间隔,单位为秒。
# 注:如果stat文件内容没有变化,不会进行同步
sync_stat_file_interval = 300

# 线程栈大小,线程栈越大,一个线程占用的系统资源就越多。
thread_stack_size = 512KB

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

# 网卡别名,用ifconfig -a可以看到很多本机的网卡别名,类似eth0,eth0:0等等。
# 多个网卡别名使用逗号分割,默认为空,让系统自动选择。
if_alias_prefix =

# 是否检测上传文件已经存在。如果已经存在,则不存在文件内容,建立一个符号链接以节省磁盘空间。 
# 这个应用要配合FastDHT 使用,所以打开前要先安装FastDHT 
# 1或yes 是检测,0或no 是不检测
check_file_duplicate = 0

# 文件去重时,文件内容的签名方式:
## hash:4个hash code
## md5:MD5
file_signature_method = hash

#当check_file_duplicate设置为1时,此值必须设置
key_namespace = FastDFS

# FastDHT建立连接的方式 0:短连接 1:长连接
keep_alive = 0

# 是否将文件操作记录到access log
use_access_log = false

# 是否定期轮转access log,目前仅支持一天轮转一次
rotate_access_log = false

# access log定期轮转的时间点,只有当rotate_access_log设置为true时有效
access_log_rotate_time = 00:00

# 是否压缩旧的访问日志
compress_old_access_log = false

# 压缩几天前的访问日期
compress_access_log_days_before = 7

# 是否每天轮转错误日志
rotate_error_log = false

# 错误日志轮转时间
error_log_rotate_time = 00:00

# 压缩旧的错误日志
compress_old_error_log = false

# 压给它几天前的错误日志
compress_error_log_days_before = 7

# access log按文件大小轮转
# 设置为0表示不按文件大小轮转,否则当access log达到该大小,就会轮转到新文件中
rotate_access_log_size = 0

# error log按文件大小轮转
# 设置为0表示不按文件大小轮转,否则当error log达到该大小,就会轮转到新文件中
rotate_error_log_size = 0

# 保留日志文件的日期0表示不删除旧的日志文件
log_file_keep_days = 0

# 文件同步的时候,是否忽略无效的binlog记录
file_sync_skip_invalid_record = false

# 是否使用连接池
use_connection_pool = true

# 连接的空闲时间超过这个时间将被关闭,单位:秒
connection_pool_max_idle_time = 3600

# 是否使用gzip压缩二进制日志文件
compress_binlog = true

# 压给它二进制日志时间点
compress_binlog_time = 01:30

# 是否检查存储路径的标记以防止混淆,建议开启,如果两个服务使用
# 一个相同的存储路径,此参数要设置为 false
check_store_path_mark = true

# 服务域名, 如果为空则表示使用 IP 地址
http.domain_name =

# http 端口
http.server_port = 8888

三、client.conf

# 连接的超时时间
connect_timeout = 5

# 网络超时(秒),默认值 60s
network_timeout = 60

# 存储日志文件的基本路径
base_path = /home/yuqing/fastdfs

# tracker server的列表 多个tracker就设置多个
tracker_server = 192.168.0.196:22122
tracker_server = 192.168.0.197:22122

# 日志级别
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level = info

# 是否使用连接池
use_connection_pool = false

# 连接的空闲时间超过这个时间将被关闭,单位:秒
connection_pool_max_idle_time = 3600

# 是否加载来自跟踪服务器的FastDFS参数,默认值为false。这里可以设置为true。
load_fdfs_parameters_from_tracker = false

# 是否使用storage id替换ip作为storage server标识,默认为false
use_storage_id = false

# 在文件中设置组名、server ID和对应的IP地址
storage_ids_filename = storage_ids.conf

# 端口
http.tracker_server_port = 80

四、mod_fastdfs配置文件说明

# 连接超时时间(秒)。
# 默认值为30s
connect_timeout=2

# 网络接收和发送超时(秒)。
# 默认值为30s
network_timeout=30

# 日志存储路径
base_path=/tmp

# 从跟踪器服务器加载FastDFS参数。
# 从V1.12开始。
# 默认值为False
load_fdfs_parameters_from_tracker=true

# 存储同步文件最大延迟秒数。
# 与tracker.conf相同。
# 仅当load_fdfs_Parameters_from_tracker为FALSE时有效。
# 从V1.12开始。
# 默认值为86400秒(一天)
storage_sync_file_max_delay = 86400

# 如果使用存储ID而不是IP地址。
# 与tracker.conf相同。
# 仅当load_fdfs_Parameters_from_tracker为FALSE时有效。
# 默认值为False。
# 从V1.13开始
use_storage_id = false

# 指定存储ID文件名,可以使用相对路径或绝对路径。
# 与tracker.conf相同。
# 仅当load_fdfs_Parameters_from_tracker为FALSE时有效。
# 从V1.13开始
storage_ids_filename = storage_ids.conf

# tracker 服务列表 
tracker_server=tracker:22122

# storage server端口号
storage_server_port=23000

# 本地存储服务器的组名
group_name=group1

# 文件url中是否有group名 
url_have_group_name = false

# 存储路径个数,需要和store_path个数匹配
store_path_count=1

# store_path#,以0为基数,如果store_path0不存在,则其值为base_path。
# 路径必须存在。
# 必须与storage.conf相同
store_path0=/home/yuqing/fastdfs
#store_path1=/home/yuqing/fastdfs1

# 日志级别:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info

# 设置日志文件名,如/usr/local/apache2/logs/mod_fast dfs.log。
# Empty表示输出到stderr(apache和nginx error_log文件)
log_filename=

# 本地文件系统中不存在文件时的响应方式。
## proxy:从其他存储服务器获取内容,然后发送给客户端。
## redirect:重定向到原存储服务器(HTTP Header为Location)
response_mode=proxy

# 网卡别名前缀,如Linux中的eth,可以通过ifconfig-a查看。
# 多个别名以逗号分隔。空值表示按操作系统类型自动设置。
# 该参数用于获取本地主机的所有IP地址。
# 默认值为空
if_alias_prefix=

# IF支持FLV。
# 默认值为False。
# 从v1.15开始
flv_support = true

# FLV文件扩展名。
# 默认值为flv。
# 从v1.15开始
flv_extension = flv

# 设置群数。
# 设置为无零以支持此存储服务器上的多组。
# 仅针对单个组设置为0。
# 将设置部分分组为[group1]、[group2]、...、[groupn]。
# 默认值为0。
# 从v1.14开始
group_count = 0

# group settings for group #1
# since v1.14
# when support multi-group on this storage server, uncomment following section
[group1]
# 组名称#
group_name=group1
# 组端口
storage_server_port=23000
# 存储路径个数,需要和store_path个数匹配
store_path_count=2
store_path0=/home/yuqing/fastdfs
store_path1=/home/yuqing/fastdfs1

# group settings for group #2
# since v1.14
# when support multi-group, uncomment following section as neccessary
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/yuqing/fastdfs