fastdfs tracker storage工作原理

2020-12-01 IT程式設計師alian

fastdfs

FastDFS是一個開源的輕量級分布式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件為載體的在線服務,如相冊網站、視頻網站等等。

FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要做調度工作,在訪問上起負載均衡的作用。

存儲節 點存儲文件,完成文件管理的所有功能:存儲、同步和提供存取接口,FastDFS同時對文件的metadata進行管理。所謂文件的meta data就是文件的相關屬性,以鍵值對(key value pair)方式表示,如:width=1024,其中的key為width,value為1024。文件metadata是文件屬性列表,可以包含多個鍵值對。

跟蹤器和存儲節點都可以由一臺或多臺伺服器構成。跟蹤器和存儲節點中的伺服器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有伺服器都是對等的,可以根據伺服器的壓力情況隨時增加或減少。

為了支持大容量,存儲節點(伺服器)採用了分卷(或分組)的組織方式。存儲系統由一個或多個卷組成,卷與卷之間的文件是相互獨立的,所有卷的文件容量累加就是整個存儲系統中的文件容量。一個卷可以由一臺或多臺存儲伺服器組成,一個卷下的存儲伺服器中的文件都是相同的,卷中的多臺存儲伺服器起到了冗餘備份和負載均衡的作用。

在卷中增加伺服器時,同步已有的文件由系統自動完成,同步完成後,系統自動將新增伺服器切換到線上提供服務。

當存儲空間不足或即將耗盡時,可以動態添加卷。只需要增加一臺或多臺伺服器,並將它們配置為一個新的卷,這樣就擴大了存儲系統的容量。

FastDFS中的文件標識分為兩個部分:卷名和文件名,二者缺一不可。

FastDFS file upload

上傳文件交互過程:

1. client詢問tracker上傳到的storage,不需要附加參數;

2. tracker返回一臺可用的storage;

3. client直接和storage通訊完成文件上傳。

FastDFS file download

下載文件交互過程:

1. client詢問tracker下載文件的storage,參數為文件標識(卷名和文件名);

2. tracker返回一臺可用的storage;

3. client直接和storage通訊完成文件下載。

group0/M00/00/02/Cs8b8lFJIIyAH841AAAbpQt7xVI4715674

組名:group0 磁碟: M00 目錄:00/02 文件名:Cs8b8lFJIIyAH841AAAbpQt7xVI4715674

文件名包含的信息: 採用Base64編碼, 包含的欄位包括 : 源storage server Ip 地址 文件創建時間 文件大小 文件CRC32效驗碼 隨機數

需要說明的是,client為使用FastDFS服務的調用方,client也應該是一臺伺服器,它對tracker和storage的調用均為伺服器間的調用。

FastDFS 同步機制說明:

tracker server會在內存中保存storage分組及各個組下的storage server,並將連接過自己的storage server及其分組保存到文件中,以便下次重啟服務時能直接從本地磁碟中獲得storage相關信息。storage server會在內存中記錄本組的所有伺服器,並將伺服器信息記錄到文件中。tracker server和storage server之間相互同步storage server列表:

1. 如果一個組內增加了新的storage

server或者storage server的狀態發生了改變,tracker server都會將storage server列表同步給該組內的所有storage server。以新增storage server為例,因為新加入的storage

server主動連接tracker server,tracker server發現有新的storage server加入,就會將該組內所有的storage server返回給新加入的storage server,並重新將該組的storage server列表返回給該組內的其他storage server;

2. 如果新增加一臺tracker server,storage server連接該tracker server,發現該tracker server返回的本組storage server列表比本機記錄的要少,就會將該tracker server上沒有的storage server同步給該tracker server。同一組內的storage server之間是對等的,文件上傳、刪除等操作可以在任意一臺storage server上進行。文件同步只在同組內的storage server之間進行,採用push方式,即源伺服器同步給目標伺服器。以文件上傳為例,假設一個組內有3臺storage server A、B和C,文件F上傳到伺服器B,由B將文件F同步到其餘的兩臺伺服器A和C。我們不妨把文件F上傳到伺服器B的操作為源頭操作,在伺服器B上的F文件為源頭數據;文件F被同步到伺服器A和C的操作為備份操作,在A和C上的F文件為備份數據。同步規則總結如下:

1. 只在本組內的storage server之間進行同步;

2. 源頭數據才需要同步,備份數據不需要再次同步,否則就構成環路了;

