分布式檔案儲存體FastDFS(七)FastDFS設定檔詳解__分布式

來源:互聯網
上載者:User

配置FastDFS時,修改設定檔是很重要的一個步驟,理解設定檔中每一項的意義更加重要,所以我參考了大神的文章,整理了設定檔的解釋。原帖如下:http://bbs.chinaunix.net/thread-1941456-1-1.html,因為原帖中的版本比較早,所以我針對現有的版本進行了修改,原帖中沒有client.conf的介紹,這裡我給加上了。

下文中帶有注釋的設定檔下載:http://download.csdn.net/detail/xingjiarong/9445515

一、tracker.conf

# 這個設定檔是否無效,false表示有效# is this config file disabled# false for enabled# true for disableddisabled=false# 是否綁定IP# bind_addr= 後面為綁定的IP地址 (常用於伺服器有多個IP但只希望一個IP提供服務)。如果不填則表示所有的(一般不填就OK)# bind an address of this host# empty for bind all addresses of this hostbind_addr=# 提供服務的連接埠# the tracker server portport=22122# 連線逾時時間,針對socket通訊端函數connect# connect timeout in seconds# default value is 30sconnect_timeout=30# tracker server的網路逾時,單位為秒。發送或接收資料時,如果在逾時時間後還不能發送或接收資料,則本次網路通訊失敗# network timeout in seconds# default value is 30snetwork_timeout=60# the base path to store data and log filesbase_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的同步)# 系統提供服務時的最大串連數。對於V1.x,因一個串連由一個線程服務,也就是背景工作執行緒數。# 對於V2.x,最大串連數和背景工作執行緒數沒有任何關係# max concurrent connections this server supportedmax_connections=256# work thread count, should <= max_connections# default value is 4# since V2.00# V2.0引入的這個參數,背景工作執行緒數,通常設定為CPU數work_threads=4# 上傳組(卷) 的方式 0:輪詢方式 1: 指定組 2: 平衡負載(選擇最大剩餘空間的組(卷)上傳)# 這裡如果在應用程式層指定了上傳到一個固定組,那麼這個參數被繞過# 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 filestore_lookup=2# 當上一個參數設定為1 時 (store_lookup=1,即指定組名時),必須設定本參數為系統中存在的一個組名。如果選擇其他的上傳方式,這個參數就沒有效了# which group to upload file# when store_lookup set to 1, must set store_group to the group namestore_group=group2# 選擇哪個storage server 進行上傳操作(一個檔案被上傳後,這個storage server就相當於這個檔案的storage server源,會對同組的storage server推送這個檔案達到同步效果)# 0: 輪詢方式 # 1: 根據ip 地址進行排序選擇第一個伺服器(IP地址最小者)# 2: 根據優先順序進行排序(上傳優先順序由storage server來設定,參數名為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 中的哪個目錄進行上傳。storage server可以有多個存放檔案的base path(可以理解為多個磁碟)。# 0: 輪流方式,多個目錄依次存放檔案# 2: 選擇剩餘空間最大的目錄存放檔案(注意:剩餘磁碟空間是動態,因此儲存到的目錄或磁碟可能也是變化的)# 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 filestore_path=0# 選擇哪個 storage server 作為下載伺服器 # 0: 輪詢方式,可以下載當前檔案的任一storage server# 1: 哪個為源storage server 就用哪一個 (前面說過了這個storage server源 是怎樣產生的) 就是之前上傳到哪個storage server伺服器就是哪個了# which storage server to download file# 0: round robin (default)# 1: the source storage server which the current file uploaded todownload_server=0# storage server 上保留的空間,保證系統或其他應用需求空間。可以用絕對值或者百分比(V4開始支持度百分比方式)。#(指出 如果同組的伺服器的硬碟大小一樣,以最小的為準,也就是只要同組中有一台伺服器達到這個標準了,這個標準就生效,原因就是因為他們進行備份)# 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%# 選擇記錄層級#standard log level as syslog, case insensitive, value list:### emerg for emergency### alert### crit for critical### error### warn for warning### notice### info### debuglog_level=info# 作業系統運行FastDFS的使用者組 (不填 就是目前使用者組,哪個啟動進程就是哪個)#unix group name to run this program, #not set (empty) means run by the group of current userrun_by_group=# 作業系統運行FastDFS的使用者 (不填 就是目前使用者,哪個啟動進程就是哪個)#unix username to run this program,#not set (empty) means run by current userrun_by_user=# 可以串連到此 tracker server 的ip範圍(對所有類型的串連都有影響,包括用戶端,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.comallow_hosts=*# 同步或重新整理日誌資訊到硬碟的時間間隔,單位為秒# 注意:tracker server 的日誌不是時時寫硬碟的,而是先寫記憶體# sync log buff to disk every interval seconds# default value is 10 secondssync_log_buff_interval = 10# 檢測 storage server 存活的時間隔,單位為秒。# storage server定期向tracker server 發心跳,如果tracker server在一個check_active_interval內還沒有收到storage server的一次心跳,那邊將認為該storage server已經下線。所以本參數值必須大於storage server配置的心跳時間間隔。通常配置為storage server心跳時間間隔的2倍或3倍# check storage server alive interval secondscheck_active_interval = 120# 線程棧的大小。FastDFS server端採用了線程方式。tracker server線程棧不應小於64KB# 線程棧越大,一個線程佔用的系統資源就越多。如果要啟動更多的線程(V1.x對應的參數為max_connections,V2.0為work_threads),可以適當降低本參數值# thread stack size, should >= 64KB# default value is 64KBthread_stack_size = 64KB# 這個參數控制當storage server IP地址改變時,叢集是否自動調整。註:只有在storage server進程重啟時才完成自動調整# auto adjust when the ip address of the storage server changed# default value is truestorage_ip_changed_auto_adjust = true# V2.0引入的參數。儲存伺服器之間同步檔案的最大延遲時間,預設為1天。根據實際情況進行調整# 註:本參數並不影響檔案同步過程。本參數僅在下載檔案時,判斷檔案是否已經被同步完成的一個閥值(經驗值)# storage sync file max delay seconds# default value is 86400 seconds (one day)# since V2.00storage_sync_file_max_delay = 86400# V2.0引入的參數。儲存伺服器同步一個檔案需要消耗的最大時間,預設為300s,即5分鐘。# 註:本參數並不影響檔案同步過程。本參數僅在下載檔案時,作為判斷當前檔案是否被同步完成的一個閥值(經驗值)# the max time of storage sync a file# default value is 300 seconds# since V2.00storage_sync_file_max_time = 300# V3.0引入的參數。是否使用小檔案合并儲存特性,預設是關閉的# if use a trunk file to store several small files# default value is false# since V3.00use_trunk_file = false # V3.0引入的參數。# trunk file分配的最小位元組數。比如檔案只有16個位元組,系統也會分配slot_min_size個位元組# the min slot size, should <= 4KB# default value is 256 bytes# since V3.00slot_min_size = 256# V3.0引入的參數。# 只有檔案大小<=這個參數值的檔案,才會合并儲存。如果一個檔案的大小大於這個參數值,將直接儲存到一個檔案中(即不採用合并儲存方式)。# 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.00slot_max_size = 16MB# V3.0引入的參數。# 合并儲存的trunk file大小,至少4MB,預設值是64MB。不建議設定得過大# the trunk file size, should >= 4MB# default value is 64MB# since V3.00trunk_file_size = 64MB# 是否提前建立trunk file。只有當這個參數為true,下面3個以trunk_create_file_打頭的參數才有效# if create trunk file advancely# default value is false# since V3.06trunk_create_file_advance = false# 提前建立trunk file的起始時間點(基準時間),02:00表示第一次建立的時間點是淩晨2點# the time base to create trunk file# the time format: HH:MM# default value is 02:00# since V3.06trunk_create_file_time_base = 02:00# 建立trunk file的時間間隔,單位為秒。如果每天只提前建立一次,則設定為86400# the interval of create trunk file, unit: second# default value is 38400 (one day)# since V3.06trunk_create_file_interval = 86400# 提前建立trunk file時,需要達到的空閑trunk大小# 比如本參數為20G,而當前空閑trunk為4GB,那麼只需要建立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.06trunk_create_file_space_threshold = 20G# trunk初始化時,是否檢查可用空間是否被佔用# 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# 是否無條件從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.10trunk_init_reload_from_binlog = false# 是否使用server ID作為storage server標識# if use storage ID instead of IP address# default value is false# since V4.00use_storage_id = false# use_storage_id 設定為true,才需要設定本參數# 在檔案中設定組名、server ID和對應的IP地址,參見源碼目錄下的配置樣本:conf/storage_ids.conf# specify storage ids filename, can use relative or absolute path# since V4.00storage_ids_filename = storage_ids.conf#檔案名稱中的id類型,有ip和id兩種,只有當use_storage_id設定為true時該參數才有效# 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.03id_type_in_filename = ip# 儲存從檔案是否採用symbol link(符號連結)方式# 如果設定為true,一個從檔案將佔用兩個檔案:原始檔案及指向它的符號連結# if store slave file use symbol link# default value is false# since V4.01store_slave_file_use_link = false# 是否定期輪轉error log,目前僅支援一天輪轉一次# if rotate the error log every day# default value is false# since V4.02rotate_error_log = false# error log定期輪轉的時間點,只有當rotate_error_log設定為true時有效# 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.02error_log_rotate_time=00:00# error log按大小輪轉# 設定為0表示不按檔案大小輪轉,否則當error log達到該大小,就會輪轉到新檔案中# 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.02rotate_error_log_size = 0# 是否使用串連池# if use connection pool# default value is false# since V4.05use_connection_pool = false# 如果一個串連的空閑時間超過這個值將會被自動關閉# connections whose the idle time exceeds this time will be closed# unit: second# default value is 3600# since V4.05connection_pool_max_idle_time = 3600# 用於提供http服務的連接埠# HTTP port on this tracker serverhttp.server_port=8080# 檢查http server是否還在工作的時間間隔,如果該值小於0則永遠不檢查# check storage HTTP server alive interval seconds# <= 0 for never check# default value is 30http.check_alive_interval=30# 檢查http server是否存活的類型,有tcp和http兩種# tcp方式只有http連接埠被串連# http方式檢查必須返回狀態值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 tcphttp.check_alive_type=tcp# check storage HTTP server alive uri/url# NOTE: storage embed HTTP server support uri: /status.htmlhttp.check_alive_uri=/status.html

