版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 主流分布式存儲技術(shù)架構(gòu)對比分析 目 錄 TOC o 1-3 h z u HYPERLINK l _Toc66551085 主流分布式存儲技術(shù)架構(gòu)對比分析 PAGEREF _Toc66551085 h 1 HYPERLINK l _Toc66551086 一、 Ceph PAGEREF _Toc66551086 h 3 HYPERLINK l _Toc66551087 二、 GFS PAGEREF _Toc66551087 h 6 HYPERLINK l _Toc66551088 三、 HDFS PAGEREF _Toc66551088 h 9 HYPERLINK l _Toc66551089
2、 四、 Swift PAGEREF _Toc66551089 h 10 HYPERLINK l _Toc66551090 五、 Lustre分布式存儲 PAGEREF _Toc66551090 h 15 HYPERLINK l _Toc66551091 六、 主流分布式存儲技術(shù)的比較 PAGEREF _Toc66551091 h 16存儲根據(jù)其類型,可分為塊存儲,對象存儲和文件存儲。在主流的分布式存儲技術(shù)中,HDFS/GPFS/GFS屬于文件存儲,Swift屬于對象存儲,而Ceph可支持塊存儲、對象存儲和文件存儲,故稱為統(tǒng)一存儲。一、 CephCeph最早起源于Sage就讀博士期間的工作、成果
3、于2004年發(fā)表,并隨后貢獻(xiàn)給開源社區(qū)。經(jīng)過多年的發(fā)展之后,已得到眾多云計算和存儲廠商的支持,成為應(yīng)用最廣泛的開源分布式存儲平臺。Ceph根據(jù)場景可分為對象存儲、塊設(shè)備存儲和文件存儲。Ceph相比其它分布式存儲技術(shù),其優(yōu)勢點(diǎn)在于:它不單是存儲,同時還充分利用了存儲節(jié)點(diǎn)上的計算能力,在存儲每一個數(shù)據(jù)時,都會通過計算得出該數(shù)據(jù)存儲的位置,盡量將數(shù)據(jù)分布均衡。同時,由于采用了CRUSH、HASH等算法,使得它不存在傳統(tǒng)的單點(diǎn)故障,且隨著規(guī)模的擴(kuò)大,性能并不會受到影響。1.Ceph的主要架構(gòu)Ceph的最底層是RADOS(分布式對象存儲系統(tǒng)),它具有可靠、智能、分布式等特性,實(shí)現(xiàn)高可靠、高可拓展、高性能
4、、高自動化等功能,并最終存儲用戶數(shù)據(jù)。RADOS系統(tǒng)主要由兩部分組成,分別是OSD和Monitor。RADOS之上是LIBRADOS,LIBRADOS是一個庫,它允許應(yīng)用程序通過訪問該庫來與RADOS系統(tǒng)進(jìn)行交互,支持多種編程語言,比如C、C+、Python等?;贚IBRADOS層開發(fā)的有三種接口,分別是RADOSGW、librbd和MDS。RADOSGW是一套基于當(dāng)前流行的RESTFUL協(xié)議的網(wǎng)關(guān),支持對象存儲,兼容S3和Swift。librbd提供分布式的塊存儲設(shè)備接口,支持塊存儲。MDS提供兼容POSIX的文件系統(tǒng),支持文件存儲。2.Ceph的功能模塊Ceph的核心組件包括Client
5、客戶端、MON監(jiān)控服務(wù)、MDS元數(shù)據(jù)服務(wù)、OSD存儲服務(wù),各組件功能如下: Client客戶端:負(fù)責(zé)存儲協(xié)議的接入,節(jié)點(diǎn)負(fù)載均衡 MON監(jiān)控服務(wù):負(fù)責(zé)監(jiān)控整個集群,維護(hù)集群的健康狀態(tài),維護(hù)展示集群狀態(tài)的各種圖表,如OSD Map、Monitor Map、PG Map和CRUSH Map MDS元數(shù)據(jù)服務(wù):負(fù)責(zé)保存文件系統(tǒng)的元數(shù)據(jù),管理目錄結(jié)構(gòu) OSD存儲服務(wù):主要功能是存儲數(shù)據(jù)、復(fù)制數(shù)據(jù)、平衡數(shù)據(jù)、恢復(fù)數(shù)據(jù),以及與其它OSD間進(jìn)行心跳檢查等。一般情況下一塊硬盤對應(yīng)一個OSD。3.Ceph的資源劃分Ceph采用crush算法,在大規(guī)模集群下,實(shí)現(xiàn)數(shù)據(jù)的快速、準(zhǔn)確存放,同時能夠在硬件故障或擴(kuò)展硬件
6、設(shè)備時,做到盡可能小的數(shù)據(jù)遷移,其原理如下:當(dāng)用戶要將數(shù)據(jù)存儲到Ceph集群時,數(shù)據(jù)先被分割成多個object,(每個object一個object id,大小可設(shè)置,默認(rèn)是4MB),object是Ceph存儲的最小存儲單元。由于object的數(shù)量很多,為了有效減少了Object到OSD的索引表、降低元數(shù)據(jù)的復(fù)雜度,使得寫入和讀取更加靈活,引入了pg(Placement Group ):PG用來管理object,每個object通過Hash,映射到某個pg中,一個pg可以包含多個object。Pg再通過CRUSH計算,映射到osd中。如果是三副本的,則每個pg都會映射到三個osd,保證了數(shù)據(jù)的冗
7、余。4.Ceph的數(shù)據(jù)寫入Ceph數(shù)據(jù)的寫入流程1) 數(shù)據(jù)通過負(fù)載均衡獲得節(jié)點(diǎn)動態(tài)IP地址;2) 通過塊、文件、對象協(xié)議將文件傳輸?shù)焦?jié)點(diǎn)上;3) 數(shù)據(jù)被分割成4M對象并取得對象ID;4) 對象ID通過HASH算法被分配到不同的PG;5) 不同的PG通過CRUSH算法被分配到不同的OSD5.Ceph的特點(diǎn) Ceph支持對象存儲、塊存儲和文件存儲服務(wù),故 稱為統(tǒng)一存儲。 采用CRUSH算法,數(shù)據(jù)分布均衡,并行度高,不需要維護(hù)固定的元數(shù)據(jù)結(jié)構(gòu); 數(shù)據(jù)具有強(qiáng)一致,確保所有副本寫入完成才返回確認(rèn),適合讀多寫少場景; 去中心化,MDS之間地位相同,無固定的中心節(jié)點(diǎn)Ceph存在一些缺點(diǎn): 去中心化的分布式解
8、決方案,需要提前做好規(guī)劃設(shè)計,對技術(shù)團(tuán)隊的要求能力比較高。 Ceph擴(kuò)容時,由于其數(shù)據(jù)分布均衡的特性,會導(dǎo)致整個存儲系統(tǒng)性能的下降。二、 GFSGFS是google的分布式文件存儲系統(tǒng),是專為存儲海量搜索數(shù)據(jù)而設(shè)計的,2003年提出,是閉源的分布式文件系統(tǒng)。適用于大量的順序讀取和順序追加,如大文件的讀寫。注重大文件的持續(xù)穩(wěn)定帶寬,而不是單次讀寫的延遲。1.GFS的主要架構(gòu)GFS 架構(gòu)比較簡單,一個 GFS 集群一般由一個 master 、多個 chunkserver 和多個 clients 組成。在 GFS 中,所有文件被切分成若干個 chunk,每個 chunk 擁有唯一不變的標(biāo)識(在 ch
9、unk 創(chuàng)建時,由 master 負(fù)責(zé)分配),所有 chunk 都實(shí)際存儲在 chunkserver 的磁盤上。為了容災(zāi),每個 chunk 都會被復(fù)制到多個 chunkserve2.GFS的功能模塊 GFS client客戶端:為應(yīng)用提供API,與POSIX API類似。同時緩存從GFS master讀取的元數(shù)據(jù)chunk信息; GFS master元數(shù)據(jù)服務(wù)器:管理所有文件系統(tǒng)的元數(shù)據(jù),包括命令空間(目錄層級)、訪問控制信息、文件到chunk的映射關(guān)系,chunk的位置等。同時 master 還管理系統(tǒng)范圍內(nèi)的各種活動,包括chunk 創(chuàng)建、復(fù)制、數(shù)據(jù)遷移、垃圾回收等; GFS chunks
10、ever存儲節(jié)點(diǎn):用于所有 chunk的存儲。一個文件被分割為多個大小固定的chunk(默認(rèn)64M),每個chunk有全局唯一的chunk ID。3.GFS的寫入流程1) Client 向 master 詢問要修改的 chunk在哪個 chunkserver上,以及 該chunk 其他副本的位置信息;2) Master 將Primary、secondary的相關(guān)信息返回給 client;3) Client 將數(shù)據(jù)推送給 primary 和 secondary;4) 當(dāng)所有副本都確認(rèn)收到數(shù)據(jù)后,client 發(fā)送寫請求給 primary,primary 給不同 client 的操作分配序號,保證
11、操作順序執(zhí)行;5) Primary 把寫請求發(fā)送到 secondary,secondary 按照 primary 分配的序號順序執(zhí)行所有操作;6) 當(dāng) Secondary 執(zhí)行完后回復(fù) primary 執(zhí)行結(jié)果;7) Primary 回復(fù) client 執(zhí)行結(jié)果。由上述可見,GFS在進(jìn)行寫數(shù)據(jù)時,有如下特點(diǎn): GFS在數(shù)據(jù)讀寫時,數(shù)據(jù)流與控制流是分開的,并通過租約機(jī)制,在跨多個副本的數(shù)據(jù)寫入中, 保障順序一致性; Master將chunk租約發(fā)放給其中一個副本,這個副本稱為主副本,由主副本確定chunk的寫入順序,次副本則遵守這個順序,這樣就保障了全局順序一致性; Master返回客戶端主副本
12、和次副本的位置信息,客戶端緩存這些信息以備將來使用,只有當(dāng)主副本所在chunkserver不可用或返回租約過期了,客戶端才需要再次聯(lián)系Master; GFS采用鏈?zhǔn)酵扑?,以最大化利用每個機(jī)器的網(wǎng)絡(luò)帶寬,避免網(wǎng)絡(luò)瓶頸和高延遲連接,最小化推送延遲; GFS使用TCP流式傳輸數(shù)據(jù),以最小化延遲。4.GFS特點(diǎn) 適合大文件場景的應(yīng)用,特別是針對GB級別的大文件,適用于數(shù)據(jù)訪問延時不敏感的搜索類業(yè)務(wù) 中心化架構(gòu),只有1個master處于active狀態(tài) 緩存和預(yù)取,通過在client端緩存元數(shù)據(jù),盡量減少與master的交互,通過文件的預(yù)讀取來提升并發(fā)性能 高可靠性,master需要持久化的數(shù)據(jù)會通過操
13、作日志與checkpoint的方式存放多份,故障后master會自動切換重啟。三、 HDFSHDFS(Hadoop Distributed File System),是一個適合運(yùn)行在通用硬件(commodity hardware)上的分布式文件系統(tǒng),是Hadoop的核心子項(xiàng)目,是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的。該系統(tǒng)仿效了谷歌文件系統(tǒng)(GFS),是GFS的一個簡化和開源版本。1.HDFS的主要架構(gòu) HDFS Client(客戶端):從NameNode獲取文件的位置信息,再從DataNode讀取或者寫入數(shù)據(jù)。此外,client在數(shù)據(jù)存儲時,負(fù)責(zé)文件的分割; NameNode(元數(shù)
14、據(jù)節(jié)點(diǎn)):管理名稱空間、數(shù)據(jù)塊(Block)映射信息、配置副本策略、處理客戶端讀寫請求; DataNode(存儲節(jié)點(diǎn)):負(fù)責(zé)執(zhí)行實(shí)際的讀寫操作,存儲實(shí)際的數(shù)據(jù)塊,同一個數(shù)據(jù)塊會被存儲在多個DataNode上; Secondary NameNode:定期合并元數(shù)據(jù),推送給NameNode,在緊急情況下,可輔助NameNode的HA恢復(fù)。2.HDFS的特點(diǎn)(vs GFS) 分塊更大,每個數(shù)據(jù)塊默認(rèn)128MB; 不支持并發(fā),同一時刻只允許一個寫入者或追加者; 過程一致性,寫入數(shù)據(jù)的傳輸順序與最終寫入順序一致; Master HA,2.X版本支持兩個NameNode,(分別處于Active和Stand
15、by狀態(tài)),故障切換時間一般幾十秒到數(shù)分鐘3.HDFS適合的應(yīng)用場景 適用于大文件、大數(shù)據(jù)處理,處理數(shù)據(jù)達(dá)到 GB、TB、甚至PB級別的數(shù)據(jù)。 適合流式文件訪問,一次寫入,多次讀取。 文件一旦寫入不能修改,只能追加。4.HDFS不適合的場景: 低延時數(shù)據(jù)訪問。 小文件存儲 并發(fā)寫入、文件隨機(jī)修改四、 SwiftSwift 最初是由Rackspace公司開發(fā)的分布式對象存儲服務(wù), 2010 年貢獻(xiàn)給 OpenStack 開源社區(qū)。作為其最初的核心子項(xiàng)目之一,為其 Nova 子項(xiàng)目提供虛機(jī)鏡像存儲服務(wù)。1.Swift的主要架構(gòu)Swift 采用完全對稱、面向資源的分布式系統(tǒng)架構(gòu)設(shè)計,所有組件都可擴(kuò)展
16、,避免因單點(diǎn)失效而影響整個系統(tǒng)的可用性。Swift 組件包括 代理服務(wù)(Proxy Server):對外提供對象服務(wù) API,轉(zhuǎn)發(fā)請求至相應(yīng)的賬戶、容器或?qū)ο蠓?wù) 認(rèn)證服務(wù)(Authentication Server):驗(yàn)證用戶的身份信息,并獲得一個訪問令牌(Token) 緩存服務(wù)(Cache Server):緩存令牌,賬戶和容器信息,但不會緩存對象本身的數(shù)據(jù) 賬戶服務(wù)(Account Server):提供賬戶元數(shù)據(jù)和統(tǒng)計信息,并維護(hù)所含容器列表的服務(wù) 容器服務(wù)(Container Server):提供容器元數(shù)據(jù)和統(tǒng)計信息,并維護(hù)所含對象列表的服務(wù) 對象服務(wù)(Object Server):提供
17、對象元數(shù)據(jù)和內(nèi)容服務(wù),每個對象會以文件存儲在文件系統(tǒng)中 復(fù)制服務(wù)(Replicator):檢測本地副本和遠(yuǎn)程副本是否一致,采用推式(Push)更新遠(yuǎn)程副本 更新服務(wù)(Updater):對象內(nèi)容的更新 審計服務(wù)(Auditor):檢查對象、容器和賬戶的完整性,如果發(fā)現(xiàn)錯誤,文件將被隔離 賬戶清理服務(wù)(Account Reaper):移除被標(biāo)記為刪除的賬戶,刪除其所包含的所有容器和對象2.Swift的數(shù)據(jù)模型Swift的數(shù)據(jù)模型采用層次結(jié)構(gòu),共設(shè)三層:Account/Container/Object(即賬戶/容器/對象),每層節(jié)點(diǎn)數(shù)均沒有限制,可以任意擴(kuò)展。數(shù)據(jù)模型如下:3.一致性散列函數(shù)Swif
18、t是基于一致性散列技術(shù),通過計算將對象均勻分布到虛擬空間的虛擬節(jié)點(diǎn)上,在增加或刪除節(jié)點(diǎn)時可大大減少需移動的數(shù)據(jù)量;為便于高效的移位操作,虛擬空間大小通常采用 2 n;通過獨(dú)特的數(shù)據(jù)結(jié)構(gòu) Ring(環(huán)),再將虛擬節(jié)點(diǎn)映射到實(shí)際的物理存儲設(shè)備上,完成尋址過程。如下圖所示:散列空間4 個字節(jié)(32為),虛擬節(jié)點(diǎn)數(shù)最大為232,如將散列結(jié)果右移 m 位,可產(chǎn)生 2(32-m)個虛擬節(jié)點(diǎn),(如上圖中所示,當(dāng)m=29 時,可產(chǎn)生 8 個虛擬節(jié)點(diǎn))。4.環(huán)的數(shù)據(jù)結(jié)構(gòu)Swift為賬戶、容器和對象分別定義了的環(huán)。環(huán)是為了將虛擬節(jié)點(diǎn)(分區(qū))映射到一組物理存儲設(shè)備上,并提供一定的冗余度而設(shè)計的,環(huán)的數(shù)據(jù)信息包括存儲
19、設(shè)備列表和設(shè)備信息、分區(qū)到設(shè)備的映射關(guān)系、計算分區(qū)號的位移(即上圖中的m)。賬戶、容器和對象的尋址過程。(以對象的尋址過程為例):1) 以對象的層次結(jié)構(gòu) account/container/object 作為鍵,采用 MD5 散列算法得到一個散列值;2) 對該散列值的前 4 個字節(jié)進(jìn)行右移操作(右移m位),得到分區(qū)索引號;3) 在分區(qū)到設(shè)備映射表里,按照分區(qū)索引號,查找該對象所在分區(qū)對應(yīng)的所有物理設(shè)備編號。如下圖:5.Swift的一致性設(shè)計Swift 采用 Quorum 仲裁協(xié)議 定義:N:數(shù)據(jù)的副本總數(shù);W:寫操作被確認(rèn)接受的副本數(shù)量;R:讀操作的副本數(shù)量 強(qiáng)一致性:R+WN, 就能保證對副
20、本的讀寫操作會產(chǎn)生交集,從而保證可以讀取到最新版本; 弱一致性:R+W=N,讀寫操作的副本集合可能不產(chǎn)生交集,此時就可能會讀到臟數(shù)據(jù);Swift 默認(rèn)配置是N=3,W=2,R=2,即每個對象會存在 3 個副本,至少需要更新 2 個副本才算寫成功;如果讀到的2個數(shù)據(jù)存在不一致,則通過檢測和復(fù)制協(xié)議來完成數(shù)據(jù)同步。如R=1,就可能會讀到臟數(shù)據(jù),此時,通過犧牲一定的一致性,可提高讀取速度,(而一致性可以通過后臺的方式完成同步,從而保證數(shù)據(jù)的最終一致性)Quorum 協(xié)議示例如下所示:6.Swift特點(diǎn) 原生的對象存儲,不支持實(shí)時的文件讀寫、編輯功能 完全對稱架構(gòu),無主節(jié)點(diǎn),無單點(diǎn)故障,易于大規(guī)模擴(kuò)展
21、,性能容量線性增長 數(shù)據(jù)實(shí)現(xiàn)最終一致性,不需要所有副本寫入即可返回,讀取數(shù)據(jù)時需要進(jìn)行數(shù)據(jù)副本的校驗(yàn) 是OpenStack的子項(xiàng)目之一,適合云環(huán)境的部署 Swift的對象存儲與Ceph提供的對象存儲區(qū)別:客戶端在訪問對象存儲系統(tǒng)服務(wù)時,Swift要求客戶端必須訪問Swift網(wǎng)關(guān)才能獲得數(shù)據(jù)。而Ceph可以在每個存儲節(jié)點(diǎn)上的OSD(對象存儲設(shè)備)獲取數(shù)據(jù)信息; 在數(shù)據(jù)一致性方面,Swift的數(shù)據(jù)是最終一致,而Ceph是始終跨集群強(qiáng)一致性)五、 Lustre分布式存儲Lustre是基于Linux平臺的開源集群(并行)文件系統(tǒng),最早在1999年由皮特布拉姆創(chuàng)建的集群文件系統(tǒng)公司(Cluster File Systems Inc.)開始研發(fā),后由HP、Intel、Cluster File System和美國能源部聯(lián)合開發(fā),2003年正式開源,主要用于HPC超算領(lǐng)域。1、Lustre的主要架構(gòu)Lustre組件包括: 管理服務(wù)器(MGS):存放集群中所有Lustre文件系統(tǒng)的配置信息,Lustre客戶通過聯(lián)系MGS獲取信息,可以與MDS共享存儲空間。 元數(shù)據(jù)服務(wù)器(MDS): 管理存儲在MDT中的元數(shù)據(jù),使存儲在一個或多個MDT中的元數(shù)據(jù)可供Lustre客戶端使用,每個MDS可管理一個或多個MDT。 元數(shù)據(jù)目標(biāo)(MDT): MDS用于存儲元數(shù)據(jù)(例如文件名,目錄,權(quán)限和文件布
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版?zhèn)€人信用卡債務(wù)代償協(xié)議書3篇
- 2024年版農(nóng)田堰塘建設(shè)協(xié)議模板版B版
- 二零二五年度鋼筋加工廠勞務(wù)分包合同范本6篇
- 武漢紡織大學(xué)外經(jīng)貿(mào)學(xué)院《分子模擬的原理和應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版公墓環(huán)境維護(hù)與生態(tài)保護(hù)合作協(xié)議3篇
- 2024版影視制作與版權(quán)轉(zhuǎn)讓合同
- 2024英倫游學(xué)夏令營青少年領(lǐng)袖培養(yǎng)與團(tuán)隊建設(shè)服務(wù)合同3篇
- 二零二五年度城市更新項(xiàng)目舊房收購合同細(xì)則3篇
- 太原幼兒師范高等??茖W(xué)?!豆菜囆g(shù)項(xiàng)目實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘇州工藝美術(shù)職業(yè)技術(shù)學(xué)院《物聯(lián)網(wǎng)與云計算》2023-2024學(xué)年第一學(xué)期期末試卷
- 《項(xiàng)目施工組織設(shè)計開題報告(含提綱)3000字》
- ICU常見藥物課件
- CNAS實(shí)驗(yàn)室評審不符合項(xiàng)整改報告
- 農(nóng)民工考勤表(模板)
- 承臺混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 計量基礎(chǔ)知識培訓(xùn)教材201309
- 中考英語 短文填詞、選詞填空練習(xí)
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 初一至初三數(shù)學(xué)全部知識點(diǎn)
- 新課程理念下的班主任工作藝術(shù)
評論
0/150
提交評論