【FastDFS專題】fastdfs使用實戰(概念篇)

1、FastDFS是什麼
    FastDFS是一個開源的輕量級分佈式文件系統,純C實現,支持Linux、FreeBSD等UNIX系統,FastDFS可以看做是基於文件的key value pair存儲系統。
    FastDFS有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要做調度工作,在訪問上起負載均衡的作用。存儲節點存儲文件,完成文件管理的所有功能:存儲、同步和提供存取接口,同時對文件的metadata進行管理。所謂文件的meta data就是文件的相關屬性,以鍵值對(key valuepair)方式表示,如:width=1024,其中的key爲width,value爲1024。文件metadata是文件屬性列表,可以包含多個鍵值對。
 
2、FastDFS的特點
    分組存儲,靈活簡潔
    對等結構,不存在單點 
    文件ID由FastDFS生成,作爲文件訪問憑證。
    FastDFS不需要傳統的name server
    和流行的web server無縫銜接,FastDFS已提供apache和nginx擴展模塊
    大、中、小文件均可以很好支持,支持海量小文件存儲
    支持相同文件內容只保存一份,節省存儲空間
    存儲服務器上可以保存文件附加屬性
    支持多塊磁盤,支持單盤數據恢復
 
3、FastDFS架構圖如下:

    跟蹤器和存儲節點都可以由一臺或多臺服務器構成。跟蹤器和存儲節點中的服務器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有服務器都是對等的,可以根據服務器的壓力情況隨時增加或減少。
    爲了支持大容量,存儲節點(服務器)採用了分卷(或分組)的組織方式。存儲系統由一個或多個卷組成,卷與卷之間的文件是相互獨立的,所有卷的文件容量累加就是整個存儲系統中的文件容量。一個卷可以由一臺或多臺存儲服務器組成,一個卷下的存儲服務器中的文件都是相同的,卷中的多臺存儲服務器起到了冗餘備份和負載均衡的作用。在卷中增加服務器時,同步已有的文件由系統自動完成,同步完成後,系統自動將新增服務器切換到線上提供服務。當存儲空間不足或即將耗盡時,可以動態添加捲。只需要增加一臺或多臺服務器,並將它們配置爲一個新的卷,這樣就擴大了存儲系統的容量。
    FastDFS中的文件標識分爲兩個部分:卷名和文件名,二者缺一不可。
 
4、FastDFS實現過程
上傳文件交互過程:


  1. Client詢問Tracker server上傳到的Storage server;
  2. Tracker server返回一臺可用的Storage server,返回的數據爲該Storage server的IP地址和端口;
  3. Client直接和該Storage server建立連接,進行文件上傳,Storage server返回新生成的文件ID,文件上傳結束。

下載文件交互過程:

lxsym.blog.51cto.com
  1. Client詢問Tracker server可以下載指定文件的Storage server,參數爲文件ID(包含組名和文件名);
  2. Tracker server返回一臺可用的Storage server;
  3. Client直接和該Storage server建立連接,完成文件下載。

 
5、同步機制
    同一組內的storage server之間是對等的,文件上傳、刪除等操作可以在任意一臺storage server上進行;
    文件同步只在同組內的storage server之間進行,採用push方式,即源服務器同步給目標服務器;
    源頭數據才需要同步,備份數據不需要再次同步,否則就構成環路了;
上述第二條規則有個例外,就是新增加一臺storage server時,由已有的一臺storage server將已有的所有數據(包括源頭數據和備份數據)同步給該新增服務器。
來自http://bbs.chinaunix.net/thread-3674148-1-4.html

 

本文出自 “Richard Shen運維/架構” 博客,請務必保留此出處http://lxsym.blog.51cto.com/1364623/744826

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章