fastDFS tracker 參數配置詳解
disabled
disabled=false,這個配置文件是否不生效
bind_addr
bind_addr= ,后面為綁定的IP地址 (常用於服務器有多個IP但只希望一個IP提供服務)。如果不填則表示所有的(一般不填就OK)
port
port=22122 ,提供服務的端口
connect_timeout
connect_timeout=30 ,連接超時時間,針對socket套接字函數connect
network_timeout
network_timeout=60 ,tracker server的網絡超時,單位為秒。發送或接收數據時,如果在超時時間后還不能發送或接收數據,則本次網絡通信失敗。
base_path
base_path=/home/yuqing/fastdfs ,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的同步)
max_connections
max_connections=256 ,系統提供服務時的最大連接數
work_threads
work_threads=4 ,工作線程數,通常設置為CPU數
store_lookup
store_lookup=2 ,上傳組(卷) 的方式 0:輪詢方式 1: 指定組 2: 平衡負載(選擇最大剩余空間的組(卷)上傳)。
這里如果在應用層指定了上傳到一個固定組,那么這個參數被繞過
store_group
store_group=group2 ,當上一個參數設定為1 時 (store_lookup=1,即指定組名時),必須設置本參數為系統中存在的一個組名。如果選擇其他的上傳方式,這個參數就沒有效了。
store_server
store_server=0 , 選擇哪個storage server 進行上傳操作(一個文件被上傳后,這個storage server就相當於這個文件的storage server源,會對同組的storage server推送這個文件達到同步效果)
- 0: 輪詢方式
- 1: 根據ip 地址進行排序選擇第一個服務器(IP地址最小者)
- 2: 根據優先級進行排序(上傳優先級由storage server來設置,參數名為upload_priority)
store_path
store_path=0 ,中的哪個目錄進行上傳。storage server可以有多個存放文件的base path(可以理解為多個磁盤)。
- 0: 輪流方式,多個目錄依次存放文件
- 2: 選擇剩余空間最大的目錄存放文件(注意:剩余磁盤空間是動態的,因此存儲到的目錄或磁盤可能也是變化的)
download_server
download_server=0 ,選擇哪個 storage server 作為下載服務器
- 0: 輪詢方式,可以下載當前文件的任一storage server
- 1: 哪個為源storage server 就用哪一個 (前面說過了這個storage server源 是怎樣產生的) 就是之前上傳到哪個storage server服務器就是哪個了
reserved_storage_space
reserved_storage_space = 10% ,storage server 上保留的空間,保證系統或其他應用需求空間。可以用絕對值或者百分比(V4開始支持百分比方式)。
(指出 如果同組的服務器的硬盤大小一樣,以最小的為准,也就是只要同組中有一台服務器達到這個標准了,這個標准就生效,原因就是因為他們進行備份)
log_level
log_level=info ,選擇日志級別(日志寫在哪?看前面的說明了,有目錄介紹哦)
run_by_group
run_by_group= ,操作系統運行FastDFS的用戶組 (不填 就是當前用戶組,哪個啟動進程就是哪個)
run_by_user
run_by_user= ,操作系統運行FastDFS的用戶 (不填 就是當前用戶,哪個啟動進程就是哪個)
allow_hosts
allow_hosts=* ,可以連接到此 tracker server 的ip范圍(對所有類型的連接都有影響,包括客戶端,storage server)
"*" 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
sync_log_buff_interval
sync_log_buff_interval = 10 ,同步或刷新日志信息到硬盤的時間間隔,單位為秒,注意:tracker server 的日志不是時時寫硬盤的,而是先寫內存。
check_active_interval
check_active_interval = 120 ,檢測 storage server 存活的時間隔,單位為秒。
storage server定期向tracker server 發心跳,如果tracker server在一個check_active_interval內還沒有收到storage server的一次心跳,那邊將認為該storage server已經下線。所以本參數值必須大於storage server配置的心跳時間間隔。通常配置為storage server心跳時間間隔的2倍或3倍。
thread_stack_size
thread_stack_size=1MB ,線程棧的大小。FastDFS server端采用了線程方式。更正一下,tracker server線程棧不應小於64KB。線程棧越大,一個線程占用的系統資源就越多。如果要啟動更多的線程
storage_ip_changed_auto_adjust
storage_ip_changed_auto_adjust=true ,這個參數控制當storage server IP地址改變時,集群是否自動調整。注:只有在storage server進程重啟時才完成自動調整。
storage_sync_file_max_delay
storage_sync_file_max_delay = 86400 ,存儲服務器之間同步文件的最大延遲時間,缺省為1天。根據實際情況進行調整。
注:本參數並不影響文件同步過程。本參數僅在下載文件時,判斷文件是否已經被同步完成的一個閥值(經驗值)
storage_sync_file_max_time
storage_sync_file_max_time = 300 ,存儲服務器同步一個文件需要消耗的最大時間,缺省為300s,即5分鍾。
注:本參數並不影響文件同步過程。本參數僅在下載文件時,作為判斷當前文件是否被同步完成的一個閥值(經驗值)
use_trunk_file
use_trunk_file = false ,是否使用小文件合並存儲特性,缺省是關閉的。
slot_min_size
slot_min_size = 256 ,trunk file分配的最小字節數。比如文件只有16個字節,系統也會分配slot_min_size個字節。
slot_max_size
slot_max_size = 16MB ,只有文件大小<=這個參數值的文件,才會合並存儲。如果一個文件的大小大於這個參數值,將直接保存到一個文件中(即不采用合並存儲方式)。
trunk_file_size
trunk_file_size = 64MB ,合並存儲的trunk file大小,至少4MB,缺省值是64MB。不建議設置得過大。
trunk_create_file_advance
trunk_create_file_advance = false ,是否提前創建trunk file。只有當這個參數為true,下面3個以trunk_create_file_打頭的參數才有效。
trunk_create_file_time_base
trunk_create_file_time_base = 02:00 ,提前創建trunk file的起始時間點(基准時間),02:00表示第一次創建的時間點是凌晨2點。
trunk_create_file_interval
trunk_create_file_interval = 86400 ,創建trunk file的時間間隔,單位為秒。如果每天只提前創建一次,則設置為86400
trunk_create_file_space_threshold
trunk_create_file_space_threshold = 20G ,提前創建trunk file時,需要達到的空閑trunk大小,比如本參數為20G,而當前空閑trunk為4GB,那么只需要創建16GB的trunk file即可。
trunk_init_check_occupying
trunk_init_check_occupying = false ,trunk初始化時,是否檢查可用空間是否被占用。
trunk_init_reload_from_binlog
是否無條件從trunk binlog中加載trunk可用空間信息
FastDFS缺省是從快照文件storage_trunk.dat中加載trunk可用空間,
該文件的第一行記錄的是trunk binlog的offset,然后從binlog的offset開始加載
use_storage_id
use_storage_id = false ,是否使用server ID作為storage server標識
storage_ids_filename
storage_ids_filename = storage_ids.conf ,use_storage_id 設置為true,才需要設置本參數。
在文件中設置組名、server ID和對應的IP地址,參見源碼目錄下的配置示例:conf/storage_ids.conf
store_slave_file_use_link
store_slave_file_use_link = false ,存儲從文件是否采用symbol link(符號鏈接)方式。
如果設置為true,一個從文件將占用兩個文件:原始文件及指向它的符號鏈接。
rotate_error_log
rotate_error_log = false ,是否定期輪轉error log,目前僅支持一天輪轉一次。
error_log_rotate_time
error_log_rotate_time=00:00 ,error log定期輪轉的時間點,只有當rotate_error_log設置為true時有效
rotate_error_log_size
rotate_error_log_size = 0 ,error log按大小輪轉。
設置為0表示不按文件大小輪轉,否則當error log達到該大小,就會輪轉到新文件中
http.disabled & http.server_port
http.disabled=false ,HTTP服務是否不生效
http.server_port=8080 , HTTP服務端口
關於http的設置,默認編譯是不生效的 要求更改 #WITH_HTTPD=1 將 注釋#去掉 再編譯
關於http的應用 說實話 不是很了解 沒有見到 相關說明
use "#include" directive to include http other settiongs
include http.conf 如果加載http.conf的配置文件