国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

分布式文件存儲(chǔ) FastDFS

AlphaWallet / 2292人閱讀

摘要:一概念簡述是由淘寶開發(fā)平臺(tái)部資深架構(gòu)師余慶開發(fā),是一個(gè)輕量級高性能的開源分布式文件系統(tǒng),用純語言開發(fā),包括文件存儲(chǔ)文件同步文件訪問上傳下載存取負(fù)載均衡在線擴(kuò)容相同內(nèi)容只存儲(chǔ)一份等功能,適合有大容量存儲(chǔ)需求的應(yīng)用或系統(tǒng)。故障恢復(fù)后,再次奪回。

一、概念簡述

FastDFS 是由淘寶開發(fā)平臺(tái)部資深架構(gòu)師余慶開發(fā),是一個(gè)輕量級、高性能的開源分布式文件系統(tǒng)( Distributed File System ),用純 C 語言開發(fā),包括文件存儲(chǔ)、文件同步、文件訪問(上傳、下載)、存取負(fù)載均衡、在線擴(kuò)容、相同內(nèi)容只存儲(chǔ)一份等功能,適合有大容量存儲(chǔ)需求的應(yīng)用或系統(tǒng)。

它對文件進(jìn)行管理,充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等指標(biāo)。解決了大容量存儲(chǔ)和負(fù)載均衡的問題。特別適合以中小文件( 建議范圍:4KB < file_size <500MB )為載體的在線服務(wù),如相冊網(wǎng)站、視頻網(wǎng)站等等具有顯著的效果。

同類的分布式文件系統(tǒng)有谷歌的 GFS、HDFS(Hadoop)、TFS(淘寶)等。

二、FastDFS架構(gòu)

FastDFS 服務(wù)端有三個(gè)角色:客戶端(client),跟蹤器(tracker)和存儲(chǔ)器(storage)構(gòu)成。基本架構(gòu)如下圖所示

跟蹤器(tracker)

Tracker 是 FastDFS 的 協(xié)調(diào)者,負(fù)責(zé)管理所有的 storage server 和 group,每個(gè) storage 在啟動(dòng)后會(huì)連接 Tracker,告知自己所屬的 group 等信息,并保持周期性的心跳,tracker 根據(jù) storage 的心跳信息,建立 group ==> [storage serverlist] 的映射表。

Tracker 需要管理的元信息很少,會(huì)全部存儲(chǔ)在內(nèi)存中;另外 tracker 上的元信息都是由 storage 匯報(bào)的信息生成的,本身不需要持久化任何數(shù)據(jù),這樣使得 tracker 非常容易擴(kuò)展,直接增加 tracker 機(jī)器即可擴(kuò)展為 tracker cluster 來服務(wù),cluster 里每個(gè) tracker 之間是完全對等的,所有的 tracker 都接受 stroage 的心跳信息,生成元數(shù)據(jù)信息來提供讀寫服務(wù)。

跟蹤器在訪問上起負(fù)載均衡的作用。可以隨時(shí)增加或下線而不會(huì)影響線上服務(wù)。
存儲(chǔ)節(jié)點(diǎn)(storage)

存儲(chǔ)系統(tǒng)(Storage server)由以組 group(或卷 volume)為單位組成。一個(gè) group 內(nèi)包含多臺(tái) storage 機(jī)器,數(shù)據(jù)互為備份,存儲(chǔ)空間以 group 內(nèi)容量最小的 storage為準(zhǔn)。

存儲(chǔ)節(jié)點(diǎn)中的服務(wù)器均可以隨時(shí)增加或下線而不會(huì)影響線上服務(wù)。
客戶端(client)

客戶端(client),作為業(yè)務(wù)請求的發(fā)起方,通過專有接口,使用TCP/IP協(xié)議與跟蹤器服務(wù)器或存儲(chǔ)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互。

三、FastDFS 的存儲(chǔ)策略

為了支持大容量,存儲(chǔ)系統(tǒng)由一個(gè)或多個(gè)卷組成,卷與卷之間的文件是相互獨(dú)立的,所有卷的文件容量累加就是整個(gè)存儲(chǔ)系統(tǒng)中的文件容量。一個(gè)卷可以由一臺(tái)或多臺(tái)存儲(chǔ)服務(wù)器組成,一個(gè)卷下的存儲(chǔ)服務(wù)器中的文件都是相同的(同步已有的文件由系統(tǒng)自動(dòng)完成同步),卷中的多臺(tái)存儲(chǔ)服務(wù)器起到了冗余備份和負(fù)載均衡的作用。