3. 上述第二條規則有個例外,就是新增加一臺storage server時,由已有的一臺storage server將已有的所有數據(包括源頭數據和備份數據)同步給該新增伺服器。storage server有7個狀態,如下:

# FDFS_STORAGE_STATUS_INIT :初始化,尚未得到同步已有數據的源伺服器

# FDFS_STORAGE_STATUS_WAIT_SYNC :等待同步,已得到同步已有數據的源伺服器

# FDFS_STORAGE_STATUS_SYNCING :同步中

# FDFS_STORAGE_STATUS_DELETED :已刪除,該伺服器從本組中摘除(註:本狀態的功能尚未實現)

# FDFS_STORAGE_STATUS_OFFLINE :離線

# FDFS_STORAGE_STATUS_ONLINE :在線,尚不能提供服務

# FDFS_STORAGE_STATUS_ACTIVE :在線,可以提供服務

當storage

server的狀態為FDFS_STORAGE_STATUS_ONLINE時,當該storage server向tracker server發起一次heart beat時,tracker server將其狀態更改為FDFS_STORAGE_STATUS_ACTIVE。

組內新增加一臺storage server A時,由系統自動完成已有數據同步,處理邏輯如下:

1. storage server A連接tracker server,tracker server將storage server A的狀態設置為FDFS_STORAGE_STATUS_INIT。storage server A詢問追加同步的源伺服器和追加同步截至時間點,如果該組內只有storage server A或該組內已成功上傳的文件數為0,則沒有數據需要同步,storage server A就可以提供在線服務,此時tracker將其狀態設置為FDFS_STORAGE_STATUS_ONLINE,否則tracker

server將其狀態設置為FDFS_STORAGE_STATUS_WAIT_SYNC,進入第二步的處理;

2. 假設tracker

server分配向storage server A同步已有數據的源storage server為B。同組的storage server和tracker server通訊得知新增了storage server A,將啟動同步線程,並向tracker server詢問向storage server A追加同步的源伺服器和截至時間點。storage server B將把截至時間點之前的所有數據同步給storage server A;而其餘的storage server從截至時間點之後進行正常同步,只把源頭數據同步給storage server A。到了截至時間點之後,storage server B對storage server A的同步將由追加同步切換為正常同步,只同步源頭數據;

3. storage server

B向storage server A同步完所有數據,暫時沒有數據要同步時,storage server B請求tracker server將storage server A的狀態設置為FDFS_STORAGE_STATUS_ONLINE;

4 當storage server A向tracker server發起heart beat時,tracker server將其狀態更改為FDFS_STORAGE_STATUS_ACTIVE。

FastDFS原理

存儲節點採用了分組(group)的方式。存儲系統由一個或多個group組成,group與group之間的文件是相互獨立的,所有group的文件容量累加就是整個存儲系統中的文件容量。一個group可以由一臺或多臺存儲伺服器組成,一個group下的存儲伺服器中的文件都是相同的,group中的多臺存儲伺服器起到了冗餘備份和負載均衡的作用(一個組的存儲容量為該組內存儲伺服器容量最小的那個,不同組的Storage server之間不會相互通信,同組內的Storage server之間會相互連接進行文件同步)。

在group中增加伺服器時,同步已有的文件由系統自動完成,同步完成後,系統自動將新增伺服器切換到線上提供服務。

當存儲空間不足或即將耗盡時,可以動態添加group。只需要增加一臺或多臺伺服器,並將它們配置為一個新的group,這樣就擴大了存儲系統的容量。

FastDFS只有兩個角色:Tracker server和Storage server。Tracker server作為中心結點,其主要作用是負載均衡和調度。Tracker server在內存中記錄分組和Storage server的狀態等信息,不記錄文件索引信息,佔用的內存量很少。另外,客戶端(應用)和Storage server訪問Tracker server時,Tracker server掃描內存中的分組和Storage server信息,然後給出應答。由此可以看出Tracker server非常輕量化,不會成為系統瓶頸。

FastDFS中的Storage server在其他文件系統中通常稱作Trunk server或Data server。Storage server直接利用OS的文件系統存儲文件。FastDFS不會對文件進行分塊存儲,客戶端上傳的文件和Storage server上的文件一一對應(FastDFS中的文件標識分為兩個部分:組名和文件名,二者缺一不可)。

