自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式存儲FastDFS詳解

存儲 數(shù)據(jù)管理
我們在架構圖中發(fā)現(xiàn),Tracker 也是分布式部署,便于擴縮容。面對訪問激增的問題,可通過增加節(jié)點的方式應對。

今天主要介紹FastDFS分布式文件存儲。

圖片圖片

場景切入

在大型網(wǎng)站中由于用戶數(shù)和存儲內(nèi)容較多,存在大容量文件存儲的場景,例如圖片、視頻、日志、文件等。如何保證這些資源的高可用性和快速訪問,從而提升用戶體驗和網(wǎng)站性能?

圖片圖片

分布式存儲的由來

我們知道,根據(jù)業(yè)務體量的增大,一般分布式的設計是從單體應用演進開始的。最初,在單體項目中,

圖片圖片

早期用戶量可能比較少,整個系統(tǒng)的一個架構:服務代碼跟我們的文件資源信息都存儲在了一個服務器上面。

隨著用戶量越來越多,那么存儲文件越來越多,本身服務器可能就只有比如:100G的磁盤空間,文件服務器里面存儲的東西越來越多。那么,它會影響到整個服務器的資源的一個分配。

有人想,把我們這個文件服務器單獨的給拆出來,作為一個單獨服務器

圖片圖片

上邊實現(xiàn)了資源文件和代碼的解耦。但是資源文件的存儲量美譽得到根本性的解決。

于是,我們就需要拓寬服務器,我拓寬到10臺,20臺。。。其實就是要說的這個分布式文件存儲系統(tǒng)。

圖片圖片

常見的分布式存儲框架

圖片圖片

本章重點介紹FastDFS。

FastDFS 分布式存儲

簡介

官方介紹:

圖片圖片

FastDFS是一個開源的分布式文件系統(tǒng),特別適合于大容量文件存儲的場景,例如圖片、視頻、日志、文件等。是一個開源的高性能分布式文件系統(tǒng),專為解決大容量存儲和負載均衡問題而設計。

中文官網(wǎng)[1]英文官網(wǎng)[2]學習地址[3]下載地址[4]源碼包[5]性能測試[6]Gitee主頁[7]

它具備以下核心功能:

  1. 文件存儲:能夠存儲大量數(shù)據(jù)文件。
  2. 文件同步:確保文件在系統(tǒng)內(nèi)的多個副本之間保持一致。
  3. 文件訪問:支持用戶上傳和下載文件。

FastDFS 功能特性

  • 分組存儲,簡單靈活;
  • 對等結構,不存在單點;
  • 文件ID由FastDFS生成,作為文件訪問憑證。
  • 大、中、小文件均可以很好支持,可以存儲海量小文件;
  • 一臺storage支持多塊磁盤,支持單盤數(shù)據(jù)恢復;
  • 提供了nginx擴展模塊,可以和nginx無縫銜接;
  • 支持多線程方式上傳和下載文件,支持斷點續(xù)傳;
  • 存儲服務器上可以保存文件附加屬性。

FastDFS 架構及工作原理

架構設計:

圖片圖片

工作原理:

  • Client 客戶端:實際項目的訪問客戶端。
  • Tracker Server: 跟蹤服務器,主要做調(diào)度工作,在訪問上起負載均衡的作用。在內(nèi)存中記錄集群中group和storage server的狀態(tài)信息,是連接client和Storage server的樞紐。
  • Storage Server: 存儲服務器,文件和文件屬性(meta data)都保存到存儲服務器上。其功能包括:
  1. 文件存儲:保存上傳的文件數(shù)據(jù)。
  2. 文件同步:在多個存儲節(jié)點之間同步文件,以保證數(shù)據(jù)一致性。
  3. 提供文件訪問接口:允許用戶通過API進行文件操作。
  4. 管理元數(shù)據(jù):存儲文件的相關屬性,以鍵值對的形式,例如圖像的寬度可以表示為 width=1024。

問題思考

如何上傳文件?

圖片圖片

上傳文件過程描述:

  1. 客戶端需要上傳或下載文件,向FastDFS系統(tǒng)發(fā)起請求。
  2. 連接到FastDFS的跟蹤器服務器。跟蹤器負責調(diào)度和負載均衡。
  3. 跟蹤器接收到客戶端的請求后,會根據(jù)當前的負載情況和存儲策略,選擇一個合適的存儲服務器。
  4. 跟蹤器將所選存儲服務器的IP地址和端口號發(fā)送給客戶端。
  5. 客戶端根據(jù)跟蹤器提供的IP地址和端口號,直接與選定的存儲服務器建立連接。
  6. 客戶端將文件內(nèi)容和元數(shù)據(jù)發(fā)送給存儲服務器。元數(shù)據(jù)可能包括文件卷名(volume)和文件名等信息。
  7. 存儲服務器接收到文件后,將其保存在本地磁盤上,并根據(jù)FastDFS的配置創(chuàng)建多個副本,可能在同一個存儲組內(nèi)的其他服務器上。
  8. 文件存儲完成后,存儲服務器會向客戶端發(fā)送響應,確認文件上傳成功或提供下載鏈接。
  9. 客戶端收到存儲服務器的響應后,完成文件上傳或下載操作。

