文章來自:http://lxsym.blog.51cto.com/1364623/744826/
?
??? FastDFS是一個開源的輕量級分布式文件系統,純C實現,支持Linux、FreeBSD等UNIX系統,FastDFS可以看做是基于文件的key value pair存儲系統。
??? FastDFS有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要做調度工作,在訪問上起負載均衡的作用。存儲節點存儲文 件,完成文件管理的所有功能:存儲、同步和提供存取接口,同時對文件的metadata進行管理。所謂文件的meta data就是文件的相關屬性,以鍵值對(key valuepair)方式表示,如:width=1024,其中的key為width,value為1024。文件metadata是文件屬性列表,可以 包含多個鍵值對。
??? 分組存儲,靈活簡潔
??? 對等結構,不存在單點?
??? FastDFS不需要傳統的name server
??? 支持相同文件內容只保存一份,節省存儲空間
??? 存儲服務器上可以保存文件附加屬性
??? 為了支持大容量,存儲節點(服務器)采用了分卷(或分組)的組織方式。存儲系統由一個或多個卷組成,卷與卷之間的文件是相互獨立的,所有卷的文件容量累加 就是整個存儲系統中的文件容量。一個卷可以由一臺或多臺存儲服務器組成,一個卷下的存儲服務器中的文件都是相同的,卷中的多臺存儲服務器起到了冗余備份和 負載均衡的作用。在卷中增加服務器時,同步已有的文件由系統自動完成,同步完成后,系統自動將新增服務器切換到線上提供服務。當存儲空間不足或即將耗盡 時,可以動態添加卷。只需要增加一臺或多臺服務器,并將它們配置為一個新的卷,這樣就擴大了存儲系統的容量。
??? FastDFS中的文件標識分為兩個部分:卷名和文件名,二者缺一不可。
上傳文件交互過程:
? 1. Client詢問Tracker server上傳到的Storage server;
? 2. Tracker server返回一臺可用的Storage server,返回的數據為該Storage server的IP地址和端口;
? 3. Client直接和該Storage server建立連接,進行
文件上傳
,Storage server返回新生成的文件ID,
文件上傳
結束。
? 1. Client詢問Tracker server可以下載指定文件的Storage server,參數為文件ID(包含組名和文件名);
? 2. Tracker server返回一臺可用的Storage server;
? 3. Client直接和該Storage server建立連接,完成文件下載。
??? 同一組內的storage server之間是對等的, 文件上傳 、刪除等操作可以在任意一臺storage server上進行;
??? 文件同步只在同組內的storage server之間進行,采用push方式,即源服務器同步給目標服務器;
??? 源頭數據才需要同步,備份數據不需要再次同步,否則就構成環路了;
上述第二條規則有個例外,就是新增加一臺storage server時,由已有的一臺storage server將已有的所有數據(包括源頭數據和備份數據)同步給該新增服務器。
來自 http://bbs.chinaunix.net/thread-3674148-1-4.html
?
本文出自 “ Richard Shen運維/架構 ” 博客,請務必保留此出處 http://lxsym.blog.51cto.com/1364623/744826
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
