FastDFS 注意事項


1、nginx集成FastDFS模塊時,配置文件問題
檢測到nginx日志:  /home/soft/fastdfs-nginx-module/src/common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2
默認沒有吧/mod_fastdfs.conf拷貝到/etc/fdfs 上,並設置對應的端口(默認是22122)
cp /home/soft/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
 
2、除了在storage.conf里的tracker_server增加tracker的ip和端口,需要注意什么
tracker server ip和端口,單個配置方式 tracker_server=10.10.1.1:2222
fastdfs支持tracker server,每行設置一個tracker_server
tracker_server=10.130.1.1:2222
tracker_server=10.130.1.2:2222
tracker_server=10.130.1.3:2222
 
3、程序要訪問文件,FastDFS提供了java api
客戶端通過HTTP下載文件時,可以走web server,如apache、nginx等
 
4、想要把fastDFS產生的記錄清空,再重新搭建一次,應該刪除哪些文件
停止storage server和tracker server,刪除base_path下的data子目錄即可。
注意:storage 的data目錄下保存了上傳文件,刪除時請慎重。
 
5、添加文件到fastDFS的data,會被同步到通一個group的其他storage嗎
不會的,直接粘貼到fastdfs的文件不會被同步到同個組的其他storage。
fastdfs的同步方式是通過data/sync目錄下的binlog.000的文件進行的。想要被復制必須保證binlog.000包含添加的文件時間戳+路徑
對應的同一個group的storage會在 data/sync中存在對應的同步標記文件如
 
 
6、每一個group是否存儲了所有的上傳文件;還是說group A存儲一部分,group B存儲一部分,同一個group中的storage server存儲的文件都相同。
A: 答案為后者。即:group A存儲一部分,group B存儲一部分,同一個group中的storage server存儲的文件都相同。
 

7、FastDFS系統中的文件ID與用戶存儲進去的邏輯文件是不同的,由於沒有索引服務器,那么這種文件名映射關系不是要需要由用戶自己來保存?

的確如此,目前的確需要由應用端來保存。

FastDFS系統中的文件ID與用戶存儲進去的邏輯文件是不同的,我有一個客戶端,想通過文件名進行操作,不知該怎樣實現?也就是說,文件名到ID的轉換,我自己寫的客戶端該怎么轉換呢?

像你這樣的應用場合,再加一層好了,實現文件名到文件ID的轉換。比如可以基於數據庫來做,或者通過分布式kv系統,如TT、FastDHT等等來做。

 

8、這些Track Server的內容是對等的,還是分組,每個Track Server負責一部分Storage Server?
對等的。

9、Client是綁定一個Track Server,還是可以綁定多個或全部?
在一個集群中,應該綁定全部。

10、Storage Server也是同樣的問題,是綁定一個Track Server,還是可以多個或者全部?
在一個集群中,應該綁定全部。


11、如果沒有綁定全部Tracker Sever,那么Tracker Sever之間可能會出現不一致的情況,這種問題如何解決呢?
應該綁定所有Tracker server啊。
萬一有個別storage server沒有綁定所有tracker server,也不會出現問題。
正確的做法是綁定所有tracker server。

 

12. FastDFS需要的編譯和運行環境是怎樣的?
FastDFS Server僅支持unix系統,在Linux和FreeBSD測試通過。在Solaris系統下網絡通信方面有些問題。
編譯需要的其他庫文件有pthread和libevent。
pthread使用系統自帶的即可。
對libevent的版本要求為1.4.x,建議使用最新的stable版本,如1.4.14b。
注意,千萬不要使用libevent 2.0及以上版本。

13. 啟動storage server時,一直處於僵死狀態。
A:啟動storage server,storage將連接tracker server,如果連不上,將一直重試。直到連接成功,啟動才算真正完成。
出現這樣情況,請檢查連接不上tracker server的原因。

14. 執行fdfs_test或fdfs_test1上傳文件時,服務器返回錯誤號2
錯誤號表示沒有ACTIVE狀態的storage server。可以執行fdfs_monitor查看服務器狀態。

15. 如何讓server進程退出運行?
直接kill即可讓server進程正常退出,可以使用killall命令,例如:

killall fdfs_trackerd
killall fdfs_storaged


也可以使用FastDFS自帶的stop.sh腳本,如:

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

 

 

stop.sh只會停止命令行(包括參數)完全相同的進程。
千萬不要使用-9參數強殺,否則可能會導致binlog數據丟失的問題。

16. 如何重啟server進程?
可以kill掉server進程后,執行啟動命令行。如:

killall fdfs_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


17. 跨運營商通信異常問題
比如電信和網通機房相互通信,可能會存在異常,有兩種表現:
  1)不能建立連接,這個比較直接,肯定是網絡連接的問題
  2)可以正常建立連接,但接收和發送數據失敗,這個問題比較隱蔽,正常網絡環境下,不應該出現此類問題。
       還有人碰到過從一個方向建立連接可以正常通信,但從另外一個方向就不能正常通信的情況。
解決辦法:
  嘗試將服務端口改小,建議將端口修改為1024以下。比如將storage服務端口由23000修改為873等,也可以試試修改為8080
  如果問題還不能解決,請聯系你的網絡(機房)服務商。

18. fdfs_test和fdfs_test1是做什么用的?
   這兩個是FastDFS自帶的測試程序,會對一個文件上傳兩次,分別作為主文件和從文件。返回的文件ID也是兩個。
   並且會上傳文件附加屬性,storage server上會生成4個文件。
   這兩個程序僅用於測試目的,請不要用作實際用途。
   V2.05提供了比較正式的三個小工具:
      上傳文件:/usr/local/bin/fdfs_upload_file  <config_file> <local_filename>
      下載文件:/usr/local/bin/fdfs_download_file <config_file> <file_id> [local_filename]
       刪除文件:/usr/local/bin/fdfs_delete_file <config_file> <file_id>

 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM