隨著數(shù)字化轉(zhuǎn)型的深入,海量數(shù)據(jù)對(duì)存儲(chǔ)提出了新的要求。傳統(tǒng)存儲(chǔ)雖然有技術(shù)成熟、性能良好、可用性高等優(yōu)點(diǎn),但面對(duì)海量數(shù)據(jù),其缺點(diǎn)也越來越明顯:如擴(kuò)展性差、成本高等。為了克服上述缺點(diǎn),滿足海量數(shù)據(jù)的存儲(chǔ)需求,市場(chǎng)上出現(xiàn)了分布式存儲(chǔ)技術(shù)。
分布式存儲(chǔ)系統(tǒng),通常包括主控服務(wù)器、存儲(chǔ)服務(wù)器,以及多個(gè)客戶端組成。其本質(zhì)是將大量的文件,均勻分布到多個(gè)存儲(chǔ)服務(wù)器上。
當(dāng)前,分布式存儲(chǔ)有多種實(shí)現(xiàn)技術(shù),如HDFS、Ceph、GFS、Switf等。在實(shí)際工作中,為了更好地引入分布式存儲(chǔ)技術(shù),我們需了解各種分布式存儲(chǔ)技術(shù)的特點(diǎn),以及各種技術(shù)的適用場(chǎng)景。
本文擬通過對(duì)Ceph、HDFS、Swift、GFS、Luster等幾種主流的分布式存儲(chǔ)技術(shù)實(shí)現(xiàn)原理的闡述,并總結(jié)其各自的特點(diǎn)和合適的使用場(chǎng)景,以幫助架構(gòu)師在進(jìn)行存儲(chǔ)架構(gòu)規(guī)劃時(shí),選擇合適的存儲(chǔ)技術(shù)。
關(guān)鍵詞:傳統(tǒng)存儲(chǔ)技術(shù) 分布式存儲(chǔ)技術(shù) 塊存儲(chǔ) 文件存儲(chǔ) 對(duì)象存儲(chǔ) Ceph GFS HDFS Swift Luster
存儲(chǔ)根據(jù)其類型,可分為塊存儲(chǔ),對(duì)象存儲(chǔ)和文件存儲(chǔ)。在主流的分布式存儲(chǔ)技術(shù)中,HDFS/GPFS/GFS屬于文件存儲(chǔ),Swift屬于對(duì)象存儲(chǔ),而Ceph可支持塊存儲(chǔ)、對(duì)象存儲(chǔ)和文件存儲(chǔ),故稱為統(tǒng)一存儲(chǔ)。
一、 Ceph
Ceph最早起源于Sage就讀博士期間的工作、成果于2004年發(fā)表,并隨后貢獻(xiàn)給開源社區(qū)。經(jīng)過多年的發(fā)展之后,已得到眾多云計(jì)算和存儲(chǔ)廠商的支持,成為應(yīng)用最廣泛的開源分布式存儲(chǔ)平臺(tái)。Ceph根據(jù)場(chǎng)景可分為對(duì)象存儲(chǔ)、塊設(shè)備存儲(chǔ)和文件存儲(chǔ)。Ceph相比其它分布式存儲(chǔ)技術(shù),其優(yōu)勢(shì)點(diǎn)在于:它不單是存儲(chǔ),同時(shí)還充分利用了存儲(chǔ)節(jié)點(diǎn)上的計(jì)算能力,在存儲(chǔ)每一個(gè)數(shù)據(jù)時(shí),都會(huì)通過計(jì)算得出該數(shù)據(jù)存儲(chǔ)的位置,盡量將數(shù)據(jù)分布均衡。同時(shí),由于采用了CRUSH、HASH等算法,使得它不存在傳統(tǒng)的單點(diǎn)故障,且隨著規(guī)模的擴(kuò)大,性能并不會(huì)受到影響。1.Ceph的主要架構(gòu)
Ceph的最底層是RADOS(分布式對(duì)象存儲(chǔ)系統(tǒng)),它具有可靠、智能、分布式等特性,實(shí)現(xiàn)高可靠、高可拓展、高性能、高自動(dòng)化等功能,并最終存儲(chǔ)用戶數(shù)據(jù)。RADOS系統(tǒng)主要由兩部分組成,分別是OSD和Monitor。RADOS之上是LIBRADOS,LIBRADOS是一個(gè)庫(kù),它允許應(yīng)用程序通過訪問該庫(kù)來與RADOS系統(tǒng)進(jìn)行交互,支持多種編程語言,比如C、C++、Python等。基于LIBRADOS層開發(fā)的有三種接口,分別是RADOSGW、librbd和MDS。RADOSGW是一套基于當(dāng)前流行的RESTFUL協(xié)議的網(wǎng)關(guān),支持對(duì)象存儲(chǔ),兼容S3和Swift。librbd提供分布式的塊存儲(chǔ)設(shè)備接口,支持塊存儲(chǔ)。MDS提供兼容POSIX的文件系統(tǒng),支持文件存儲(chǔ)。
2.Ceph的功能模塊
Ceph的核心組件包括Client客戶端、MON監(jiān)控服務(wù)、MDS元數(shù)據(jù)服務(wù)、OSD存儲(chǔ)服務(wù),各組件功能如下:? Client客戶端:負(fù)責(zé)存儲(chǔ)協(xié)議的接入,節(jié)點(diǎn)負(fù)載均衡? MON監(jiān)控服務(wù):負(fù)責(zé)監(jiān)控整個(gè)集群,維護(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存儲(chǔ)服務(wù):主要功能是存儲(chǔ)數(shù)據(jù)、復(fù)制數(shù)據(jù)、平衡數(shù)據(jù)、恢復(fù)數(shù)據(jù),以及與其它OSD間進(jìn)行心跳檢查等。一般情況下一塊硬盤對(duì)應(yīng)一個(gè)OSD。
3.Ceph的資源劃分Ceph采用crush算法,在大規(guī)模集群下,實(shí)現(xiàn)數(shù)據(jù)的快速、準(zhǔn)確存放,同時(shí)能夠在硬件故障或擴(kuò)展硬件設(shè)備時(shí),做到盡可能小的數(shù)據(jù)遷移,其原理如下:當(dāng)用戶要將數(shù)據(jù)存儲(chǔ)到Ceph集群時(shí),數(shù)據(jù)先被分割成多個(gè)object,(每個(gè)object一個(gè)object id,大小可設(shè)置,默認(rèn)是4MB),object是Ceph存儲(chǔ)的最小存儲(chǔ)單元。由于object的數(shù)量很多,為了有效減少了Object到OSD的索引表、降低元數(shù)據(jù)的復(fù)雜度,使得寫入和讀取更加靈活,引入了pg(Placement Group ):PG用來管理object,每個(gè)object通過Hash,映射到某個(gè)pg中,一個(gè)pg可以包含多個(gè)object。Pg再通過CRUSH計(jì)算,映射到osd中。如果是三副本的,則每個(gè)pg都會(huì)映射到三個(gè)osd,保證了數(shù)據(jù)的冗余。
4.Ceph的數(shù)據(jù)寫入Ceph數(shù)據(jù)的寫入流程
數(shù)據(jù)通過負(fù)載均衡獲得節(jié)點(diǎn)動(dòng)態(tài)IP地址;
通過塊、文件、對(duì)象協(xié)議將文件傳輸?shù)焦?jié)點(diǎn)上;
數(shù)據(jù)被分割成4M對(duì)象并取得對(duì)象ID;
對(duì)象ID通過HASH算法被分配到不同的PG;
不同的PG通過CRUSH算法被分配到不同的OSD
5.Ceph的特點(diǎn)
? Ceph支持對(duì)象存儲(chǔ)、塊存儲(chǔ)和文件存儲(chǔ)服務(wù),故 稱為統(tǒng)一存儲(chǔ)。
? 采用CRUSH算法,數(shù)據(jù)分布均衡,并行度高,不需要維護(hù)固定的元數(shù)據(jù)結(jié)構(gòu);
? 數(shù)據(jù)具有強(qiáng)一致,確保所有副本寫入完成才返回確認(rèn),適合讀多寫少場(chǎng)景;
? 去中心化,MDS之間地位相同,無固定的中心節(jié)點(diǎn)
Ceph存在一些缺點(diǎn):
? 去中心化的分布式解決方案,需要提前做好規(guī)劃設(shè)計(jì),對(duì)技術(shù)團(tuán)隊(duì)的要求能力比較高。
? Ceph擴(kuò)容時(shí),由于其數(shù)據(jù)分布均衡的特性,會(huì)導(dǎo)致整個(gè)存儲(chǔ)系統(tǒng)性能的下降。
二、 GFS
GFS是google的分布式文件存儲(chǔ)系統(tǒng),是專為存儲(chǔ)海量搜索數(shù)據(jù)而設(shè)計(jì)的,2003年提出,是閉源的分布式文件系統(tǒng)。適用于大量的順序讀取和順序追加,如大文件的讀寫。注重大文件的持續(xù)穩(wěn)定帶寬,而不是單次讀寫的延遲。
1.GFS的主要架構(gòu)GFS 架構(gòu)比較簡(jiǎn)單,一個(gè) GFS 集群一般由一個(gè) master 、多個(gè) chunkserver 和多個(gè) clients 組成。在 GFS 中,所有文件被切分成若干個(gè) chunk,每個(gè) chunk 擁有唯一不變的標(biāo)識(shí)(在 chunk 創(chuàng)建時(shí),由 master 負(fù)責(zé)分配),所有 chunk 都實(shí)際存儲(chǔ)在 chunkserver 的磁盤上。為了容災(zāi),每個(gè) chunk 都會(huì)被復(fù)制到多個(gè) chunkserve
2.GFS的功能模塊
? GFS client客戶端:為應(yīng)用提供API,與POSIX API類似。同時(shí)緩存從GFS master讀取的元數(shù)據(jù)chunk信息;? GFS master元數(shù)據(jù)服務(wù)器:管理所有文件系統(tǒng)的元數(shù)據(jù),包括命令空間(目錄層級(jí))、訪問控制信息、文件到chunk的映射關(guān)系,chunk的位置等。同時(shí) master 還管理系統(tǒng)范圍內(nèi)的各種活動(dòng),包括chunk 創(chuàng)建、復(fù)制、數(shù)據(jù)遷移、垃圾回收等;? GFS chunksever存儲(chǔ)節(jié)點(diǎn):用于所有 chunk的存儲(chǔ)。一個(gè)文件被分割為多個(gè)大小固定的chunk(默認(rèn)64M),每個(gè)chunk有全局唯一的chunk ID。
3.GFS的寫入流程
Client 向 master 詢問要修改的 chunk在哪個(gè) chunkserver上,以及 該chunk 其他副本的位置信息。
Master 將Primary、secondary的相關(guān)信息返回給 client。
Client 將數(shù)據(jù)推送給 primary 和 secondary;。
當(dāng)所有副本都確認(rèn)收到數(shù)據(jù)后,client 發(fā)送寫請(qǐng)求給 primary,primary 各不同 client 的操作分配序號(hào),保證操作順序執(zhí)行。
Primary 把寫請(qǐng)求發(fā)送到 secondary,secondary 按照 primary 分配的序號(hào)順序執(zhí)行所有操作
當(dāng) Secondary 執(zhí)行完后回復(fù) primary 執(zhí)行結(jié)果。
Primary 回復(fù) client 執(zhí)行結(jié)果。
由上述可見,GFS在進(jìn)行寫數(shù)據(jù)時(shí),有如下特點(diǎn):
? GFS在數(shù)據(jù)讀寫時(shí),數(shù)據(jù)流與控制流是分開的,并通過租約機(jī)制,在跨多個(gè)副本的數(shù)據(jù)寫入中, 保障順序一致性;
? Master將chunk租約發(fā)放給其中一個(gè)副本,這個(gè)副本稱為主副本,由主副本確定chunk的寫入順序,此副本則遵守這個(gè)順序,這樣就保障了全局順序一致性
? Master返回客戶端主副本和次副本的位置信息,客戶端緩存這些信息以備將來使用,只有當(dāng)主副本所在chunkserver不可用或返回租約過期了,客戶端才需要再次聯(lián)系Master;
? GFS采用鏈?zhǔn)酵扑?,以最大化利用每個(gè)機(jī)器的網(wǎng)絡(luò)帶寬,避免網(wǎng)絡(luò)瓶頸和高延遲連接,最小化推送延遲;
? GFS使用TCP流式傳輸數(shù)據(jù),以最小化延遲。
4.GFS特點(diǎn)? 適合大文件場(chǎng)景的應(yīng)用,特別是針對(duì)GB級(jí)別的大文件,適用于數(shù)據(jù)訪問延時(shí)不敏感的搜索類業(yè)務(wù)? 中心化架構(gòu),只有1個(gè)master處于active狀態(tài)? 緩存和預(yù)取,通過在client端緩存元數(shù)據(jù),盡量減少與master的交互,通過文件的預(yù)讀取來提升并發(fā)性能? 高可靠性,master需要持久化的數(shù)據(jù)會(huì)通過操作日志與checkpoint的方式存放多份,故障后master會(huì)自動(dòng)切換重啟。
三、 HDFS
HDFS(Hadoop Distributed File System),是一個(gè)適合運(yùn)行在通用硬件(commodity hardware)上的分布式文件系統(tǒng),是Hadoop的核心子項(xiàng)目,是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的。該系統(tǒng)仿效了谷歌文件系統(tǒng)(GFS),是GFS的一個(gè)簡(jiǎn)化和開源版本。
1.HDFS的主要架構(gòu)
? HDFS Client(客戶端):從NameNode獲取文件的位置信息,再?gòu)腄ataNode讀取或者寫入數(shù)據(jù)。此外,client在數(shù)據(jù)存儲(chǔ)時(shí),負(fù)責(zé)文件的分割;? NameNode(元數(shù)據(jù)節(jié)點(diǎn)):管理名稱空間、數(shù)據(jù)塊(Block)映射信息、配置副本策略、處理客戶端讀寫請(qǐng)求;? DataNode(存儲(chǔ)節(jié)點(diǎn)):負(fù)責(zé)執(zhí)行實(shí)際的讀寫操作,存儲(chǔ)實(shí)際的數(shù)據(jù)塊,同一個(gè)數(shù)據(jù)塊會(huì)被存儲(chǔ)在多個(gè)DataNode上? Secondary NameNode:定期合并元數(shù)據(jù),推送給NameNode,在緊急情況下,可輔助NameNode的HA恢復(fù)。
2.HDFS的特點(diǎn)(Vs GFS)? 分塊更大,每個(gè)數(shù)據(jù)塊默認(rèn)128MB;? 不支持并發(fā),同一時(shí)刻只允許一個(gè)寫入者或追加者;? 過程一致性,寫入數(shù)據(jù)的傳輸順序與最終寫入順序一致;? Master HA,2.X版本支持兩個(gè)NameNode,(分別處于Active和Standby狀態(tài)),故障切換時(shí)間一般幾十秒到數(shù)分鐘
3.HDFS適合的應(yīng)用場(chǎng)景:? 適用于大文件、大數(shù)據(jù)處理,處理數(shù)據(jù)達(dá)到 GB、TB、甚至PB級(jí)別的數(shù)據(jù)。? 適合流式文件訪問,一次寫入,多次讀取。? 文件一旦寫入不能修改,只能追加。
4.HDFS不適合的場(chǎng)景:? 低延時(shí)數(shù)據(jù)訪問。? 小文件存儲(chǔ)? 并發(fā)寫入、文件隨機(jī)修改
四、 Swift
Swift 最初是由Rackspace公司開發(fā)的分布式對(duì)象存儲(chǔ)服務(wù), 2010 年貢獻(xiàn)給 OpenStack 開源社區(qū)。作為其最初的核心子項(xiàng)目之一,為其 Nova 子項(xiàng)目提供虛機(jī)鏡像存儲(chǔ)服務(wù)。
1.Swift的主要架構(gòu)Swift 采用完全對(duì)稱、面向資源的分布式系統(tǒng)架構(gòu)設(shè)計(jì),所有組件都可擴(kuò)展,避免因單點(diǎn)失效而影響整個(gè)系統(tǒng)的可用性。
Swift 組件包括:? 代理服務(wù)(Proxy Server):對(duì)外提供對(duì)象服務(wù) API,轉(zhuǎn)發(fā)請(qǐng)求至相應(yīng)的賬戶、容器或?qū)ο蠓?wù)? 認(rèn)證服務(wù)(Authentication Server):驗(yàn)證用戶的身份信息,并獲得一個(gè)訪問令牌(Token)? 緩存服務(wù)(Cache Server):緩存令牌,賬戶和容器信息,但不會(huì)緩存對(duì)象本身的數(shù)據(jù)? 賬戶服務(wù)(Account Server):提供賬戶元數(shù)據(jù)和統(tǒng)計(jì)信息,并維護(hù)所含容器列表的服務(wù)? 容器服務(wù)(Container Server):提供容器元數(shù)據(jù)和統(tǒng)計(jì)信息,并維護(hù)所含對(duì)象列表的服務(wù)? 對(duì)象服務(wù)(Object Server):提供對(duì)象元數(shù)據(jù)和內(nèi)容服務(wù),每個(gè)對(duì)象會(huì)以文件存儲(chǔ)在文件系統(tǒng)中? 復(fù)制服務(wù)(Replicator):檢測(cè)本地副本和遠(yuǎn)程副本是否一致,采用推式(Push)更新遠(yuǎn)程副本? 更新服務(wù)(Updater):對(duì)象內(nèi)容的更新? 審計(jì)服務(wù)(Auditor):檢查對(duì)象、容器和賬戶的完整性,如果發(fā)現(xiàn)錯(cuò)誤,文件將被隔離? 賬戶清理服務(wù)(Account Reaper):移除被標(biāo)記為刪除的賬戶,刪除其所包含的所有容器和對(duì)象
2.Swift的數(shù)據(jù)模型**Swift的數(shù)據(jù)模型采用層次結(jié)構(gòu),共設(shè)三層:**Account/Container/Object(即賬戶/容器/對(duì)象),每層節(jié)點(diǎn)數(shù)均沒有限制,可以任意擴(kuò)展。數(shù)據(jù)模型如下:
3.一致性散列函數(shù)Swift是基于一致性散列技術(shù),通過計(jì)算將對(duì)象均勻分布到虛擬空間的虛擬節(jié)點(diǎn)上,在增加或刪除節(jié)點(diǎn)時(shí)可大大減少需移動(dòng)的數(shù)據(jù)量;為便于高效的移位操作,虛擬空間大小通常采用 2 n;通過獨(dú)特的數(shù)據(jù)結(jié)構(gòu) Ring(環(huán)),再將虛擬節(jié)點(diǎn)映射到實(shí)際的物理存儲(chǔ)設(shè)備上,完成尋址過程。如下圖所示:
散列空間4 個(gè)字節(jié)(32為),虛擬節(jié)點(diǎn)數(shù)最大為232,如將散列結(jié)果右移 m 位,可產(chǎn)生 2(32-m)個(gè)虛擬節(jié)點(diǎn),(如上圖中所示,當(dāng)m=29 時(shí),可產(chǎn)生 8 個(gè)虛擬節(jié)點(diǎn))。
4.環(huán)的數(shù)據(jù)結(jié)構(gòu)Swift為賬戶、容器和對(duì)象分別定義了的環(huán)。環(huán)是為了將虛擬節(jié)點(diǎn)(分區(qū))映射到一組物理存儲(chǔ)設(shè)備上,并提供一定的冗余度而設(shè)計(jì)的,環(huán)的數(shù)據(jù)信息包括存儲(chǔ)設(shè)備列表和設(shè)備信息、分區(qū)到設(shè)備的映射關(guān)系、計(jì)算分區(qū)號(hào)的位移(即上圖中的m)。賬戶、容器和對(duì)象的尋址過程。(以對(duì)象的尋址過程為例):
以對(duì)象的層次結(jié)構(gòu) account/container/object 作為鍵,采用 MD5 散列算法得到一個(gè)散列值;
對(duì)該散列值的前 4 個(gè)字節(jié)進(jìn)行右移操作(右移m位),得到分區(qū)索引號(hào);
在分區(qū)到設(shè)備映射表里,按照分區(qū)索引號(hào),查找該對(duì)象所在分區(qū)對(duì)應(yīng)的所有物理設(shè)備編號(hào)。如下圖:
5.Swift的一致性設(shè)計(jì)
Swift 采用 Quorum 仲裁協(xié)議
? 定義:N:數(shù)據(jù)的副本總數(shù);W:寫操作被確認(rèn)接受的副本數(shù)量;R:讀操作的副本數(shù)量
? 強(qiáng)一致性:R+W》N, 就能保證對(duì)副本的讀寫操作會(huì)產(chǎn)生交集,從而保證可以讀取到最新版本;
? 弱一致性:R+W《=N,讀寫操作的副本集合可能不產(chǎn)生交集,此時(shí)就可能會(huì)讀到臟數(shù)據(jù);
Swift 默認(rèn)配置是N=3,W=2,R=2,即每個(gè)對(duì)象會(huì)存在 3 個(gè)副本,至少需要更新 2 個(gè)副本才算寫成功;如果讀到的2個(gè)數(shù)據(jù)存在不一致,則通過檢測(cè)和復(fù)制協(xié)議來完成數(shù)據(jù)同步。
如R=1,就可能會(huì)讀到臟數(shù)據(jù),此時(shí),通過犧牲一定的一致性,可提高讀取速度,(而一致性可以通過后臺(tái)的方式完成同步,從而保證數(shù)據(jù)的最終一致性)
Quorum 協(xié)議示例如下所示:
6.Swift特點(diǎn)
? 原生的對(duì)象存儲(chǔ),不支持實(shí)時(shí)的文件讀寫、編輯功能
? 完全對(duì)稱架構(gòu),無主節(jié)點(diǎn),無單點(diǎn)故障,易于大規(guī)模擴(kuò)展,性能容量線性增長(zhǎng)
? 數(shù)據(jù)實(shí)現(xiàn)最終一致性,不需要所有副本寫入即可返回,讀取數(shù)據(jù)時(shí)需要進(jìn)行數(shù)據(jù)副本的校驗(yàn)
? 是OpenStack的子項(xiàng)目之一,適合云環(huán)境的部署
? Swift的對(duì)象存儲(chǔ)與Ceph提供的對(duì)象存儲(chǔ)區(qū)別:客戶端在訪問對(duì)象存儲(chǔ)系統(tǒng)服務(wù)時(shí),Swift要求客戶端必須訪問Swift網(wǎng)關(guān)才能獲得數(shù)據(jù)。而Ceph可以在每個(gè)存儲(chǔ)節(jié)點(diǎn)上的OSD(對(duì)象存儲(chǔ)設(shè)備)獲取數(shù)據(jù)信息; 在數(shù)據(jù)一致性方面,Swift的數(shù)據(jù)是最終一致,而Ceph是始終跨集群強(qiáng)一致性)
五、 Lustre分布式存儲(chǔ)
Lustre是基于Linux平臺(tái)的開源集群(并行)文件系統(tǒng),最早在1999年由皮特?布拉姆創(chuàng)建的集群文件系統(tǒng)公司(Cluster File Systems Inc.)開始研發(fā),后由HP、Intel、Cluster File System和美國(guó)能源部聯(lián)合開發(fā),2003年正式開源,主要用于HPC超算領(lǐng)域。
1、Lustre的主要架構(gòu)
Lustre組件包括:? 管理服務(wù)器(MGS):存放集群中所有Lustre文件系統(tǒng)的配置信息,Lustre客戶通過聯(lián)系MGS獲取信息,可以與MDS共享存儲(chǔ)空間? 元數(shù)據(jù)服務(wù)器(MDS): 管理存儲(chǔ)在MDT中的元數(shù)據(jù),使存儲(chǔ)在一個(gè)或多個(gè)MDT中的元數(shù)據(jù)可供Lustre客戶端使用,每個(gè)MDS可管理一個(gè)或多個(gè)MDT。? 元數(shù)據(jù)目標(biāo)(MDT): MDS用于存儲(chǔ)元數(shù)據(jù)(例如文件名,目錄,權(quán)限和文件布局),一個(gè)MDT可用于多個(gè)MDS,但一次只能有一個(gè)MDS訪問? 對(duì)象存儲(chǔ)服務(wù)器(OSS):為一個(gè)或多個(gè)本地OST提供文件I / O服務(wù)和網(wǎng)絡(luò)請(qǐng)求處理, 通常,OSS服務(wù)于兩個(gè)到八個(gè)OST? 對(duì)象存儲(chǔ)目標(biāo)(OST):用戶文件數(shù)據(jù)存儲(chǔ)在一個(gè)或多個(gè)對(duì)象中,每個(gè)對(duì)象位于單獨(dú)OST中? Lustre客戶端:運(yùn)行Lustre客戶端軟件的計(jì)算節(jié)點(diǎn),可掛載Lustre文件系統(tǒng)??蛻舳塑浖ㄒ粋€(gè)管理客戶端(MGC),一個(gè)元數(shù)據(jù)客戶端(MDC)和多個(gè)對(duì)象存儲(chǔ)客戶端(OSC)。每個(gè)OSC對(duì)應(yīng)于文件系統(tǒng)中的一個(gè)OST。? 邏輯對(duì)象卷(LOV)通過聚合OSC以提供對(duì)所有OST的透明訪問,邏輯元數(shù)據(jù)卷(LMV)通過聚合MDC提供一種對(duì)所有MDT透明的訪問。
2、Lustre特點(diǎn)? 支持?jǐn)?shù)萬個(gè)客戶端系統(tǒng),支持PB級(jí)存儲(chǔ)容量,單個(gè)文件最大支持320TB容量? 支持RDMA網(wǎng)絡(luò),大文件讀寫分片優(yōu)化,多個(gè)OSS能獲得更高的聚合帶寬? 缺少副本機(jī)制,存在單點(diǎn)故障。如果一個(gè)客戶端或節(jié)點(diǎn)發(fā)生故障,存儲(chǔ)在該節(jié)點(diǎn)上的數(shù)據(jù)在重新啟動(dòng)前將不可訪問? 適用高性能計(jì)算HPC領(lǐng)域,適用于大文件連續(xù)讀寫。
六、 主流分布式存儲(chǔ)技術(shù)的比較
幾種主流分布式存儲(chǔ)技術(shù)的特點(diǎn)比較如下:
此外,根據(jù)分布式存儲(chǔ)系統(tǒng)的設(shè)計(jì)理念,其軟件和硬件解耦,分布式存儲(chǔ)的許多功能,包括可靠性和性能增強(qiáng)都由軟件提供,因此大家往往會(huì)認(rèn)為底層硬件已不再重要。但事實(shí)往往并非如此,我們?cè)谶M(jìn)行分布式存儲(chǔ)系統(tǒng)集成時(shí),除考慮選用合適的分布式存儲(chǔ)技術(shù)以外,還需考慮底層硬件的兼容性。一般而言,分布式存儲(chǔ)系統(tǒng)的產(chǎn)品有三種形態(tài):軟硬件一體機(jī)、硬件OEM和軟件+標(biāo)準(zhǔn)硬件,大家在選擇時(shí),需根據(jù)產(chǎn)品的成熟度、風(fēng)險(xiǎn)規(guī)避、運(yùn)維要求等,結(jié)合自身的技術(shù)力量等,選擇合適的產(chǎn)品形態(tài)。
評(píng)論
查看更多