一、tracker.conf
# 這個(gè)配置文件是否無(wú)效,false表示有效
# is this config file disabled
# false for enabled
# true for disabled
disabled=false
# 是否綁定IP
# bind_addr= 后面為綁定的IP地址 (常用于服務(wù)器有多個(gè)IP但只希望一個(gè)IP提供服務(wù))。如果不填則表示所有的(一般不填就OK)
# bind an address of this host
# empty for bind all addresses of this host
bind_addr=
# 提供服務(wù)的端口
# the tracker server port
port=22122
# 連接超時(shí)時(shí)間,針對(duì)socket套接字函數(shù)connect
# connect timeout in seconds
# default value is 30s
connect_timeout=30
# tracker server的網(wǎng)絡(luò)超時(shí),單位為秒。發(fā)送或接收數(shù)據(jù)時(shí),如果在超時(shí)時(shí)間后還不能發(fā)送或接收數(shù)據(jù),則本次網(wǎng)絡(luò)通信失敗
# network timeout in seconds
# default value is 30s
network_timeout=60
# the base path to store data and log files
base_path=/home/yuqing/fastdfs
# base_path 目錄地址(根目錄必須存在,子目錄會(huì)自動(dòng)創(chuàng)建)
# 附目錄說(shuō)明:
#? tracker server目錄及文件結(jié)構(gòu):
#? ${base_path}
#? ? |__data
#? ? |? ? |__storage_groups.dat:存儲(chǔ)分組信息
#? ? |? ? |__storage_servers.dat:存儲(chǔ)服務(wù)器列表
#? ? |__logs
#? ? ? ? ? |__trackerd.log:tracker server日志文件
#數(shù)據(jù)文件storage_groups.dat和storage_servers.dat中的記錄之間以換行符(\n)分隔,字段之間以西文逗號(hào)(,)分隔。
#storage_groups.dat中的字段依次為:
#? 1. group_name:組名
#? 2. storage_port:storage server端口號(hào)
#storage_servers.dat中記錄storage server相關(guān)信息,字段依次為:
#? 1. group_name:所屬組名
#? 2. ip_addr:ip地址
#? 3. status:狀態(tài)
#? 4. sync_src_ip_addr:向該storage server同步已有數(shù)據(jù)文件的源服務(wù)器
#? 5. sync_until_timestamp:同步已有數(shù)據(jù)文件的截至?xí)r間(UNIX時(shí)間戳)
#? 6. stat.total_upload_count:上傳文件次數(shù)
#? 7. stat.success_upload_count:成功上傳文件次數(shù)
#? 8. stat.total_set_meta_count:更改meta data次數(shù)
#? 9. stat.success_set_meta_count:成功更改meta data次數(shù)
#? 10. stat.total_delete_count:刪除文件次數(shù)
#? 11. stat.success_delete_count:成功刪除文件次數(shù)
#? 12. stat.total_download_count:下載文件次數(shù)
#? 13. stat.success_download_count:成功下載文件次數(shù)
#? 14. stat.total_get_meta_count:獲取meta data次數(shù)
#? 15. stat.success_get_meta_count:成功獲取meta data次數(shù)
#? 16. stat.last_source_update:最近一次源頭更新時(shí)間(更新操作來(lái)自客戶端)
#? 17. stat.last_sync_update:最近一次同步更新時(shí)間(更新操作來(lái)自其他storage server的同步)
# 系統(tǒng)提供服務(wù)時(shí)的最大連接數(shù)。對(duì)于V1.x,因一個(gè)連接由一個(gè)線程服務(wù),也就是工作線程數(shù)。
# 對(duì)于V2.x,最大連接數(shù)和工作線程數(shù)沒(méi)有任何關(guān)系
# max concurrent connections this server supported
max_connections=256
# work thread count, should <= max_connections
# default value is 4
# since V2.00
# V2.0引入的這個(gè)參數(shù),工作線程數(shù),通常設(shè)置為CPU數(shù)
work_threads=4
# 上傳組(卷) 的方式 0:輪詢方式 1: 指定組 2: 平衡負(fù)載(選擇最大剩余空間的組(卷)上傳)
# 這里如果在應(yīng)用層指定了上傳到一個(gè)固定組,那么這個(gè)參數(shù)被繞過(guò)
# the method of selecting group to upload files
# 0: round robin
# 1: specify group
# 2: load balance, select the max free space group to upload file
store_lookup=2
# 當(dāng)上一個(gè)參數(shù)設(shè)定為1 時(shí) (store_lookup=1,即指定組名時(shí)),必須設(shè)置本參數(shù)為系統(tǒng)中存在的一個(gè)組名。如果選擇其他的上傳方式,這個(gè)參數(shù)就沒(méi)有效了
# which group to upload file
# when store_lookup set to 1, must set store_group to the group name
store_group=group2
# 選擇哪個(gè)storage server 進(jìn)行上傳操作(一個(gè)文件被上傳后,這個(gè)storage server就相當(dāng)于這個(gè)文件的storage server源,會(huì)對(duì)同組的storage server推送這個(gè)文件達(dá)到同步效果)
# 0: 輪詢方式
# 1: 根據(jù)ip 地址進(jìn)行排序選擇第一個(gè)服務(wù)器(IP地址最小者)
# 2: 根據(jù)優(yōu)先級(jí)進(jìn)行排序(上傳優(yōu)先級(jí)由storage server來(lái)設(shè)置,參數(shù)名為upload_priority)
# which storage server to upload file
# 0: round robin (default)
# 1: the first server order by ip address
# 2: the first server order by priority (the minimal)
store_server=0
# 選擇storage server 中的哪個(gè)目錄進(jìn)行上傳。storage server可以有多個(gè)存放文件的base path(可以理解為多個(gè)磁盤)。
# 0: 輪流方式,多個(gè)目錄依次存放文件
# 2: 選擇剩余空間最大的目錄存放文件(注意:剩余磁盤空間是動(dòng)態(tài)的,因此存儲(chǔ)到的目錄或磁盤可能也是變化的)
# which path(means disk or mount point) of the storage server to upload file
# 0: round robin
# 2: load balance, select the max free space path to upload file
store_path=0
# 選擇哪個(gè) storage server 作為下載服務(wù)器
# 0: 輪詢方式,可以下載當(dāng)前文件的任一storage server
# 1: 哪個(gè)為源storage server 就用哪一個(gè) (前面說(shuō)過(guò)了這個(gè)storage server源 是怎樣產(chǎn)生的) 就是之前上傳到哪個(gè)storage server服務(wù)器就是哪個(gè)了
# which storage server to download file
# 0: round robin (default)
# 1: the source storage server which the current file uploaded to
download_server=0
# storage server 上保留的空間,保證系統(tǒng)或其他應(yīng)用需求空間。可以用絕對(duì)值或者百分比(V4開始支持百分比方式)。
#(指出 如果同組的服務(wù)器的硬盤大小一樣,以最小的為準(zhǔn),也就是只要同組中有一臺(tái)服務(wù)器達(dá)到這個(gè)標(biāo)準(zhǔn)了,這個(gè)標(biāo)準(zhǔn)就生效,原因就是因?yàn)樗麄冞M(jìn)行備份)
# reserved storage space for system or other applications.
# if the free(available) space of any stoarge server in
# a group <= reserved_storage_space,
# no file can be uploaded to this group.
# bytes unit can be one of follows:
### G or g for gigabyte(GB)
### M or m for megabyte(MB)
### K or k for kilobyte(KB)
### no unit for byte(B)
### XX.XX% as ratio such as reserved_storage_space = 10%
reserved_storage_space = 10%
# 選擇日志級(jí)別
#standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info
# 操作系統(tǒng)運(yùn)行FastDFS的用戶組 (不填 就是當(dāng)前用戶組,哪個(gè)啟動(dòng)進(jìn)程就是哪個(gè))
#unix group name to run this program,
#not set (empty) means run by the group of current user
run_by_group=
# 操作系統(tǒng)運(yùn)行FastDFS的用戶 (不填 就是當(dāng)前用戶,哪個(gè)啟動(dòng)進(jìn)程就是哪個(gè))
#unix username to run this program,
#not set (empty) means run by current user
run_by_user=
# 可以連接到此 tracker server 的ip范圍(對(duì)所有類型的連接都有影響,包括客戶端,storage server)
# 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=*
# 同步或刷新日志信息到硬盤的時(shí)間間隔,單位為秒
# 注意:tracker server 的日志不是時(shí)時(shí)寫硬盤的,而是先寫內(nèi)存
# sync log buff to disk every interval seconds
# default value is 10 seconds
sync_log_buff_interval = 10
# 檢測(cè) storage server 存活的時(shí)間隔,單位為秒。
# storage server定期向tracker server 發(fā)心跳,如果tracker server在一個(gè)check_active_interval內(nèi)還沒(méi)有收到storage server的一次心跳,那邊將認(rèn)為該storage server已經(jīng)下線。所以本參數(shù)值必須大于storage server配置的心跳時(shí)間間隔。通常配置為storage server心跳時(shí)間間隔的2倍或3倍
# check storage server alive interval seconds
check_active_interval = 120
# 線程棧的大小。FastDFS server端采用了線程方式。tracker server線程棧不應(yīng)小于64KB
# 線程棧越大,一個(gè)線程占用的系統(tǒng)資源就越多。如果要啟動(dòng)更多的線程(V1.x對(duì)應(yīng)的參數(shù)為max_connections,
V2.0為work_threads),可以適當(dāng)降低本參數(shù)值
# thread stack size, should >= 64KB
# default value is 64KB
thread_stack_size = 64KB
# 這個(gè)參數(shù)控制當(dāng)storage server IP地址改變時(shí),集群是否自動(dòng)調(diào)整。注:只有在storage server進(jìn)程重啟時(shí)才完成自動(dòng)調(diào)整
# auto adjust when the ip address of the storage server changed
# default value is true
storage_ip_changed_auto_adjust = true
# V2.0引入的參數(shù)。存儲(chǔ)服務(wù)器之間同步文件的最大延遲時(shí)間,缺省為1天。根據(jù)實(shí)際情況進(jìn)行調(diào)整
# 注:本參數(shù)并不影響文件同步過(guò)程。本參數(shù)僅在下載文件時(shí),判斷文件是否已經(jīng)被同步完成的一個(gè)閥值(經(jīng)驗(yàn)值)
# storage sync file max delay seconds
# default value is 86400 seconds (one day)
# since V2.00
storage_sync_file_max_delay = 86400
# V2.0引入的參數(shù)。存儲(chǔ)服務(wù)器同步一個(gè)文件需要消耗的最大時(shí)間,缺省為300s,即5分鐘。
# 注:本參數(shù)并不影響文件同步過(guò)程。本參數(shù)僅在下載文件時(shí),作為判斷當(dāng)前文件是否被同步完成的一個(gè)閥值(經(jīng)驗(yàn)值)
# the max time of storage sync a file
# default value is 300 seconds
# since V2.00
storage_sync_file_max_time = 300
# V3.0引入的參數(shù)。是否使用小文件合并存儲(chǔ)特性,缺省是關(guān)閉的
# if use a trunk file to store several small files
# default value is false
# since V3.00
use_trunk_file = false
# V3.0引入的參數(shù)。
# trunk file分配的最小字節(jié)數(shù)。比如文件只有16個(gè)字節(jié),系統(tǒng)也會(huì)分配slot_min_size個(gè)字節(jié)
# the min slot size, should <= 4KB
# default value is 256 bytes
# since V3.00
slot_min_size = 256
# V3.0引入的參數(shù)。
# 只有文件大小<=這個(gè)參數(shù)值的文件,才會(huì)合并存儲(chǔ)。如果一個(gè)文件的大小大于這個(gè)參數(shù)值,將直接保存到一個(gè)文件中(即不采用合并存儲(chǔ)方式)。
# the max slot size, should > slot_min_size
# store the upload file to trunk file when it's size <=? this value
# default value is 16MB
# since V3.00
slot_max_size = 16MB
# V3.0引入的參數(shù)。
# 合并存儲(chǔ)的trunk file大小,至少4MB,缺省值是64MB。不建議設(shè)置得過(guò)大
# the trunk file size, should >= 4MB
# default value is 64MB
# since V3.00
trunk_file_size = 64MB
# 是否提前創(chuàng)建trunk file。只有當(dāng)這個(gè)參數(shù)為true,下面3個(gè)以trunk_create_file_打頭的參數(shù)才有效
# if create trunk file advancely
# default value is false
# since V3.06
trunk_create_file_advance = false
# 提前創(chuàng)建trunk file的起始時(shí)間點(diǎn)(基準(zhǔn)時(shí)間),02:00表示第一次創(chuàng)建的時(shí)間點(diǎn)是凌晨2點(diǎn)
# the time base to create trunk file
# the time format: HH:MM
# default value is 02:00
# since V3.06
trunk_create_file_time_base = 02:00
# 創(chuàng)建trunk file的時(shí)間間隔,單位為秒。如果每天只提前創(chuàng)建一次,則設(shè)置為86400
# the interval of create trunk file, unit: second
# default value is 38400 (one day)
# since V3.06
trunk_create_file_interval = 86400
# 提前創(chuàng)建trunk file時(shí),需要達(dá)到的空閑trunk大小
# 比如本參數(shù)為20G,而當(dāng)前空閑trunk為4GB,那么只需要?jiǎng)?chuàng)建16GB的trunk file即可
# the threshold to create trunk file
# when the free trunk file size less than the threshold, will create
# the trunk files
# default value is 0
# since V3.06
trunk_create_file_space_threshold = 20G
# trunk初始化時(shí),是否檢查可用空間是否被占用
# if check trunk space occupying when loading trunk free spaces
# the occupied spaces will be ignored
# default value is false
# since V3.09
# NOTICE: set this parameter to true will slow the loading of trunk spaces
# when startup. you should set this parameter to true when neccessary.
trunk_init_check_occupying = false
# 是否無(wú)條件從trunk binlog中加載trunk可用空間信息
# FastDFS缺省是從快照文件storage_trunk.dat中加載trunk可用空間,
# 該文件的第一行記錄的是trunk binlog的offset,然后從binlog的offset開始加載
# if ignore storage_trunk.dat, reload from trunk binlog
# default value is false
# since V3.10
# set to true once for version upgrade when your version less than V3.10
trunk_init_reload_from_binlog = false
# 是否使用server ID作為storage server標(biāo)識(shí)
# if use storage ID instead of IP address
# default value is false
# since V4.00
use_storage_id = false
# use_storage_id 設(shè)置為true,才需要設(shè)置本參數(shù)
# 在文件中設(shè)置組名、server ID和對(duì)應(yīng)的IP地址,參見源碼目錄下的配置示例:conf/storage_ids.conf
# specify storage ids filename, can use relative or absolute path
# since V4.00
storage_ids_filename = storage_ids.conf
#文件名中的id類型,有ip和id兩種,只有當(dāng)use_storage_id設(shè)置為true時(shí)該參數(shù)才有效
# id type of the storage server in the filename, values are:
## ip: the ip address of the storage server
## id: the server id of the storage server
# this paramter is valid only when use_storage_id set to true
# default value is ip
# since V4.03
id_type_in_filename = ip
# 存儲(chǔ)從文件是否采用symbol link(符號(hào)鏈接)方式
# 如果設(shè)置為true,一個(gè)從文件將占用兩個(gè)文件:原始文件及指向它的符號(hào)鏈接
# if store slave file use symbol link
# default value is false
# since V4.01
store_slave_file_use_link = false
# 是否定期輪轉(zhuǎn)error log,目前僅支持一天輪轉(zhuǎn)一次
# if rotate the error log every day
# default value is false
# since V4.02
rotate_error_log = false
# error log定期輪轉(zhuǎn)的時(shí)間點(diǎn),只有當(dāng)rotate_error_log設(shè)置為true時(shí)有效
# rotate error log time base, time format: Hour:Minute
# Hour from 0 to 23, Minute from 0 to 59
# default value is 00:00
# since V4.02
error_log_rotate_time=00:00
# error log按大小輪轉(zhuǎn)
# 設(shè)置為0表示不按文件大小輪轉(zhuǎn),否則當(dāng)error log達(dá)到該大小,就會(huì)輪轉(zhuǎn)到新文件中
# rotate error log when the log file exceeds this size
# 0 means never rotates log file by log file size
# default value is 0
# since V4.02
rotate_error_log_size = 0
# 是否使用連接池
# if use connection pool
# default value is false
# since V4.05
use_connection_pool = false
# 如果一個(gè)連接的空閑時(shí)間超過(guò)這個(gè)值將會(huì)被自動(dòng)關(guān)閉
# connections whose the idle time exceeds this time will be closed
# unit: second
# default value is 3600
# since V4.05
connection_pool_max_idle_time = 3600
# 用于提供http服務(wù)的端口
# HTTP port on this tracker server
http.server_port=8080
# 檢查http server是否還在工作的時(shí)間間隔,如果該值小于0則永遠(yuǎn)不檢查
# check storage HTTP server alive interval seconds
# <= 0 for never check
# default value is 30
http.check_alive_interval=30
# 檢查http server是否存活的類型,有tcp和http兩種
# tcp方式只有http端口被連接
# http方式檢查必須返回狀態(tài)值200
# check storage HTTP server alive type, values are:
#? tcp : connect to the storge server with HTTP port only,
#? ? ? ? do not request and get response
#? http: storage check alive url must return http status 200
# default value is tcp
http.check_alive_type=tcp
# check storage HTTP server alive uri/url
# NOTE: storage embed HTTP server support uri: /status.html
http.check_alive_uri=/status.html
二、storage.conf
# 這個(gè)配置文件是否無(wú)效,false表示有效
# is this config file disabled
# false for enabled
# true for disabled
disabled=false
# 指定 此 storage server 所在組(卷)
# the name of the group this storage server belongs to
group_name=group1
# 是否綁定IP
# bind_addr= 后面為綁定的IP地址 (常用于服務(wù)器有多個(gè)IP但只希望一個(gè)IP提供服務(wù))。如果不填則表示所有的(一般不填就OK)
# bind an address of this host
# empty for bind all addresses of this host
bind_addr=
# bind_addr通常是針對(duì)server的。當(dāng)指定bind_addr時(shí),本參數(shù)才有效。
# 本storage server作為client連接其他服務(wù)器(如tracker server、其他storage server),是否綁定bind_addr。
# if bind an address of this host when connect to other servers
# (this storage server as a client)
# true for binding the address configed by above parameter: "bind_addr"
# false for binding any address of this host
client_bind=true
# storage server服務(wù)端口
# the storage server port
port=23000
# 連接超時(shí)時(shí)間,針對(duì)socket套接字函數(shù)connect
# connect timeout in seconds
# default value is 30s
connect_timeout=30
# storage server 網(wǎng)絡(luò)超時(shí)時(shí)間,單位為秒。發(fā)送或接收數(shù)據(jù)時(shí),如果在超時(shí)時(shí)間后還不能發(fā)送或接收數(shù)據(jù),則本次網(wǎng)絡(luò)通信失敗。
# network timeout in seconds
# default value is 30s
network_timeout=60
# 心跳間隔時(shí)間,單位為秒 (這里是指主動(dòng)向tracker server 發(fā)送心跳)
# heart beat interval in seconds
heart_beat_interval=30
# storage server向tracker server報(bào)告磁盤剩余空間的時(shí)間間隔,單位為秒
# disk usage report interval in seconds
stat_report_interval=60
# base_path 目錄地址,根目錄必須存在? 子目錄會(huì)自動(dòng)生成 (注 :這里不是上傳的文件存放的地址,之前是的,在某個(gè)版本后更改了)
# the base path to store data and log files
base_path=/home/yuqing/fastdfs
# 系統(tǒng)提供服務(wù)時(shí)的最大連接數(shù)
# max concurrent connections the server supported
# default value is 256
# more max_connections means more memory will be used
max_connections=256
# V2.0引入本參數(shù)。設(shè)置隊(duì)列結(jié)點(diǎn)的buffer大小。工作隊(duì)列消耗的內(nèi)存大小 = buff_size * max_connections
# 設(shè)置得大一些,系統(tǒng)整體性能會(huì)有所提升。
# 消耗的內(nèi)存請(qǐng)不要超過(guò)系統(tǒng)物理內(nèi)存大小。另外,對(duì)于32位系統(tǒng),請(qǐng)注意使用到的內(nèi)存不要超過(guò)3GB
# the buff size to recv / send data
# this parameter must more than 8KB
# default value is 64KB
# since V2.00
buff_size = 256KB
# 工作線程的數(shù)量,工作線程用于處理網(wǎng)絡(luò)IO,應(yīng)當(dāng)小于max_connections的值
# work thread count, should <= max_connections
# work thread deal network io
# default value is 4
# since V2.00
work_threads=4
# V2.0引入本參數(shù)。磁盤IO讀寫是否分離,缺省是分離的
# if disk read / write separated
##? false for mixed read and write
##? true for separated read and write
# default value is true
# since V2.00
disk_rw_separated = true
# V2.0引入本參數(shù)。針對(duì)單個(gè)存儲(chǔ)路徑的讀線程數(shù),缺省值為1。
# 讀寫分離時(shí),系統(tǒng)中的讀線程數(shù) = disk_reader_threads * store_path_count
# 讀寫混合時(shí),系統(tǒng)中的讀寫線程數(shù) = (disk_reader_threads + disk_writer_threads) * store_path_count
# disk reader thread count per store base path
# for mixed read / write, this parameter can be 0
# default value is 1
# since V2.00
disk_reader_threads = 1
# V2.0引入本參數(shù)。針對(duì)單個(gè)存儲(chǔ)路徑的寫線程數(shù),缺省值為1。
# 讀寫分離時(shí),系統(tǒng)中的寫線程數(shù) = disk_writer_threads * store_path_count
# 讀寫混合時(shí),系統(tǒng)中的讀寫線程數(shù) = (disk_reader_threads + disk_writer_threads) * store_path_count
# disk writer thread count per store base path
# for mixed read / write, this parameter can be 0
# default value is 1
# since V2.00
disk_writer_threads = 1
# 同步文件時(shí),如果從binlog中沒(méi)有讀到要同步的文件,休眠N毫秒后重新讀取。0表示不休眠,立即再次嘗試讀取。
# 出于CPU消耗考慮,不建議設(shè)置為0。如何希望同步盡可能快一些,可以將本參數(shù)設(shè)置得小一些,比如設(shè)置為10ms
# when no entry to sync, try read binlog again after X milliseconds
# must > 0, default value is 200ms
sync_wait_msec=50
# 同步上一個(gè)文件后,再同步下一個(gè)文件的時(shí)間間隔,單位為毫秒,0表示不休眠,直接同步下一個(gè)文件。
# after sync a file, usleep milliseconds
# 0 for sync successively (never call usleep)
sync_interval=0
# 下面二個(gè)一起解釋。允許系統(tǒng)同步的時(shí)間段 (默認(rèn)是全天) 。一般用于避免高峰同步產(chǎn)生一些問(wèn)題而設(shè)定,相信sa都會(huì)明白
# storage sync start time of a day, time format: Hour:Minute
# Hour from 0 to 23, Minute from 0 to 59
sync_start_time=00:00
# storage sync end time of a day, time format: Hour:Minute
# Hour from 0 to 23, Minute from 0 to 59
sync_end_time=23:59
# 同步完N個(gè)文件后,把storage的mark文件同步到磁盤
# 注:如果mark文件內(nèi)容沒(méi)有變化,則不會(huì)同步
# write to the mark file after sync N files
# default value is 500
write_mark_file_freq=500
# 存放文件時(shí)storage server支持多個(gè)路徑(例如磁盤)。這里配置存放文件的基路徑數(shù)目,通常只配一個(gè)目錄。
# path(disk or mount point) count, default value is 1
store_path_count=1
# 逐一配置store_path個(gè)路徑,索引號(hào)基于0。注意配置方法后面有0,1,2 ......,需要配置0到store_path - 1。
# 如果不配置base_path0,那邊它就和base_path對(duì)應(yīng)的路徑一樣。
# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/home/yuqing/fastdfs
#store_path1=/home/yuqing/fastdfs2
# FastDFS存儲(chǔ)文件時(shí),采用了兩級(jí)目錄。這里配置存放文件的目錄個(gè)數(shù) (系統(tǒng)的存儲(chǔ)機(jī)制,大家看看文件存儲(chǔ)的目錄就知道了)
# 如果本參數(shù)只為N(如:256),那么storage server在初次運(yùn)行時(shí),會(huì)自動(dòng)創(chuàng)建 N * N 個(gè)存放文件的子目錄。
# 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
# tracker_server 的列表 要寫端口的哦 (再次提醒是主動(dòng)連接tracker_server )
# 有多個(gè)tracker server時(shí),每個(gè)tracker server寫一行
# tracker_server can ocur more than once, and tracker_server format is
#? "host:port", host can be hostname or ip address
tracker_server=192.168.209.121:22122
# 日志級(jí)別
#standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info
# 操作系統(tǒng)運(yùn)行FastDFS的用戶組 (不填 就是當(dāng)前用戶組,哪個(gè)啟動(dòng)進(jìn)程就是哪個(gè))
#unix group name to run this program,
#not set (empty) means run by the group of current user
run_by_group=
# 操作系統(tǒng)運(yùn)行FastDFS的用戶 (不填 就是當(dāng)前用戶,哪個(gè)啟動(dòng)進(jìn)程就是哪個(gè))
#unix username to run this program,
#not set (empty) means run by current user
run_by_user=
# 允許連接本storage server的IP地址列表 (不包括自帶HTTP服務(wù)的所有連接)
# 可以配置多行,每行都會(huì)起作用
# 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=*
#? 文件在data目錄下分散存儲(chǔ)策略。
# 0: 輪流存放,在一個(gè)目錄下存儲(chǔ)設(shè)置的文件數(shù)后(參數(shù)file_distribute_rotate_count中設(shè)置文件數(shù)),使用下一個(gè)目錄進(jìn)行存儲(chǔ)。
# 1: 隨機(jī)存儲(chǔ),根據(jù)文件名對(duì)應(yīng)的hash code來(lái)分散存儲(chǔ)。
# the mode of the files distributed to the data path
# 0: round robin(default)
# 1: random, distributted by hash code
file_distribute_path_mode=0
# 當(dāng)上面的參數(shù)file_distribute_path_mode配置為0(輪流存放方式)時(shí),本參數(shù)有效。
# 當(dāng)一個(gè)目錄下的文件存放的文件數(shù)達(dá)到本參數(shù)值時(shí),后續(xù)上傳的文件存儲(chǔ)到下一個(gè)目錄中。
# valid when file_distribute_to_path is set to 0 (round robin),
# when the written file count reaches this number, then rotate to next path
# default value is 100
file_distribute_rotate_count=100
# 當(dāng)寫入大文件時(shí),每寫入N個(gè)字節(jié),調(diào)用一次系統(tǒng)函數(shù)fsync將內(nèi)容強(qiáng)行同步到硬盤。0表示從不調(diào)用fsync
# call fsync to disk when write big file
# 0: never call fsync
# other: call fsync when written bytes >= this bytes
# default value is 0 (never call fsync)
fsync_after_written_bytes=0
# 同步或刷新日志信息到硬盤的時(shí)間間隔,單位為秒
# 注意:storage server 的日志信息不是時(shí)時(shí)寫硬盤的,而是先寫內(nèi)存。
# sync log buff to disk every interval seconds
# must > 0, default value is 10 seconds
sync_log_buff_interval=10
# 同步binglog(更新操作日志)到硬盤的時(shí)間間隔,單位為秒
# 本參數(shù)會(huì)影響新上傳文件同步延遲時(shí)間
# sync binlog buff / cache to disk every interval seconds
# default value is 60 seconds
sync_binlog_buff_interval=10
# 把storage的stat文件同步到磁盤的時(shí)間間隔,單位為秒。
# 注:如果stat文件內(nèi)容沒(méi)有變化,不會(huì)進(jìn)行同步
# sync storage stat info to disk every interval seconds
# default value is 300 seconds
sync_stat_file_interval=300
# 線程棧的大小。FastDFS server端采用了線程方式。
# 對(duì)于V1.x,storage server線程棧不應(yīng)小于512KB;對(duì)于V2.0,線程棧大于等于128KB即可。
# 線程棧越大,一個(gè)線程占用的系統(tǒng)資源就越多。
# 對(duì)于V1.x,如果要啟動(dòng)更多的線程(max_connections),可以適當(dāng)降低本參數(shù)值。
# thread stack size, should >= 512KB
# default value is 512KB
thread_stack_size=512KB
# 本storage server作為源服務(wù)器,上傳文件的優(yōu)先級(jí),可以為負(fù)數(shù)。值越小,優(yōu)先級(jí)越高。這里就和 tracker.conf 中store_server= 2時(shí)的配置相對(duì)應(yīng)了
# the priority as a source server for uploading file.
# the lower this value, the higher its uploading priority.
# default value is 10
upload_priority=10
# 網(wǎng)卡別名前綴,就像Linux中的eth,可以使用ifconfig -a命令來(lái)查看
# 多個(gè)別名之間使用逗號(hào)分隔,如果不設(shè)置這個(gè)值表示自動(dòng)的被系統(tǒng)類型設(shè)置
# the NIC alias prefix, such as eth in Linux, you can see it by ifconfig -a
# multi aliases split by comma. empty value means auto set by OS type
# default values is empty
if_alias_prefix=
# 是否檢測(cè)上傳文件已經(jīng)存在。如果已經(jīng)存在,則不存在文件內(nèi)容,建立一個(gè)符號(hào)鏈接以節(jié)省磁盤空間。
# 這個(gè)應(yīng)用要配合FastDHT 使用,所以打開前要先安裝FastDHT
# 1或yes 是檢測(cè),0或no 是不檢測(cè)
# if check file duplicate, when set to true, use FastDHT to store file indexes
# 1 or yes: need check
# 0 or no: do not check
# default value is 0
check_file_duplicate=0
# 文件去重時(shí),文件內(nèi)容的簽名方式:
# hash: 4個(gè)hash code
# md5:MD5
# file signature method for check file duplicate
## hash: four 32 bits hash code
## md5: MD5 signature
# default value is hash
# since V4.01
file_signature_method=hash
# 當(dāng)上個(gè)參數(shù)設(shè)定為1 或 yes時(shí) (true/on也是可以的) , 在FastDHT中的命名空間
# namespace for storing file indexes (key-value pairs)
# this item must be set when check_file_duplicate is true / on
key_namespace=FastDFS
# 與FastDHT servers 的連接方式 (是否為持久連接) ,默認(rèn)是0(短連接方式)??梢钥紤]使用長(zhǎng)連接,這要看FastDHT server的連接數(shù)是否夠用。
# set keep_alive to 1 to enable persistent connection with FastDHT servers
# default value is 0 (short connection)
keep_alive=0
# 下面是關(guān)于FastDHT servers 的設(shè)定 需要對(duì)FastDHT servers 有所了解,這里只說(shuō)字面意思了
# 可以通過(guò) #include filename 方式來(lái)加載 FastDHT servers? 的配置,裝上FastDHT就知道該如何配置啦。
# 同樣要求 check_file_duplicate=1 時(shí)才有用,不然系統(tǒng)會(huì)忽略
# fdht_servers.conf 記載的是 FastDHT servers 列表
# you can use "#include filename" (not include double quotes) directive to
# load FastDHT server list, when the filename is a relative path such as
# pure filename, the base path is the base path of current/this config file.
# must set FastDHT server list when check_file_duplicate is true / on
# please see INSTALL of FastDHT for detail
##include /home/yuqing/fastdht/conf/fdht_servers.conf
# 是否將文件操作記錄到access log
# if log to access log
# default value is false
# since V4.00
use_access_log = false
# 是否定期輪轉(zhuǎn)access log,目前僅支持一天輪轉(zhuǎn)一次
# if rotate the access log every day
# default value is false
# since V4.00
rotate_access_log = false
# access log定期輪轉(zhuǎn)的時(shí)間點(diǎn),只有當(dāng)rotate_access_log設(shè)置為true時(shí)有效
# rotate access log time base, time format: Hour:Minute
# Hour from 0 to 23, Minute from 0 to 59
# default value is 00:00
# since V4.00
access_log_rotate_time=00:00
# 是否定期輪轉(zhuǎn)error log,目前僅支持一天輪轉(zhuǎn)一次
# if rotate the error log every day
# default value is false
# since V4.02
rotate_error_log = false
# error log定期輪轉(zhuǎn)的時(shí)間點(diǎn),只有當(dāng)rotate_error_log設(shè)置為true時(shí)有效
# rotate error log time base, time format: Hour:Minute
# Hour from 0 to 23, Minute from 0 to 59
# default value is 00:00
# since V4.02
error_log_rotate_time=00:00
# access log按文件大小輪轉(zhuǎn)
# 設(shè)置為0表示不按文件大小輪轉(zhuǎn),否則當(dāng)access log達(dá)到該大小,就會(huì)輪轉(zhuǎn)到新文件中
# rotate access log when the log file exceeds this size
# 0 means never rotates log file by log file size
# default value is 0
# since V4.02
rotate_access_log_size = 0
# error log按文件大小輪轉(zhuǎn)
# 設(shè)置為0表示不按文件大小輪轉(zhuǎn),否則當(dāng)error log達(dá)到該大小,就會(huì)輪轉(zhuǎn)到新文件中
# rotate error log when the log file exceeds this size
# 0 means never rotates log file by log file size
# default value is 0
# since V4.02
rotate_error_log_size = 0
# 文件同步的時(shí)候,是否忽略無(wú)效的binlog記錄
# if skip the invalid record when sync file
# default value is false
# since V4.02
file_sync_skip_invalid_record=false
# 是否使用連接池
# if use connection pool
# default value is false
# since V4.05
use_connection_pool = false
# 如果一個(gè)連接的空閑時(shí)間超過(guò)這個(gè)值將會(huì)被自動(dòng)關(guān)閉
# connections whose the idle time exceeds this time will be closed
# unit: second
# default value is 3600
# since V4.05
connection_pool_max_idle_time = 3600
# storage server上web server域名,通常僅針對(duì)單獨(dú)部署的web server。這樣URL中就可以通過(guò)域名方式來(lái)訪問(wèn)storage server上的文件了,
# 這個(gè)參數(shù)為空就是IP地址的方式。
# use the ip address of this storage server if domain_name is empty,
# else this domain name will ocur in the url redirected by the tracker server
http.domain_name=
# web server的端口
# the port of the web server on this storage server
http.server_port=8888
三、client.conf
# 連接超時(shí)時(shí)間,針對(duì)socket套接字函數(shù)connect
# connect timeout in seconds
# default value is 30s
connect_timeout=30
# client的網(wǎng)絡(luò)超時(shí),單位為秒。發(fā)送或接收數(shù)據(jù)時(shí),如果在超時(shí)時(shí)間后還不能發(fā)送或接收數(shù)據(jù),則本次網(wǎng)絡(luò)通信失敗
# network timeout in seconds
# default value is 30s
network_timeout=60
# 存儲(chǔ)日志的根目錄
# the base path to store log files
base_path=/home/yuqing/fastdfs
# tracker_server 的列表 要寫端口
# tracker_server can ocur more than once, and tracker_server format is
#? "host:port", host can be hostname or ip address
tracker_server=192.168.0.197:22122
# 日志的級(jí)別
#standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info
# 是否使用連接池
# if use connection pool
# default value is false
# since V4.05
use_connection_pool = false
# 如果一個(gè)連接的空閑時(shí)間超過(guò)這個(gè)值將會(huì)被自動(dòng)關(guān)閉
# connections whose the idle time exceeds this time will be closed
# unit: second
# default value is 3600
# since V4.05
connection_pool_max_idle_time = 3600
# 是否從FastDFS的tracker server加載參數(shù)
# if load FastDFS parameters from tracker server
# since V4.05
# default value is false
load_fdfs_parameters_from_tracker=false
是否使用storage ID 代替IP,只有當(dāng)load_fdfs_parameters_from_tracker為false時(shí)才有效
# if use storage ID instead of IP address
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# default value is false
# since V4.05
use_storage_id = false
# 指定storage_ids的路徑,可以使用絕對(duì)路徑和相對(duì)路徑,只有當(dāng)load_fdfs_parameters_from_tracker為false時(shí)才有效
# specify storage ids filename, can use relative or absolute path
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# since V4.05
storage_ids_filename = storage_ids.conf
#tracker server的http端口
#HTTP settings
http.tracker_server_port=8080
#use "#include" directive to include HTTP other settiongs
##include http.conf