二、storage.conf

# 這個設定檔是否無效,false表示有效# is this config file disabled# false for enabled# true for disableddisabled=false# 指定 此 storage server 所在組(卷)# the name of the group this storage server belongs togroup_name=group1# 是否綁定IP# bind_addr= 後面為綁定的IP地址 (常用於伺服器有多個IP但只希望一個IP提供服務)。如果不填則表示所有的(一般不填就OK)# bind an address of this host# empty for bind all addresses of this hostbind_addr=# bind_addr通常是針對server的。當指定bind_addr時,本參數才有效。# 本storage server作為client串連其他伺服器(如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 hostclient_bind=true# storage server服務連接埠# the storage server portport=23000# 連線逾時時間,針對socket通訊端函數connect# connect timeout in seconds# default value is 30sconnect_timeout=30# storage server 網路逾時時間,單位為秒。發送或接收資料時,如果在逾時時間後還不能發送或接收資料,則本次網路通訊失敗。# network timeout in seconds# default value is 30snetwork_timeout=60# 心跳間隔時間,單位為秒 (這裡是指主動向tracker server 發送心跳)# heart beat interval in secondsheart_beat_interval=30# storage server向tracker server報告磁碟剩餘空間的時間間隔,單位為秒# disk usage report interval in secondsstat_report_interval=60# base_path 目錄位址,根目錄必須存在  子目錄會自動產生 (注 :這裡不是上傳的檔案存放的地址,之前是的,在某個版本後更改了)# the base path to store data and log filesbase_path=/home/yuqing/fastdfs# 系統提供服務時的最大串連數# max concurrent connections the server supported# default value is 256# more max_connections means more memory will be usedmax_connections=256# V2.0引入本參數。設定隊列結點的buffer大小。工作隊列消耗的記憶體大小 = buff_size * max_connections# 設定得大一些,系統整體效能會有所提升。# 消耗的記憶體請不要超過系統實體記憶體大小。另外,對於32位系統,請注意使用到的記憶體不要超過3GB# the buff size to recv / send data# this parameter must more than 8KB# default value is 64KB# since V2.00buff_size = 256KB# 背景工作執行緒的數量,背景工作執行緒用於處理網路IO,應當小於max_connections的值# work thread count, should <= max_connections# work thread deal network io# default value is 4# since V2.00work_threads=4# V2.0引入本參數。磁碟IO讀寫是否分離,預設是分離的# if disk read / write separated##  false for mixed read and write##  true for separated read and write# default value is true# since V2.00disk_rw_separated = true# V2.0引入本參數。針對單個儲存路徑的讀線程數,預設值為1。# 讀寫分離時,系統中的讀線程數 = disk_reader_threads * store_path_count# 讀寫混合時,系統中的讀寫線程數 = (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.00disk_reader_threads = 1# V2.0引入本參數。針對單個儲存路徑的寫線程數,預設值為1。# 讀寫分離時,系統中的寫線程數 = disk_writer_threads * store_path_count# 讀寫混合時,系統中的讀寫線程數 = (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.00disk_writer_threads = 1# 同步檔案時,如果從binlog中沒有讀到要同步的檔案,休眠N毫秒後重新讀取。0表示不休眠,立即再次嘗試讀取。# 出於CPU消耗考慮,不建議設定為0。如何希望同步儘可能快一些,可以將本參數設定得小一些,比如設定為10ms# when no entry to sync, try read binlog again after X milliseconds# must > 0, default value is 200mssync_wait_msec=50# 同步上一個檔案後,再同步下一個檔案的時間間隔,單位為毫秒,0表示不休眠,直接同步處理下一個檔案。# after sync a file, usleep milliseconds# 0 for sync successively (never call usleep)sync_interval=0# 下面二個一起解釋。允許系統同步的時間段 (預設是全天) 。一般用於避免高峰同步產生一些問題而設定,相信sa都會明白# storage sync start time of a day, time format: Hour:Minute# Hour from 0 to 23, Minute from 0 to 59sync_start_time=00:00# storage sync end time of a day, time format: Hour:Minute# Hour from 0 to 23, Minute from 0 to 59sync_end_time=23:59# 同步完N個檔案後,把storage的mark檔案同步到磁碟# 註:如果mark檔案內容沒有變化,則不會同步# write to the mark file after sync N files# default value is 500write_mark_file_freq=500# 存放檔案時storage server支援多個路徑(例如磁碟)。這裡配置存放檔案的基路徑數目,通常只配一個目錄。# path(disk or mount point) count, default value is 1store_path_count=1# 逐一配置store_path個路徑,索引號基於0。注意配置方法後面有0,1,2 ......,需要配置0到store_path - 1。# 如果不配置base_path0,那邊它就和base_path對應的路徑一樣。# store_path#, based 0, if store_path0 not exists, it's value is base_path# the paths must be existstore_path0=/home/yuqing/fastdfs#store_path1=/home/yuqing/fastdfs2# FastDFS隱藏檔時,採用了兩級目錄。這裡配置存放檔案的目錄個數 (系統的儲存機制,大家看看檔案儲存體的目錄就知道了)# 如果本參數只為N(如:256),那麼storage server在初次運行時,會自動建立 N * N 個存放檔案的子目錄。# subdir_count  * subdir_count directories will be auto created under each # store_path (disk), value can be 1 to 256, default value is 256subdir_count_per_path=256# tracker_server 的列表 要寫連接埠的哦 (再次提醒是主動串連tracker_server )# 有多個tracker server時,每個tracker server寫一行# tracker_server can ocur more than once, and tracker_server format is#  "host:port", host can be hostname or ip addresstracker_server=192.168.209.121:22122# 記錄層級#standard log level as syslog, case insensitive, value list:### emerg for emergency### alert

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.