fastDFS介紹

1 什么是分布式文件系統(tǒng)

1.1 技術(shù)應(yīng)用場景

優(yōu)酷擁有大量優(yōu)質(zhì)的視頻教程,并且免費提供給用戶去下載,文件太多如何高效存儲卷要?用戶訪問量大如何保證
下載速度?分布式文件系統(tǒng)將解決這些問題隔显。
分布式文件系統(tǒng)解決了海量文件存儲及傳輸訪問的瓶頸問題却妨,對海量視頻的管理饵逐、對海量圖片的管理等括眠。


image.png

1.2 什么是分布式文件系統(tǒng)

1.2.1什么是文件系統(tǒng)
image.png

總結(jié):文件系統(tǒng)是負責(zé)管理和存儲文件的系統(tǒng)軟件,它是操作系統(tǒng)和硬件驅(qū)動之間的橋梁倍权,操作系統(tǒng)通過文件系統(tǒng)提供的接口去存取文件掷豺,用戶通過操作系統(tǒng)訪問磁盤上的文件。如下圖:


image.png

常見的文件系統(tǒng):FAT16/FAT32薄声、NTFS当船、HFS、UFS默辨、APFS德频、XFS、Ext4等 缩幸。

1.2.2什么是分布式文件系統(tǒng)
image.png

為什么會有分布文件系統(tǒng)呢壹置?
分布式文件系統(tǒng)是面對互聯(lián)網(wǎng)的需求而產(chǎn)生,互聯(lián)網(wǎng)時代對海量數(shù)據(jù)如何存儲表谊?靠簡單的增加硬盤的個數(shù)已經(jīng)滿足不了我們的要求钞护,因為硬盤傳輸速度有限但是數(shù)據(jù)在急劇增長,另外我們還要要做好數(shù)據(jù)備份爆办、數(shù)據(jù)安全等难咕。
采用分布式文件系統(tǒng)可以將多個地點的文件系統(tǒng)通過網(wǎng)絡(luò)連接起來,組成一個文件系統(tǒng)網(wǎng)絡(luò)距辆,結(jié)點之間通過網(wǎng)絡(luò)進行通信余佃,一臺文件系統(tǒng)的存儲和傳輸能力有限,我們讓文件在多臺計算機上存儲跨算,通過多臺計算共同傳輸爆土。如下圖:

image.png

好處:
1、一臺計算機的文件系統(tǒng)處理能力擴充到多臺計算機同時處理漂彤。
2雾消、一臺計算機掛了還有另外副本計算機提供數(shù)據(jù)灾搏。
3、每臺計算機可以放在不同的地域立润,這樣用戶就可以就近訪問狂窑,提高訪問速度。

1.3 主流的分布式文件系統(tǒng)

1桑腮、NFS
image.png

image.png

1)在客戶端上映射NFS服務(wù)器的驅(qū)動器泉哈。
2)客戶端通過網(wǎng)絡(luò)訪問NFS服務(wù)器的硬盤完全透明。

2破讨、GFS
image.png
image.png

1)GFS采用主從結(jié)構(gòu)丛晦,一個GFS集群由一個master和大量的chunkserver組成。
2)master存儲了數(shù)據(jù)文件的元數(shù)據(jù)提陶,一個文件被分成了若干塊存儲在多個chunkserver中烫沙。
3)用戶從master中獲取數(shù)據(jù)元信息,從chunkserver存儲數(shù)據(jù)隙笆。

3锌蓄、HDSF
image.png

image.png

1)HDFS采用主從結(jié)構(gòu),一個HDFS集群由一個名稱結(jié)點和若干數(shù)據(jù)結(jié)點組成撑柔。名稱結(jié)點存儲數(shù)據(jù)的元信息瘸爽,一個完整的數(shù)據(jù)文件分成若干塊存儲在數(shù)據(jù)結(jié)點。
2)客戶端從名稱結(jié)點獲取數(shù)據(jù)的元信息及數(shù)據(jù)分塊的信息铅忿,得到信息客戶端即可從數(shù)據(jù)塊來存取數(shù)據(jù)剪决。

1.4分布式文件服務(wù)提供商

1)阿里的OSS


image.png

2)七牛云存儲
3)百度云存儲

2 什么是fastDFS

2.1 fastDSF介紹

FastDFS是用c語言編寫的一款開源的分布式文件系統(tǒng),它是由淘寶資深架構(gòu)師余慶編寫并開源檀训。FastDFS專為互聯(lián)網(wǎng)量身定制柑潦,充分考慮了冗余備份、負載均衡肢扯、線性擴容等機制妒茬,并注重高可用、高性能等指標蔚晨,使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳乍钻、下載等服務(wù)。

為什么要使用fastDFS呢铭腕?

上邊介紹的NFS银择、GFS都是通用的分布式文件系統(tǒng),通用的分布式文件系統(tǒng)的優(yōu)點的是開發(fā)體驗好累舷,但是系統(tǒng)復(fù)雜性高浩考、性能一般,而專用的分布式文件系統(tǒng)雖然開發(fā)體驗性差被盈,但是系統(tǒng)復(fù)雜性低并且性能高析孽。fastDFS非常適合存儲圖片等那些小文件搭伤,fastDFS不對文件進行分塊,所以它就沒有分塊合并的開銷袜瞬,fastDFS網(wǎng)絡(luò)通信采用socket怜俐,通信速度很快。

