dfs(distributed file system):分布式檔案系統。
fastdfs由跟蹤伺服器(trackerserver)、儲存伺服器(storage server)和客戶機(client)構成。
跟蹤伺服器 trackerserver:
主要起到排程工作,起到均衡作用,負責管理所有的storage server 和 group ,每個storage 在啟動之後會自動連線tracker ,告知自己所署的group的資訊,並保持週期性心跳,tranker 會根據storger的心跳資訊,建立group -> storage serverlist 【因為乙個group 可以由多個storageserver構成】,由於storage會保持週期性的心跳,所以tracker 需要管理的元資訊就很少,會全部儲存在記憶體中,本身並不需要持久化任何資料,這樣的話,就使得tracker非常容易擴充套件,僅僅增加tracker 即可擴充套件為 tracker cluster 集群服務。cluster裡的每個tracker 之間是完全對等的,所有的tracker都接收storage的心跳資訊,生成元資料資訊來提供讀寫服務。
儲存伺服器 storageserver:
主要提供容量和備份服務,以group為單位,每個group 內有多個storage server,資料互相備份,當乙個storage server損壞時,可以通過其他的storage server進行恢復。
以group 為單位組織儲存能方便的進行應用隔離、負載均衡、副本數定製【副本數即為storage server 的數量】,比如將不同的應用資料儲存到不同的group就能實現簡單的應用資料隔離,同時可以根據應用不同的訪問特性來分配不同的group,做到負載均衡。
客戶端 client:
此時,這個客戶端並不是使用者所在的客戶端,而是部署了我們專案的伺服器,每個客戶端(搭載專案的伺服器)都需要安裝nginx,客戶端(搭載專案的伺服器)和檔案儲存伺服器之間的資料交流也是伺服器之間的交流。
ⅰ、上傳
0:storage server會定時向tracker server 傳送自己的group以及資料夾資訊。使得tracker server 會保留最近的元資料。
1:普通使用者向client(伺服器)傳送請求。
2:client(伺服器)會向trackerserver傳送請求儲存。
3:trackerserver 會向client反饋乙個不是太忙的storage server 資訊。
4:client(伺服器)收到訊息,請求storageserver。
5:storage server儲存資料,並反饋給client乙個id,這個id也就是儲存檔案的路徑。
(路徑分為組名、資料夾、檔名和字尾,也就是後面用來訪問此檔案的方式)
模擬對話:
storageserver:tracker老哥,我還活著,你要記得我啊!
使用者1:我要上傳個電腦啊,伺服器!(哇,有點過分了啊!)
client(伺服器):好勒,東西給我,我幫你把東西存起來。
client(伺服器):trackerserver,我要存一台電腦,給我找乙個倉庫。
trackerserver:老鐵等一下,我給你找乙個地大一點的倉庫,要不就去a小區b棟302倉庫吧。
client(伺服器):嘿,storageserver,吶,這個是我的東西。
storageserver:ojbk,東西放好了,給你個編號(9827),以後憑著編號來找你的東西啊!
client(伺服器):把a小區/b棟/302/9527記錄到賬本上。
a小區:就是對應的groupa
b棟:就是對應的storage server
302:就是storage server下的資料夾
9527:就是檔名
電腦:就是檔案字尾名
賬本:就是資料庫。
FastDFS 簡介和原理
一 什麼是fastdfs?dfs distributed file system 分布式檔案系統。二 fastdfs由什麼組成?fastdfs由跟蹤伺服器 trackerserver 儲存伺服器 storage server 和客戶機 client 構成。跟蹤伺服器 trackerserver 主要...
FastDFS原理系列文章
fastdfs 原理系列文章 基於fastdfs 5.03 5.04 2014 12 19 一 概述 fastdfs 文件極少,僅僅能找到一些寬泛的架構文件,以及 chinaunix 論壇上作者對提問的一些回答。對於要將 fastdfs 應用到生產系統來說,這點了解絕對是不夠的。這段時間研究 fas...
FastDFS簡介以及linux配置
一 簡介 fastdfs包含兩個角色 二 環境搭建 單機版 1.轉殖虛擬器 vi etc sysconfig network scripts ifcfg eth0 刪除兩行 uuid hwaddr 2.安裝 tar zxvf v1.0.36.tar.gz cd libfastcommon 1.0.3...