如何下載文件?

圖片圖片

文件下載過程描述:

  1. 客戶端想要獲取存儲在FastDFS系統(tǒng)中的文件,向系統(tǒng)發(fā)起下載請求。
  2. 發(fā)送請求到FastDFS的跟蹤器服務器。跟蹤器負責管理文件的元數(shù)據(jù),并知道文件存儲的位置。
  3. 跟蹤器接收到客戶端的請求后,根據(jù)文件的卷名(volume name)和文件名(filename)查找文件存儲信息。
  4. 跟蹤器確定文件所在的存儲服務器,并將該服務器的IP地址和端口號返回給客戶端。
  5. 客戶端使用跟蹤器返回的IP地址和端口號,直接與存儲服務器建立連接。
  6. 客戶端向存儲服務器發(fā)送文件下載請求,包括卷名和文件名。
  7. 存儲服務器接收到請求后,根據(jù)提供的卷名和文件名檢索文件。
  8. 一旦找到文件,存儲服務器將文件內(nèi)容發(fā)送回客戶端。
  9. 客戶端接收到文件內(nèi)容,下載流程完成。

如何保證高可用?

FastDFS設計為一個多副本分布式文件系統(tǒng)。多副本機制是FastDFS保證數(shù)據(jù)可靠性和容錯能力的關鍵。

圖片圖片

幾個關鍵點:

  • 至少有一個副本,或者多個。
  • 文件和文件副本位于同一個組(Group)或者叫卷(Volume)
  • 不同卷之間有效的資源隔離
  • 文件和文件副本位于不同的機器上,如圖:副本i,副本ii...位于不同的主機上,對應不同的ip和port
  • 同步機制:同步和異步兩種方式
  • 自動副本同步: 當向存儲組添加新的存儲服務器時,現(xiàn)有文件的副本會自動同步到新服務器上。

通過以上設計提高容錯能力和單點故障問題,保證高可用。

如何解決性能瓶頸?

我們在架構圖中發(fā)現(xiàn),Tracker 也是分布式部署,便于擴縮容。面對訪問激增的問題,可通過增加節(jié)點的方式應對。

圖片圖片

幾個關鍵點:

  1. 通過增加Tracker服務器的數(shù)量,可以分擔請求調(diào)度和負載均衡的任務,從而提高系統(tǒng)的整體性能。
  2. 通過增加更多的存儲服務器或存儲卷來擴展存儲容量,減少單個服務器的負載。
  3. 根據(jù)業(yè)務需求選擇合適的同步策略,權衡同步復制的性能開銷和異步復制的延遲。

總結

文章主要介紹分布式存儲FastDFS 結構設計和原理和使用過程中的一些問題思考。

使用過程中FastDFS幾個關鍵特性的優(yōu)缺點對比:

特性

優(yōu)點

缺點

架構設計

易于擴展、負載均衡

同步延遲

冗余備份

支持在線擴容

存儲空間利用率不高

高性能

C語言編寫,執(zhí)行效率高

單點性能瓶頸

內(nèi)存管理

- 內(nèi)存零拷貝,減少系統(tǒng)開銷

- 對內(nèi)存要求較高

責任編輯:武曉燕 來源: 碼易有道
相關推薦

2019-10-10 09:16:34

Zookeeper架構分布式

2018-01-18 17:14:58

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

2017-10-27 08:40:44

分布式存儲剪枝系統(tǒng)

2012-05-10 14:04:07

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

2012-10-09 16:43:47

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

2018-08-02 08:42:57

分布式存儲Ceph

2025-01-26 11:54:39

分布式存儲系統(tǒng)

2015-05-12 13:03:54

開源分布式存儲HDFS

2010-03-24 17:07:52

無線分布式系統(tǒng)

2018-02-22 08:42:04

分布式存儲安全

2019-07-05 15:01:32

區(qū)塊鏈系統(tǒng)分布式存儲

2017-10-17 08:33:31

存儲系統(tǒng)分布式

2017-01-10 16:18:26

分布式存儲建設

2018-01-02 20:00:28

數(shù)據(jù)庫MySQL分布式存儲

2017-04-14 09:48:25

分布式存儲系統(tǒng)

2018-10-09 10:45:40

2012-10-11 14:03:56

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

2019-01-28 11:03:03

NginxFastDFS服務器

2012-10-11 14:31:57

FastDFSMogileFS

2010-09-10 08:54:02

點贊
收藏

51CTO技術棧公眾號