天天看點

FastDFS學習筆記(一)基礎介紹

1、分布式檔案系統簡介

       計算機通過檔案系統管理、存儲資料,而資訊爆炸時代中人們可以擷取的資料成指數倍的增長,單純通過增加硬碟個數來擴充計算機檔案系統的存儲容量的方式,在容量大小、容量增長速度、資料備份、資料安全等方面的表現都差強人意。分布式檔案系統可以有效解決資料的存儲和管理難題:将固定于某個地點的某個檔案系統,擴充到任意多個地點/多個檔案系統,衆多的節點組成一個檔案系統網絡。每個節點可以分布在不同的地點,通過網絡進行節點間的通信和資料傳輸。人們在使用分布式檔案系統時,無需關心資料是存儲在哪個節點上、或者是從哪個節點從擷取的,隻需要像使用本地檔案系統一樣管理和存儲檔案系統中的資料。

1.1   什麼是FastDFS

      FastDFS是用c語言編寫的一款開源的分布式檔案系統。FastDFS為網際網路量身定制,充分考慮了備援備份、負載均衡、線性擴容等機制,并注重高可用、高性能等名額,使用FastDFS很容易搭建一套高性能的檔案伺服器叢集提供檔案上傳、下載下傳等服務。

      FastDFS架構包括 Tracker server(跟蹤器)和Storage server(存儲器)。用戶端請求Tracker server進行檔案上傳、下載下傳,通過Trackerserver排程最終由Storage server完成檔案上傳和下載下傳。

     Trackerserver作用是負載均衡和排程,通過Trackerserver在檔案上傳時可以根據一些政策找到Storageserver提供檔案上傳服務。可以将tracker稱為追蹤伺服器或排程伺服器。

      Storageserver作用是檔案存儲,用戶端上傳的檔案最終存儲在Storage伺服器上,Storage server沒有實作自己的檔案系統而是利用作業系統 的檔案系統來管理檔案。可以将storage稱為存儲伺服器。

如下圖:

FastDFS學習筆記(一)基礎介紹

1.2  Tracker 叢集

FastDFS叢集中的Tracker server可以有多台,Trackerserver之間是互相平等關系同時提供服務,Trackerserver不存在單點故障。用戶端請求Trackerserver采用輪詢方式,如果請求的tracker無法提供服務則換另一個tracker。

1.3  Storage叢集

        Storage叢集采用了分組存儲方式。storage叢集由一個或多個組構成,叢集存儲總容量為叢集中所有組的存儲容量之和。一個組由一台或多台存儲伺服器組成,組内的Storage server之間是平等關系,不同組的Storageserver之間不會互相通信,同組内的Storageserver之間會互相連接配接進行檔案同步,進而保證同組内每個storage上的檔案完全一緻的。一個組的存儲容量為該組記憶體儲伺服器容量最小的那個,由此可見組記憶體儲伺服器的軟硬體配置最好是一緻的。

         采用分組存儲方式的好處是靈活、可控性較強。比如上傳檔案時,可以由用戶端直接指定上傳到的組也可以由tracker進行排程選擇。一個分組的存儲伺服器通路壓力較大時,可以在該組增加存儲伺服器來擴充服務能力(縱向擴容)。當系統容量不足時,可以增加組來擴充存儲容量(橫向擴容)。

1.4  Storage狀态收集

         Storage server會連接配接叢集中所有的Tracker server,定時向他們報告自己的狀态,包括磁盤剩餘空間、檔案同步狀況、檔案上傳下載下傳次數等統計資訊。

1.5  檔案上傳流程

FastDFS學習筆記(一)基礎介紹

 用戶端上傳檔案後存儲伺服器将檔案ID傳回給用戶端,此檔案ID用于以後通路該檔案的索引資訊。檔案索引資訊包括:組名,虛拟磁盤路徑,資料兩級目錄,檔案名。

 組名:檔案上傳後所在的storage組名稱,在檔案上傳成功後有storage伺服器傳回,需要用戶端自行儲存。

虛拟磁盤路徑:storage配置的虛拟路徑,與磁盤選項store_path*對應。如果配置了store_path0則是M00,如果配置了store_path1則是M01,以此類推。

資料兩級目錄:storage伺服器在每個虛拟磁盤路徑下建立的兩級目錄,用于存儲資料檔案。

檔案名:與檔案上傳時不同。是由存儲伺服器根據特定資訊生成,檔案名包含:源存儲伺服器IP位址、檔案建立時間戳、檔案大小、随機數和檔案拓展名等資訊。

1.6 檔案下載下傳流程

FastDFS學習筆記(一)基礎介紹

1.通過組名tracker能夠很快的定位到用戶端需要通路的存儲伺服器組是group1,并選擇合适的存儲伺服器提供用戶端通路。 

2.存儲伺服器根據“檔案存儲虛拟磁盤路徑”和“資料檔案兩級目錄”可以很快定位到檔案所在目錄,并根據檔案名找到用戶端需要通路的檔案。

繼續閱讀