FastDFS分布式文件系統(tǒng)

1.什么是FastDFS

FastDFS(Fast Distributed file system)是用c語言編寫的一款開源的分布式文件系統(tǒng)。FastDFS為互聯(lián)網(wǎng)量身定制,充分考慮了冗余備份、負(fù)載均衡、橫向擴(kuò)展等機制,并注重高可用、高性能等指標(biāo),使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)。

2.FastDFS架構(gòu)

FastDFS架構(gòu)包括 Tracker server和Storage server??蛻舳苏埱骉racker server進(jìn)行文件上傳、下載,通過Tracker server調(diào)度最終由Storage server完成文件上傳和下載。
Tracker server作用是負(fù)載均衡和調(diào)度,通過Tracker server在文件上傳時可以根據(jù)一些策略找到Storage server提供文件上傳服務(wù)??梢詫racker稱為追蹤服務(wù)器或調(diào)度服務(wù)器。
Storage server作用是文件存儲,客戶端上傳的文件最終存儲在Storage服務(wù)器上,Storage server沒有實現(xiàn)自己的文件系統(tǒng)而是利用操作系統(tǒng)的文件系統(tǒng)來管理文件??梢詫torage稱為存儲服務(wù)器。
如下圖:


image.png

Tracker 管理集群,收集信息,處理信息,為了保證高可用,可以搭建集群。
Storage 保存文件,分為很多組,組和組之間的數(shù)據(jù)不一樣,組內(nèi)成員數(shù)據(jù)是一樣的,保證數(shù)據(jù)的高可用,可以增加組,達(dá)到擴(kuò)容的效果。

3.文件上傳流程

文件上傳流程如下圖(時序圖):


image.png

客戶端上傳文件后存儲服務(wù)器將文件ID返回給客戶端,此文件ID用于以后訪問該文件的索引信息。文件索引信息包括:組名,虛擬磁盤路徑,數(shù)據(jù)兩級目錄,文件名。


image.png
  • 組名:文件上傳后所在的storage組名稱,在文件上傳成功后有storage服務(wù)器返回,需要客戶端自行保存。
  • 虛擬磁盤路徑:storage配置的虛擬路徑,與磁盤選項store_path*對應(yīng)。如果配置了store_path0則是M00,如果配置了store_path1則是M01,以此類推。
  • 數(shù)據(jù)兩級目錄:storage服務(wù)器在每個虛擬磁盤路徑下創(chuàng)建的兩級目錄,用于存儲數(shù)據(jù)文件。兩級目錄的范圍都是 00~FF
  • 文件名:與文件上傳時不同。是由存儲服務(wù)器根據(jù)特定信息生成,文件名包含:源存儲服務(wù)器IP地址、文件創(chuàng)建時間戳、文件大小、隨機數(shù)和文件拓展名等信息。

4.文件下載流程

文件下載流程如下圖:


image.png

5.架構(gòu)圖

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容