FastDFS一個(gè)開源高效的分布式文件系統(tǒng)

字號(hào):

FastDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng),她對文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲(chǔ)和負(fù)載均衡的問題。特別適合以文件為載體的在線服務(wù),如相冊網(wǎng)站、視頻網(wǎng)站等等。 FastDFS服務(wù)端有兩個(gè)角色:跟蹤器(tracker)和存儲(chǔ)節(jié)點(diǎn)(storage)。跟蹤器主要做調(diào)度工作,在訪問上起負(fù)載均衡的作用。
    FastDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng),她對文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲(chǔ)和負(fù)載均衡的問題。特別適合以文件為載體的在線服務(wù),如相冊網(wǎng)站、視頻網(wǎng)站等等。
    FastDFS服務(wù)端有兩個(gè)角色:跟蹤器(tracker)和存儲(chǔ)節(jié)點(diǎn)(storage)。跟蹤器主要做調(diào)度工作,在訪問上起負(fù)載均衡的作用。
    存儲(chǔ)節(jié)點(diǎn)存儲(chǔ)文件,完成文件管理的所有功能:存儲(chǔ)、同步和提供存取接口,F(xiàn)astDFS同時(shí)對文件的meta data進(jìn)行管理。所謂文件的meta data就是文件的相關(guān)屬性,以鍵值對(key value pair)方式表示,如:width=1024,其中的key為width,value為1024。文件meta data是文件屬性列表,可以包含多個(gè)鍵值對。
    FastDFS系統(tǒng)結(jié)構(gòu)如下圖所示:
    跟蹤器和存儲(chǔ)節(jié)點(diǎn)都可以由一臺(tái)多臺(tái)服務(wù)器構(gòu)成。跟蹤器和存儲(chǔ)節(jié)點(diǎn)中的服務(wù)器均可以隨時(shí)增加或下線而不會(huì)影響線上服務(wù)。其中跟蹤器中的所有服務(wù)器都是對等的,可以根據(jù)服務(wù)器的壓力情況隨時(shí)增加或減少。
    為 了支持大容量,存儲(chǔ)節(jié)點(diǎn)(服務(wù)器)采用了分卷(或分組)的組織方式。存儲(chǔ)系統(tǒng)由一個(gè)或多個(gè)卷組成,卷與卷之間的文件是相互獨(dú)立的,所有卷的文件容量累加就 是整個(gè)存儲(chǔ)系統(tǒng)中的文件容量。一個(gè)卷可以由一臺(tái)或多臺(tái)存儲(chǔ)服務(wù)器組成,一個(gè)卷下的存儲(chǔ)服務(wù)器中的文件都是相同的,卷中的多臺(tái)存儲(chǔ)服務(wù)器起到了冗余備份和負(fù) 載均衡的作用。
    在卷中增加服務(wù)器時(shí),同步已有的文件由系統(tǒng)自動(dòng)完成,同步完成后,系統(tǒng)自動(dòng)將新增服務(wù)器切換到線上提供服務(wù)。
    當(dāng)存儲(chǔ)空間不足或即將耗盡時(shí),可以動(dòng)態(tài)添加卷。只需要增加一臺(tái)或多臺(tái)服務(wù)器,并將它們配置為一個(gè)新的卷,這樣就擴(kuò)大了存儲(chǔ)系統(tǒng)的容量。
    FastDFS中的文件標(biāo)識(shí)分為兩個(gè)部分:卷名和文件名,二者缺一不可。
      FastDFS file upload
    上傳文件交互過程:
    1. client詢問tracker上傳到的storage,不需要附加參數(shù);
    2. tracker返回一臺(tái)可用的storage;
    3. client直接和storage通訊完成文件上傳。
    
    FastDFS file download
    下載文件交互過程:
    1. client詢問tracker下載文件的storage,參數(shù)為文件標(biāo)識(shí)(卷名和文件名);
    2. tracker返回一臺(tái)可用的storage;
    3. client直接和storage通訊完成文件下載。
    需要說明的是,client為使用FastDFS服務(wù)的調(diào)用方,client也應(yīng)該是一臺(tái)服務(wù)器,它對tracker和storage的調(diào)用均為服務(wù)器間的調(diào)用。
    google code地址:http://code.google.com/p/fastdfs/
    google code下載地址:http://code.google.com/p/fastdfs/downloads/list