在卷中增加服務(wù)器時(shí),同步已有的文件由系統(tǒng)自動(dòng)完成,同步完成后,系統(tǒng)自動(dòng)將新增服務(wù)器切換到線上提供服務(wù)。

當(dāng)存儲(chǔ)空間不足或即將耗盡時(shí),可以 動(dòng)態(tài) 添加卷。只需要增加一臺(tái)或多臺(tái)服務(wù)器,并將它們配置為一個(gè)新的卷,這樣就擴(kuò)大了存儲(chǔ)系統(tǒng)的容量。

四、FastDFS 的文件同步

寫文件時(shí),客戶端將文件寫至 group 內(nèi)一個(gè) storage server 即認(rèn)為寫文件成功,storage server 寫完文件后,會(huì)由后臺(tái)線程將文件同步至同 group 內(nèi)其他的 storage server。

每個(gè) storage 寫文件后,同時(shí)會(huì)寫一份 binlog,binlog 里不包含文件數(shù)據(jù),只包含文件名等元信息,這份 binlog 用于后臺(tái)同步,storage 會(huì)記錄向 group 內(nèi)其他 storage 同步的進(jìn)度,以便重啟后能接上次的進(jìn)度繼續(xù)同步;進(jìn)度以時(shí)間戳的方式進(jìn)行記錄,所以最好能保證集群內(nèi)所有 server 的時(shí)鐘保持同步。

storage 的同步進(jìn)度會(huì)作為元數(shù)據(jù)的一部分匯報(bào)到 tracker 上,tracker 在選擇讀 storage 的時(shí)候會(huì)以同步進(jìn)度作為參考。這樣就避免文件同步完成之前訪問文件不存在的問題,就是 tracker 會(huì)告訴 client 去訪問執(zhí)行存儲(chǔ)的那臺(tái) storage。

五、FastDFS 整體流程圖

從 client 發(fā)起請求,由跟蹤器(tracker,主)來處理,查詢可用的存儲(chǔ)器(storage),返回給 client storage 的 ip 和端口;client 根據(jù) ip 和端口訪問 storage 完成上傳圖片等服務(wù);成功后返回地址,如:group1/M00/00/01/wKgBwFkueeWAU81OAADxa3SgCic420.png

六、結(jié)合 keepalived keepalived 概念

keepalived 是以 VRRP( Virtual Router Redundancy Protocol )協(xié)議為實(shí)現(xiàn)基礎(chǔ)的,即虛擬路由冗余協(xié)議,實(shí)現(xiàn)路由器高可用的協(xié)議。

工作原理

Keepalived 的作用是檢測服務(wù)器的狀態(tài),如果有一臺(tái) web 服務(wù)器宕機(jī),或工作出現(xiàn)故障,Keepalived 將檢測到,并將有故障的服務(wù)器從系統(tǒng)中剔除,同時(shí)使用其他服務(wù)器代替該服務(wù)器的工作,當(dāng)服務(wù)器工作正常后 Keepalived 自動(dòng)將服務(wù)器加入到服務(wù)器群中,這些工作全部自動(dòng)完成,不需要人工干涉,需要人工做的只是修復(fù)故障的服務(wù)器。

選舉制度

將 N 臺(tái)提供相同功能的路由器組成一個(gè)路由器組,這個(gè)組里面有一個(gè) master 和多個(gè) backup ,master 上面有一個(gè)對外提供服務(wù)的 vip(該路由器所在局域網(wǎng)內(nèi)其他機(jī)器的默認(rèn)路由為該 vip),master 會(huì)發(fā)組播,當(dāng) backup 收不到 vrrp 包時(shí)就認(rèn)為 master 宕掉了,這時(shí)就需要根據(jù) VRRP 的優(yōu)先級來選舉一個(gè) backup 當(dāng) master。這樣的話就可以保證路由器的高可用了。

主從模式

Keepalived 通過請求一個(gè) vip 來達(dá)到請求真實(shí) IP 地址的功能,而 VIP 能夠在一臺(tái)機(jī)器發(fā)生故障時(shí)候,自動(dòng)漂移到另外一臺(tái)機(jī)器上,從來達(dá)到了高可用。

一主多從模式:
在當(dāng)前架構(gòu)中僅允許存在一臺(tái) master,其他均為 backup。當(dāng) backup 接收不到 vrrp 消息時(shí),會(huì)根據(jù)權(quán)重來選舉一個(gè) backup 出來代替 master。
master 故障恢復(fù)后,再次奪回 master。
七、FastDFS插件

