2 什麼是fastDFS
2.1 fastDSF介紹
FastDFS是用c語言編寫的一款開源的分佈式文件系統,它是由淘寶資深架構師餘慶編寫並開源。FastDFS專爲互聯
網量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標,使用FastDFS很
容易搭建一套高性能的文件服務器集羣提供文件上傳、下載等服務。
爲何要使用fastDFS呢?
上邊介紹的NFS、GFS都是通用的分佈式文件系統,通用的分佈式文件系統的優勢的是開發體驗好,可是系統複雜
性高、性能通常,而專用的分佈式文件系統雖然開發體驗性差,可是系統複雜性低而且性能高。fastDFS很是適合
存儲圖片等那些小文件,fastDFS不對文件進行分塊,因此它就沒有分塊合併的開銷,fastDFS網絡通訊採用
socket,通訊速度很快。
2.2 fastDSF工做原理
2.2.1 fastDSF架構
FastDFS架構包括 Tracker server和Storageserver。客戶端請求Tracker server進行文件上傳、下載,經過Tracker
server調度最終由Storage server完成文件上傳和下載。
以下圖:
1)Tracker
Tracker Server做用是負載均衡和調度,經過Tracker server在文件上傳時能夠根據一些策略找到Storage server提
供文件上傳服務。能夠將tracker稱爲追蹤服務器或調度服務器。
FastDFS集羣中的Tracker server能夠有多臺,Tracker server之間是相互平等關係同時提供服務,Tracker server
不存在單點故障。客戶端請求Tracker server採用輪詢方式,若是請求的tracker沒法提供服務則換另外一個tracker。
2)Storage
Storage Server做用是文件存儲,客戶端上傳的文件最終存儲在Storage服務器上,Storage server沒有實現本身
的文件系統而是使用操做系統的文件系統來管理文件。能夠將storage稱爲存儲服務器。
Storage集羣採用了分組存儲方式。storage集羣由一個或多個組構成,集羣存儲總容量爲集羣中全部組的存儲容
量之和。一個組由一臺或多臺存儲服務器組成,組內的Storage server之間是平等關係,不一樣組的Storage server
之間不會相互通訊,同組內的Storage server之間會相互鏈接進行文件同步,從而保證同組內每一個storage上的文件
徹底一致的。一個組的存儲容量爲該組內的存儲服務器容量最小的那個,因而可知組內存儲服務器的軟硬件配置最
好是一致的。
採用分組存儲方式的好處是靈活、可控性較強。好比上傳文件時,能夠由客戶端直接指定上傳到的組也能夠由
tracker進行調度選擇。一個分組的存儲服務器訪問壓力較大時,能夠在該組增長存儲服務器來擴充服務能力(縱向
擴容)。當系統容量不足時,能夠增長組來擴充存儲容量(橫向擴容)。
3)Storage狀態收集
Storage server會鏈接集羣中全部的Tracker server,定時向他們報告本身的狀態,包括磁盤剩餘空間、文件同步
情況、文件上傳下載次數等統計信息。
服務器