2.2 fastDSF工作原理
2.2.1 fastDSF架構(gòu)

FastDFS架構(gòu)包括 Tracker server和Storageserver邓尤∨睦穑客戶端請求Tracker server進行文件上傳、下載汞扎,通過Tracker server調(diào)度最終由Storage server完成文件上傳和下載季稳。

image.png

1)Tracker
Tracker Server作用是負載均衡和調(diào)度,通過Tracker server在文件上傳時可以根據(jù)一些策略找到Storage server提供文件上傳服務(wù)澈魄【笆螅可以將tracker稱為追蹤服務(wù)器或調(diào)度服務(wù)器。

FastDFS集群中的Tracker server可以有多臺一忱,Tracker server之間是相互平等關(guān)系同時提供服務(wù)莲蜘,Tracker server不存在單點故障×庇客戶端請求Tracker server采用輪詢方式,如果請求的tracker無法提供服務(wù)則換另一個tracker逐哈。

2)Storage
Storage Server作用是文件存儲芬迄,客戶端上傳的文件最終存儲在Storage服務(wù)器上,Storage server沒有實現(xiàn)自己的文件系統(tǒng)而是使用操作系統(tǒng)的文件系統(tǒng)來管理文件昂秃≠魇幔可以將storage稱為存儲服務(wù)器。

Storage集群采用了分組存儲方式肠骆。storage集群由一個或多個組構(gòu)成算途,集群存儲總?cè)萘繛榧褐兴薪M的存儲容量之和。一個組由一臺或多臺存儲服務(wù)器組成蚀腿,組內(nèi)的Storage server之間是平等關(guān)系嘴瓤,不同組的Storage server之間不會相互通信,同組內(nèi)的Storage server之間會相互連接進行文件同步莉钙,從而保證同組內(nèi)每個storage上的文件完全一致的廓脆。一個組的存儲容量為該組內(nèi)的存儲服務(wù)器容量最小的那個,由此可見組內(nèi)存儲服務(wù)器的軟硬件配置最好是一致的磁玉。

采用分組存儲方式的好處是靈活停忿、可控性較強。比如上傳文件時蚊伞,可以由客戶端直接指定上傳到的組也可以由tracker進行調(diào)度選擇席赂。一個分組的存儲服務(wù)器訪問壓力較大時吮铭,可以在該組增加存儲服務(wù)器來擴充服務(wù)能力(縱向擴容)。當系統(tǒng)容量不足時颅停,可以增加組來擴充存儲容量(橫向擴容)沐兵。

3)Storage狀態(tài)收集
Storage server會連接集群中所有的Tracker server,定時向他們報告自己的狀態(tài)便监,包括磁盤剩余空間扎谎、文件同步狀況、文件上傳下載次數(shù)等統(tǒng)計信息烧董。

2.2.2文件上傳流程
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ù)文件笔诵。

  • 文件名:與文件上傳時不同。是由存儲服務(wù)器根據(jù)特定信息生成姑子,文件名包含:源存儲服務(wù)器IP地址乎婿、文件
    創(chuàng)建時間戳、文件大小街佑、隨機數(shù)和文件拓展名等信息谢翎。

2.2.3 文件下載流程
image.png

tracker根據(jù)請求的文件路徑即文件ID 來快速定義文件。
比如請求下邊的文件:


image.png

1.通過組名tracker能夠很快的定位到客戶端需要訪問的存儲服務(wù)器組是group1舆乔,并選擇合適的存儲服務(wù)器提供客戶端訪問岳服。

2.存儲服務(wù)器根據(jù)“文件存儲虛擬磁盤路徑”和“數(shù)據(jù)文件兩級目錄”可以很快定位到文件所在目錄,并根據(jù)文件名找到客戶端需要訪問的文件希俩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吊宋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌璃搜,老刑警劉巖拖吼,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異这吻,居然都是意外死亡吊档,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門唾糯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怠硼,“玉大人,你說我怎么就攤上這事移怯∠懔В” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵舟误,是天一觀的道長葡秒。 經(jīng)常有香客問我,道長嵌溢,這世上最難降的妖魔是什么眯牧? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮赖草,結(jié)果婚禮上学少,老公的妹妹穿的比我還像新娘。我一直安慰自己疚顷,他們只是感情好旱易,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腿堤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪如暖。 梳的紋絲不亂的頭發(fā)上笆檀,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機與錄音盒至,去河邊找鬼酗洒。 笑死,一個胖子當著我的面吹牛枷遂,可吹牛的內(nèi)容都是我干的樱衷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酒唉,長吁一口氣:“原來是場噩夢啊……” “哼矩桂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起痪伦,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤侄榴,失蹤者是張志新(化名)和其女友劉穎雹锣,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體癞蚕,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蕊爵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了桦山。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攒射。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖恒水,靈堂內(nèi)的尸體忽然破棺而出会放,到底是詐尸還是另有隱情,我是刑警寧澤寇窑,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布鸦概,位于F島的核電站,受9級特大地震影響甩骏,放射性物質(zhì)發(fā)生泄漏窗市。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一饮笛、第九天 我趴在偏房一處隱蔽的房頂上張望咨察。 院中可真熱鬧,春花似錦福青、人聲如沸摄狱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽媒役。三九已至,卻和暖如春宪迟,著一層夾襖步出監(jiān)牢的瞬間酣衷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工次泽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留穿仪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓意荤,卻偏偏與公主長得像啊片,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子玖像,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355