相關焦點

  • Calorie Tracker 減肥健身的能量消耗隨時掌握
    你還可以在我們的工作和活動的資料庫中記錄個人的能量消耗量。無論你是減肥或增加體重,Tracker將幫助你實現你的飲食和營養目標。該程序的附加功能包括網上的主題和專家問答、論壇等。  年齡限制:4歲以上  系統要求: 與 iPhone、iPod touch、iPad 兼容, 需要 iOS 3.1.3 或更高版本    下載連結:http://itunes.apple.com/cn/app/calorie-tracker-livestrong/id295305241?
  • 快照在storage foundation中的應用介紹
    鏡像物理拷貝快照和鏡像的工作方式是一樣的,都是將某個目標數據源的內容完整的拷貝到另外的地方,但是快照是在某個時刻點的拷貝,過後目標數據的變化將不再被記錄,而鏡像是時時刻刻都要保證目標數據和拷貝數據的一致性。兩者的目的也不同,快照的目標是能夠在系統發生錯誤的時候恢復到之前的,而鏡像的目的是為了保證數據冗餘,在數據源發生故障的時候迅速恢復。
  • Hydrogen storage gets real
    The two main classes of solid-state hydrogen storage materials sit either side of that number.The forklifts use a nickel-aluminium alloy hydrogen storage material called Hy-Stor 208 in their fuel tanks.
  • 關於升降桌的電動升降柱,工作原理是什麼?
    主要組成就是升降柱的主體、液體壓力傳動站以及自動監控站等三部分組成的,那麼了解了構成部分,其工作的原理又是什麼呢?繼續往下看。  工作原理  液壓油肯定需要在一定的壓力之下才能進行工作,一般情況下是通過壓力表的示數來決定壓力的頻率的。
  • Ammonia Storage in a Metal–Organic Framework
    UK, and colleagues have found that a metal–organic framework, MFM-300(Al), a porous solid, not only effectively filters harmful nitrogen dioxide gas, but also has outstanding capabilities for ammonia storage
  • 真空泵的工作原理?真空泵工作原理解析
    下面一起看下真空泵工作原理解析吧。真空泵工作原理解析——種類隨著真空應用的發展,真空泵的種類已發展了很多種,其抽速從每秒零點幾升到每秒幾十萬、數百萬升。真空泵工作原理解析——工作原理1)、水環式真空泵工作原理水環式真空泵葉片的葉輪偏心地裝在圓柱形泵殼內。
  • 靜電除塵器工作原理膜片工作原理是什麼?
    靜電除塵器工作原理膜片工作原理是什麼? ,「nn6bdgn」  九正通明除塵專業生產靜電除塵器工作原理,品種齊全,質量管理嚴格,質優價廉,速速來電諮詢!    靜電除塵器工作原理壽數實驗,工廠一般歸於型式實驗項目,切當地說我國還沒有電磁脈衝閥的專業標準,因此選用電磁脈衝閥廠家時慎重。
  • 聲光鎖模器的工作原理及應用
    -07-24 09:58:04 來源: 新特光電 舉報   聲光鎖模器的工作原理
  • 熱導式氣體傳感器工作原理以及優缺點解析大全
    熱導式氣體傳感器工作原理  導熱氣敏材料根據不同可燃性氣體與空氣導熱係數的差異來測量氣體濃度。  熱導式氣體傳感器的優缺點  熱導式氣體傳感器是最早用於氣體檢測的氣體傳感器,其具有以下優點:  ◆ 工作穩定性好,使用壽命長,無催化劑老化問題,穩定性和可靠性高
  • 電感減震器工作原理,電感減震器工作原理詳解
    導讀:電感減震器工作原理,電感減震器工作原理詳解如果汽車失去了減震器是什麼滋味?那我們完全可以聯想到古代出行工具「馬車」帶來的別樣震感。汽車減震器是為了改善汽車行駛的平順性和舒適性,對於需要經常跑崎嶇不平的山路的司機朋友來說,減震器就是非常重要的存在了。
  • 鎮流器工作原理
    導讀:本文主要介紹的是鎮流器工作原理,有興趣的童鞋們快來看一下吧~~很漲姿勢的哦~~本文引用地址:http://www.eepw.com.cn/article/276334.htm
  • 逆變器工作原理
    導讀:整流器用於將交流電轉換為直流電,而逆變器剛好完成與其相反的功能,用於將直流電轉換為交流電,那麼逆變器工作原理是什麼呢?與整流器是否剛好相反呢?
  • 電晶體工作原理
    導讀:電晶體,只是對所有以半導體材料為基礎的元件的統稱,那麼問題來了,電晶體工作原理是什麼呢?電晶體根據使用材料的不同可分為矽材料電晶體和鍺材料電晶體;根據極性的不同可分為NPN型電晶體和PNP型電晶體;根據結構和製造工藝的不同可分為擴散型電晶體、合金型電晶體和平面型電晶體;其還可根據電流容量的不同、工作頻率的不同、封裝結構的不同等分類方式分為不同的種類。但電晶體多指晶體三極體,主要分為雙極性電晶體(BJT)和場效應電晶體(FET),接下來我們就以BJT和FET為例來講述電晶體的工作原理。
  • 電磁閥工作原理
    答案就隱藏在文中~本文引用地址:http://www.eepw.com.cn/article/274010.htm一、電磁閥工作原理- -簡介  電磁閥,英文名稱為Electromagnetic value,是一種用於控制流體的自動化基礎元件,常用於工業控制系統中,來調整介質的方向、流量、速度等參數,電磁閥具有高精度、靈活性好、型號多
  • 貼片機工作原理
    導讀:貼片機,顧名思義,就是將一種元器件粘貼到一種器械上的設備,但是貼片機的工作原理是怎麼樣的呢?貼片機工作原理--簡介  貼片機,又稱「貼裝機」、「表面貼裝系統」,它配置在點膠機或絲網印刷機之後,是通過移動貼裝頭把表面貼裝元器件準確地放置PCB焊盤上的一種設備。它是用來實現高速、高精度地貼放元器件的設備,是整個SMI、生產中最關鍵、最複雜的設備。主要分為手動和全自動兩種。
  • 發電機工作原理
    四、發電機工作原理  在柴油發電機中,經空氣濾清器過濾產生潔淨空氣,由噴油嘴噴射出高壓霧化柴油,這兩種氣體在汽缸內進行充分的混合,活塞向上運動擠壓該混合氣體柴油機就是利用這種原理驅動發電機進行運作,將柴油的能量轉化為電能。  汽油發電機與柴油發電機的工作原理類似,只是噴油嘴噴射出的不是高壓霧化柴油,而是汽油。汽油機也是通過推動活塞上下運動驅動發電機進行運作,將汽油的能量轉化為電能。
  • 隔膜泵工作原理,隔膜泵原理圖
    隔膜泵工作原理隔膜泵工作時,曲柄連杆機構在電動機的驅動下,帶動柱塞作往復運動,柱塞的運動通過液缸內的工作液體(一般為油)而傳到隔膜,使隔膜來回鼓動。隔膜泵工作原理圖氣動隔膜泵工作原理氣動隔膜泵缸頭部分主要由一隔膜片將被輸送的液體和工作液體分開,當隔膜片向傳動機構一邊運動,泵缸內工作時為負壓而吸入液體,當隔膜片向另一邊運動時,則排出液體。
  • 編碼器工作原理
    導讀:編碼器,就是一種可用於編碼的儀器,那麼問題來了,編碼器工作原理是什麼呢?↓↓↓本文引用地址:http://www.eepw.com.cn/article/272920.htm一、編碼器工作原理- -簡介  編碼器,英文名稱為encoder,是一種轉換信號形式的設備。編碼器將角位移或直線位移轉換成電信號,我們將前者稱為碼盤,後者稱為碼尺。編碼器按工作原理不同可分為增量式編碼器和絕對式編碼器。
  • 變流器工作原理
    導讀:本文主要介紹的是變流器的工作原理。變流器,顧名思義,就是使某些電量或特性發生變化的電氣設備,下面就隨小編一起學習一下變流器的工作原理吧~~~本文引用地址:http://www.eepw.com.cn/article/273784.htm  變流器是使電源系統的電壓、頻率、相數和其他電量或特性發生變化的電器設備。
  • 電動機工作原理
    電動機工作原理是磁場對電流受力的作用,使電動機轉動。通常電動機的作功部分作旋轉運動,這種電動機稱為轉子電動機;也有作直線運動的,稱為直線電動機。3.電動機工作原理  直流電動機採用八角形全疊片結構,不僅空間利用率高,而且當採用靜止整流器供電時,能承受脈動電流和快速的負載電流變化。