fastdfs-nginx-module:

在大多數(shù)業(yè)務(wù)場景中,往往需要為 FastDFS 存儲(chǔ)的文件提供 http 下載服務(wù),而盡管 FastDFS 在其 storage 及 tracker 都內(nèi)置了 http 服務(wù), 但性能表現(xiàn)卻不盡如人意;作者余慶在后來的版本中增加了基于當(dāng)前主流 web 服務(wù)器的擴(kuò)展模塊(包括 nginx/apache ),其用意在于利用 web 服務(wù)器直接對本機(jī) storage 數(shù)據(jù)文件提供 http 服務(wù),以提高文件下載的性能。

fastdfs_client_php:

FastDFS 的 PHP 擴(kuò)展,用于和 PHP 進(jìn)行交互。

FastDFS + Keepalived + Nginx 架構(gòu)

注意:千萬不要使用 kill -9 命令強(qiáng)殺 FastDFS 進(jìn)程,否則可能會(huì)導(dǎo)致 binlog 數(shù)據(jù)丟失。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/31609.html

相關(guān)文章

  • FastDFS+Nginx搭建布式圖片存儲(chǔ)

    摘要:可以將稱為追蹤服務(wù)器或調(diào)度服務(wù)器。實(shí)際保存文件分為多個(gè)組,每個(gè)組之間保存的文件是不同的。虛擬磁盤路徑配置的虛擬路徑,與磁盤選項(xiàng)對應(yīng)。數(shù)據(jù)兩級目錄服務(wù)器在每個(gè)虛擬磁盤路徑下創(chuàng)建的兩級目錄,用于存儲(chǔ)數(shù)據(jù)文件。1.什么是FastDFS FastDFS是用 c 語言編寫的一款開源的分布式文件系統(tǒng)。FastDFS 為互聯(lián)網(wǎng)量身定制, 充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等...

    CoderDock 評論0 收藏0
  • java 文件存儲(chǔ)

    摘要:優(yōu)點(diǎn)開發(fā)成本低,可以配置加速網(wǎng)絡(luò)三分布式文件系統(tǒng)方案常見的分布式文件系統(tǒng)有,等。它們都不是系統(tǒng)級的分布式文件系統(tǒng),而是應(yīng)用級的分布式文件存儲(chǔ)服務(wù)。 一、小應(yīng)用存儲(chǔ)方案 在開發(fā)中上傳文件存儲(chǔ)是個(gè)問題,而一般小應(yīng)用開發(fā)會(huì)選擇服務(wù)器本地目錄做為存儲(chǔ)地址,通過保存文件的相對路徑來獲取文件,在應(yīng)用不要求高可用的情況下這是一種普遍的方案。 問題: 在每次更新Java版本時(shí),都需要將文件目錄做一次備...

    Alfred 評論0 收藏0
  • java 文件存儲(chǔ)

    摘要:優(yōu)點(diǎn)開發(fā)成本低,可以配置加速網(wǎng)絡(luò)三分布式文件系統(tǒng)方案常見的分布式文件系統(tǒng)有,等。它們都不是系統(tǒng)級的分布式文件系統(tǒng),而是應(yīng)用級的分布式文件存儲(chǔ)服務(wù)。 一、小應(yīng)用存儲(chǔ)方案 在開發(fā)中上傳文件存儲(chǔ)是個(gè)問題,而一般小應(yīng)用開發(fā)會(huì)選擇服務(wù)器本地目錄做為存儲(chǔ)地址,通過保存文件的相對路徑來獲取文件,在應(yīng)用不要求高可用的情況下這是一種普遍的方案。 問題: 在每次更新Java版本時(shí),都需要將文件目錄做一次備...

    shery 評論0 收藏0
  • JPower 2.0.4 發(fā)布,新增FASTDFS文件存儲(chǔ)

    摘要:的存儲(chǔ)策略為了支持大容量,存儲(chǔ)節(jié)點(diǎn)服務(wù)器采用了分卷或分組的組織方式。的文件下載客戶端成功后,會(huì)拿到一個(gè)生成的文件名,接下來客戶端根據(jù)這個(gè)文件名即可訪問到該文件。一、FastDFS介紹FastDFS開源地址:https://github.com/happyfish100參考:分布式文件系統(tǒng)FastDFS設(shè)計(jì)原理參考:FastDFS分布式文件系統(tǒng)個(gè)人封裝的FastDFS Java API:htt...

    princekin 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<