FastDFS 注意事項

一、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/
 
二、除了在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
 
三、程序要訪問文件,FastDFS提供了java api
客戶端經過HTTP下載文件時,能夠走web server,如apache、nginx等
 
四、想要把fastDFS產生的記錄清空,再從新搭建一次,應該刪除哪些文件
中止storage server和tracker server,刪除base_path下的data子目錄便可。
注意:storage 的data目錄下保存了上傳文件,刪除時請慎重。
 
五、添加文件到fastDFS的data,會被同步到通一個group的其餘storage嗎
不會的,直接粘貼到fastdfs的文件不會被同步到同個組的其餘storage。
fastdfs的同步方式是經過data/sync目錄下的binlog.000的文件進行的。想要被複制必須保證binlog.000包含添加的文件時間戳+路徑
對應的同一個group的storage會在 data/sync中存在對應的同步標記文件如
 
 
六、每個group是否存儲了全部的上傳文件;仍是說group A存儲一部分,group B存儲一部分,同一個group中的storage server存儲的文件都相同。
A: 答案爲後者。即:group A存儲一部分,group B存儲一部分,同一個group中的storage server存儲的文件都相同。
 

七、FastDFS系統中的文件ID與用戶存儲進去的邏輯文件是不一樣的,因爲沒有索引服務器,那麼這種文件名映射關係不是要須要由用戶本身來保存?javascript

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

FastDFS系統中的文件ID與用戶存儲進去的邏輯文件是不一樣的,我有一個客戶端,想經過文件名進行操做,不知該怎樣實現?也就是說,文件名到ID的轉換,我本身寫的客戶端該怎麼轉換呢?nginx

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

 

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

九、Client是綁定一個Track Server,仍是能夠綁定多個或所有?
在一個集羣中,應該綁定所有。

十、Storage Server也是一樣的問題,是綁定一個Track Server,仍是能夠多個或者所有?
在一個集羣中,應該綁定所有。
數據庫


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

 

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命令,例如:
api

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>

相關文章
相關標籤/搜索