日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
聊聊主流分布式存儲技術的對比分析與應用

聊聊主流分布式存儲技術的對比分析與應用

作者:大數(shù)據(jù)技術實戰(zhàn) 2020-04-24 16:00:58

存儲

存儲軟件

分布式 Ceph最早起源于Sage就讀博士期間的工作、成果于2004年發(fā)表,并隨后貢獻給開源社區(qū)。經(jīng)過多年的發(fā)展之后,已得到眾多云計算和存儲廠商的支持,成為應用最廣泛的開源分布式存儲平臺。

分布式文件系統(tǒng)

分布式文件系統(tǒng)(Distributed File System)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接再本地節(jié)點上,而是通過計算機網(wǎng)絡與節(jié)點相連分布式文件系統(tǒng)的設計基于客戶機/服務器(C/S)模式常用分布式文件系統(tǒng) Lustre,Hadoop,F(xiàn)astDFS,Ceph,GlusterFS。

Ceph簡介

有官方(付費)的和開源的 Ceph 是一個分布式文件系統(tǒng) 具有高擴展、高可用、高性能的特點 Ceph 可以提供對象存儲、塊存儲、文件系統(tǒng)存儲 Ceph 可以提供PB級別的存儲空間(PB-->TB-->-->GB) 軟件定義存儲(Software Defined Storage)作為存儲,行業(yè)的一大發(fā)展趨勢 官網(wǎng):http://docs.ceph.org/start/intro。

Ceph過往

Ceph最早起源于Sage就讀博士期間的工作、成果于2004年發(fā)表,并隨后貢獻給開源社區(qū)。經(jīng)過多年的發(fā)展之后,已得到眾多云計算和存儲廠商的支持,成為應用最廣泛的開源分布式存儲平臺。

Ceph根據(jù)場景可分為對象存儲、塊設備存儲和文件存儲。Ceph相比其它分布式存儲技術,其優(yōu)勢點在于:它不單是存儲,同時還充分利用了存儲節(jié)點上的計算能力,在存儲每一個數(shù)據(jù)時,都會通過計算得出該數(shù)據(jù)存儲的位置,盡量將數(shù)據(jù)分布均衡。同時,由于采用了CRUSH、HASH等算法,使得它不存在傳統(tǒng)的單點故障,且隨著規(guī)模的擴大,性能并不會受到影響。

1.Ceph的主要架構

Ceph的最底層是RADOS(分布式對象存儲系統(tǒng)),它具有可靠、智能、分布式等特性,實現(xiàn)高可靠、高可拓展、高性能、高自動化等功能,并最終存儲用戶數(shù)據(jù)。RADOS系統(tǒng)主要由兩部分組成,分別是OSD和Monitor。

RADOS之上是LIBRADOS,LIBRADOS是一個庫,它允許應用程序通過訪問該庫來與RADOS系統(tǒng)進行交互,支持多種編程語言,比如C、C++、Python等。

基于LIBRADOS層開發(fā)的有三種接口,分別是RADOSGW、librbd和MDS。

RADOSGW是一套基于當前流行的RESTFUL協(xié)議的網(wǎng)關,支持對象存儲,兼容S3和Swift。

librbd提供分布式的塊存儲設備接口,支持塊存儲。

MDS提供兼容POSIX的文件系統(tǒng),支持文件存儲。

Ceph的功能模塊

Ceph的核心組件包括Client客戶端、MON監(jiān)控服務、MDS元數(shù)據(jù)服務、OSD存儲服務,各組件功能如下:

  • Client客戶端:負責存儲協(xié)議的接入,節(jié)點負載均衡
  • MON監(jiān)控服務:負責監(jiān)控整個集群,維護集群的健康狀態(tài),維護展示集群狀態(tài)的各種圖表,如OSD Map、Monitor Map、PG Map和CRUSH Map
  • MDS元數(shù)據(jù)服務:負責保存文件系統(tǒng)的元數(shù)據(jù),管理目錄結(jié)構
  • OSD存儲服務:主要功能是存儲數(shù)據(jù)、復制數(shù)據(jù)、平衡數(shù)據(jù)、恢復數(shù)據(jù),以及與其它OSD間進行心跳檢查等。一般情況下一塊硬盤對應一個OSD。

3.Ceph的資源劃分

Ceph采用crush算法,在大規(guī)模集群下,實現(xiàn)數(shù)據(jù)的快速、準確存放,同時能夠在硬件故障或擴展硬件設備時,做到盡可能小的數(shù)據(jù)遷移,其原理如下:

當用戶要將數(shù)據(jù)存儲到Ceph集群時,數(shù)據(jù)先被分割成多個object,(每個object一個object id,大小可設置,默認是4MB),object是Ceph存儲的最小存儲單元。

由于object的數(shù)量很多,為了有效減少了Object到OSD的索引表、降低元數(shù)據(jù)的復雜度,使得寫入和讀取更加靈活,引入了pg(Placement Group ):PG用來管理object,每個object通過Hash,映射到某個pg中,一個pg可以包含多個object。

Pg再通過CRUSH計算,映射到osd中。如果是三副本的,則每個pg都會映射到三個osd,保證了數(shù)據(jù)的冗余。

4.Ceph的數(shù)據(jù)寫入

Ceph數(shù)據(jù)的寫入流程

  • 數(shù)據(jù)通過負載均衡獲得節(jié)點動態(tài)IP地址;
  • 通過塊、文件、對象協(xié)議將文件傳輸?shù)焦?jié)點上;
  • 數(shù)據(jù)被分割成4M對象并取得對象ID;
  • 對象ID通過HASH算法被分配到不同的PG;
  • 不同的PG通過CRUSH算法被分配到不同的OSD

5.Ceph的特點

  • ? Ceph支持對象存儲、塊存儲和文件存儲服務,故 稱為統(tǒng)一存儲。
  • ? 采用CRUSH算法,數(shù)據(jù)分布均衡,并行度高,不需要維護固定的元數(shù)據(jù)結(jié)構;
  • ? 數(shù)據(jù)具有強一致,確保所有副本寫入完成才返回確認,適合讀多寫少場景;
  • ? 去中心化,MDS之間地位相同,無固定的中心節(jié)點

Ceph存在一些缺點:

  • ? 去中心化的分布式解決方案,需要提前做好規(guī)劃設計,對技術團隊的要求能力比較高。
  • ? Ceph擴容時,由于其數(shù)據(jù)分布均衡的特性,會導致整個存儲系統(tǒng)性能的下降。

GFS

GFS是google的分布式文件存儲系統(tǒng),是專為存儲海量搜索數(shù)據(jù)而設計的,2003年提出,是閉源的分布式文件系統(tǒng)。適用于大量的順序讀取和順序追加,如大文件的讀寫。注重大文件的持續(xù)穩(wěn)定帶寬,而不是單次讀寫的延遲。

1.GFS的主要架構

GFS 架構比較簡單,一個 GFS 集群一般由一個 master 、多個 chunkserver 和多個 clients 組成。

在 GFS 中,所有文件被切分成若干個 chunk,每個 chunk 擁有唯一不變的標識(在 chunk 創(chuàng)建時,由 master 負責分配),所有 chunk 都實際存儲在 chunkserver 的磁盤上。

為了容災,每個 chunk 都會被復制到多個 chunkserve

2.GFS的功能模塊

? GFS client客戶端:為應用提供API,與POSIX API類似。同時緩存從GFS master讀取的元數(shù)據(jù)chunk信息;

? GFS master元數(shù)據(jù)服務器:管理所有文件系統(tǒng)的元數(shù)據(jù),包括命令空間(目錄層級)、訪問控制信息、文件到chunk的映射關系,chunk的位置等。同時 master 還管理系統(tǒng)范圍內(nèi)的各種活動,包括chunk 創(chuàng)建、復制、數(shù)據(jù)遷移、垃圾回收等;

? GFS chunksever存儲節(jié)點:用于所有 chunk的存儲。一個文件被分割為多個大小固定的chunk(默認64M),每個chunk有全局唯一的chunk ID。

3.GFS的寫入流程

  1. Client 向 master 詢問要修改的 chunk在哪個 chunkserver上,以及 該chunk 其他副本的位置信息。
  2. Master 將Primary、secondary的相關信息返回給 client。
  3. Client 將數(shù)據(jù)推送給 primary 和 secondary;。
  4. 當所有副本都確認收到數(shù)據(jù)后,client 發(fā)送寫請求給 primary,primary 給不同 client 的操作分配序號,保證操作順序執(zhí)行。
  5. Primary 把寫請求發(fā)送到 secondary,secondary 按照 primary 分配的序號順序執(zhí)行所有操作
  6. 當 Secondary 執(zhí)行完后回復 primary 執(zhí)行結(jié)果。
  7. Primary 回復 client 執(zhí)行結(jié)果。

由上述可見,GFS在進行寫數(shù)據(jù)時,有如下特點:

  • GFS在數(shù)據(jù)讀寫時,數(shù)據(jù)流與控制流是分開的,并通過租約機制,在跨多個副本的數(shù)據(jù)寫入中, 保障順序一致性;
  • Master將chunk租約發(fā)放給其中一個副本,這個副本稱為主副本,由主副本確定chunk的寫入順序,次副本則遵守這個順序,這樣就保障了全局順序一致性
  • Master返回客戶端主副本和次副本的位置信息,客戶端緩存這些信息以備將來使用,只有當主副本所在chunkserver不可用或返回租約過期了,客戶端才需要再次聯(lián)系Master;
  • GFS采用鏈式推送,以最大化利用每個機器的網(wǎng)絡帶寬,避免網(wǎng)絡瓶頸和高延遲連接,最小化推送延遲;
  • GFS使用TCP流式傳輸數(shù)據(jù),以最小化延遲。

4.GFS特點

? 適合大文件場景的應用,特別是針對GB級別的大文件,適用于數(shù)據(jù)訪問延時不敏感的搜索類業(yè)務

? 中心化架構,只有1個master處于active狀態(tài)

? 緩存和預取,通過在client端緩存元數(shù)據(jù),盡量減少與master的交互,通過文件的預讀取來提升并發(fā)性能

? 高可靠性,master需要持久化的數(shù)據(jù)會通過操作日志與checkpoint的方式存放多份,故障后master會自動切換重啟。

HDFS

HDFS(Hadoop Distributed File System),是一個適合運行在通用硬件(commodity hardware)上的分布式文件系統(tǒng),是Hadoop的核心子項目,是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的。該系統(tǒng)仿效了谷歌文件系統(tǒng)(GFS),是GFS的一個簡化和開源版本。

1.HDFS的主要架構

? HDFS Client(客戶端):從NameNode獲取文件的位置信息,再從DataNode讀取或者寫入數(shù)據(jù)。此外,client在數(shù)據(jù)存儲時,負責文件的分割;

? NameNode(元數(shù)據(jù)節(jié)點):管理名稱空間、數(shù)據(jù)塊(Block)映射信息、配置副本策略、處理客戶端讀寫請求;

? DataNode(存儲節(jié)點):負責執(zhí)行實際的讀寫操作,存儲實際的數(shù)據(jù)塊,同一個數(shù)據(jù)塊會被存儲在多個DataNode上

? Secondary NameNode:定期合并元數(shù)據(jù),推送給NameNode,在緊急情況下,可輔助NameNode的HA恢復。

2.HDFS的特點(Vs GFS)

? 分塊更大,每個數(shù)據(jù)塊默認128MB;

? 不支持并發(fā),同一時刻只允許一個寫入者或追加者;

? 過程一致性,寫入數(shù)據(jù)的傳輸順序與最終寫入順序一致;

? Master HA,2.X版本支持兩個NameNode,(分別處于Active和Standby狀態(tài)),故障切換時間一般幾十秒到數(shù)分鐘

3.HDFS適合的應用場景:

? 適用于大文件、大數(shù)據(jù)處理,處理數(shù)據(jù)達到 GB、TB、甚至PB級別的數(shù)據(jù)。

? 適合流式文件訪問,一次寫入,多次讀取。

? 文件一旦寫入不能修改,只能追加。

4.HDFS不適合的場景:

? 低延時數(shù)據(jù)訪問。

? 小文件存儲

? 并發(fā)寫入、文件隨機修改

Swift

Swift 最初是由Rackspace公司開發(fā)的分布式對象存儲服務, 2010 年貢獻給 OpenStack 開源社區(qū)。作為其最初的核心子項目之一,為其 Nova 子項目提供虛機鏡像存儲服務。

1.Swift的主要架構

Swift 采用完全對稱、面向資源的分布式系統(tǒng)架構設計,所有組件都可擴展,避免因單點失效而影響整個系統(tǒng)的可用性。

Swift 組件包括:

? 代理服務(Proxy Server):對外提供對象服務 API,轉(zhuǎn)發(fā)請求至相應的賬戶、容器或?qū)ο蠓?/p>

? 認證服務(Authentication Server):驗證用戶的身份信息,并獲得一個訪問令牌(Token)

? 緩存服務(Cache Server):緩存令牌,賬戶和容器信息,但不會緩存對象本身的數(shù)據(jù)

? 賬戶服務(Account Server):提供賬戶元數(shù)據(jù)和統(tǒng)計信息,并維護所含容器列表的服務

? 容器服務(Container Server):提供容器元數(shù)據(jù)和統(tǒng)計信息,并維護所含對象列表的服務

? 對象服務(Object Server):提供對象元數(shù)據(jù)和內(nèi)容服務,每個對象會以文件存儲在文件系統(tǒng)中

? 復制服務(Replicator):檢測本地副本和遠程副本是否一致,采用推式(Push)更新遠程副本

? 更新服務(Updater):對象內(nèi)容的更新

? 審計服務(Auditor):檢查對象、容器和賬戶的完整性,如果發(fā)現(xiàn)錯誤,文件將被隔離

? 賬戶清理服務(Account Reaper):移除被標記為刪除的賬戶,刪除其所包含的所有容器和對象

2.Swift的數(shù)據(jù)模型

**Swift的數(shù)據(jù)模型采用層次結(jié)構,共設三層:**Account/Container/Object(即賬戶/容器/對象),每層節(jié)點數(shù)均沒有限制,可以任意擴展。數(shù)據(jù)模型如下:

3.一致性散列函數(shù)

Swift是基于一致性散列技術,通過計算將對象均勻分布到虛擬空間的虛擬節(jié)點上,在增加或刪除節(jié)點時可大大減少需移動的數(shù)據(jù)量;

為便于高效的移位操作,虛擬空間大小通常采用 2 n;通過獨特的數(shù)據(jù)結(jié)構 Ring(環(huán)),再將虛擬節(jié)點映射到實際的物理存儲設備上,完成尋址過程。如下圖所示:

散列空間4 個字節(jié)(32為),虛擬節(jié)點數(shù)最大為232,如將散列結(jié)果右移 m 位,可產(chǎn)生 2(32-m)個虛擬節(jié)點,(如上圖中所示,當m=29 時,可產(chǎn)生 8 個虛擬節(jié)點)。

4.環(huán)的數(shù)據(jù)結(jié)構

Swift為賬戶、容器和對象分別定義了的環(huán)。

環(huán)是為了將虛擬節(jié)點(分區(qū))映射到一組物理存儲設備上,并提供一定的冗余度而設計的,環(huán)的數(shù)據(jù)信息包括存儲設備列表和設備信息、分區(qū)到設備的映射關系、計算分區(qū)號的位移(即上圖中的m)。

賬戶、容器和對象的尋址過程。(以對象的尋址過程為例):

以對象的層次結(jié)構 account/container/object 作為鍵,采用 MD5 散列算法得到一個散列值;

對該散列值的前 4 個字節(jié)進行右移操作(右移m位),得到分區(qū)索引號;

在分區(qū)到設備映射表里,按照分區(qū)索引號,查找該對象所在分區(qū)對應的所有物理設備編號。如下圖:

5.Swift的一致性設計

  • Swift 采用 Quorum 仲裁協(xié)議
  • 定義:N:數(shù)據(jù)的副本總數(shù);W:寫操作被確認接受的副本數(shù)量;R:讀操作的副本數(shù)量
  • 強一致性:R+W>N, 就能保證對副本的讀寫操作會產(chǎn)生交集,從而保證可以讀取到最新版本;
  • 弱一致性:R+W<=N,讀寫操作的副本集合可能不產(chǎn)生交集,此時就可能會讀到臟數(shù)據(jù);
  • Swift 默認配置是N=3,W=2,R=2,即每個對象會存在 3 個副本,至少需要更新 2 個副本才算寫成功;如果讀到的2個數(shù)據(jù)存在不一致,則通過檢測和復制協(xié)議來完成數(shù)據(jù)同步。
  • 如R=1,就可能會讀到臟數(shù)據(jù),此時,通過犧牲一定的一致性,可提高讀取速度,(而一致性可以通過后臺的方式完成同步,從而保證數(shù)據(jù)的最終一致性)

Quorum 協(xié)議示例如下所示:

6.Swift特點

原生的對象存儲,不支持實時的文件讀寫、編輯功能

完全對稱架構,無主節(jié)點,無單點故障,易于大規(guī)模擴展,性能容量線性增長

數(shù)據(jù)實現(xiàn)最終一致性,不需要所有副本寫入即可返回,讀取數(shù)據(jù)時需要進行數(shù)據(jù)副本的校驗

是OpenStack的子項目之一,適合云環(huán)境的部署

Swift的對象存儲與Ceph提供的對象存儲區(qū)別:客戶端在訪問對象存儲系統(tǒng)服務時,Swift要求客戶端必須訪問Swift網(wǎng)關才能獲得數(shù)據(jù)。而Ceph可以在每個存儲節(jié)點上的OSD(對象存儲設備)獲取數(shù)據(jù)信息; 在數(shù)據(jù)一致性方面,Swift的數(shù)據(jù)是最終一致,而Ceph是始終跨集群強一致性)

五、 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超算領域。

1、Lustre的主要架構

Lustre組件包括:

? 管理服務器(MGS):存放集群中所有Lustre文件系統(tǒng)的配置信息,Lustre客戶通過聯(lián)系MGS獲取信息,可以與MDS共享存儲空間

? 元數(shù)據(jù)服務器(MDS): 管理存儲在MDT中的元數(shù)據(jù),使存儲在一個或多個MDT中的元數(shù)據(jù)可供Lustre客戶端使用,每個MDS可管理一個或多個MDT。

? 元數(shù)據(jù)目標(MDT): MDS用于存儲元數(shù)據(jù)(例如文件名,目錄,權限和文件布局),一個MDT可用于多個MDS,但一次只能有一個MDS訪問

? 對象存儲服務器(OSS):為一個或多個本地OST提供文件I / O服務和網(wǎng)絡請求處理, 通常,OSS服務于兩個到八個OST

? 對象存儲目標(OST):用戶文件數(shù)據(jù)存儲在一個或多個對象中,每個對象位于單獨OST中

? Lustre客戶端:運行Lustre客戶端軟件的計算節(jié)點,可掛載Lustre文件系統(tǒng)??蛻舳塑浖ㄒ粋€管理客戶端(MGC),一個元數(shù)據(jù)客戶端(MDC)和多個對象存儲客戶端(OSC)。每個OSC對應于文件系統(tǒng)中的一個OST。

? 邏輯對象卷(LOV)通過聚合OSC以提供對所有OST的透明訪問,邏輯元數(shù)據(jù)卷(LMV)通過聚合MDC提供一種對所有MDT透明的訪問。

2、Lustre特點

? 支持數(shù)萬個客戶端系統(tǒng),支持PB級存儲容量,單個文件最大支持320TB容量

? 支持RDMA網(wǎng)絡,大文件讀寫分片優(yōu)化,多個OSS能獲得更高的聚合帶寬

? 缺少副本機制,存在單點故障。如果一個客戶端或節(jié)點發(fā)生故障,存儲在該節(jié)點上的數(shù)據(jù)在重新啟動前將不可訪問

? 適用高性能計算HPC領域,適用于大文件連續(xù)讀寫。

六、 主流分布式存儲技術的比較

幾種主流分布式存儲技術的特點比較如下:

此外,根據(jù)分布式存儲系統(tǒng)的設計理念,其軟件和硬件解耦,分布式存儲的許多功能,包括可靠性和性能增強都由軟件提供,因此大家往往會認為底層硬件已不再重要。但事實往往并非如此,我們在進行分布式存儲系統(tǒng)集成時,除考慮選用合適的分布式存儲技術以外,還需考慮底層硬件的兼容性。一般而言,分布式存儲系統(tǒng)的產(chǎn)品有三種形態(tài):軟硬件一體機、硬件OEM和軟件+標準硬件,大家在選擇時,需根據(jù)產(chǎn)品的成熟度、風險規(guī)避、運維要求等,結(jié)合自身的技術力量等,選擇合適的產(chǎn)品形態(tài)。

OpenStack簡介

OpenStack 是一個開源的 IaaS 實現(xiàn),它由一些相互關聯(lián)的子項目組成,主要包括計算、存儲、網(wǎng)絡。

由于以 Apache 協(xié)議發(fā)布,自 2010 年項目成立以來,超過 200 個公司加入了OpenStack 項目,其中包括 AT&T、AMD、Cisco、Dell、IBM、Intel、Red Hat 等。

目前參與 OpenStack 項目的開發(fā)人員有 17,000+,來自 139 個國家,這一數(shù)字還在不斷增長中。

OpenStack 兼容一部分 AWS 接口,同時為了提供更強大的功能,也提供OpenStack 風格的接口(RESTFul API)。

和其他開源 IaaS 相比,架構上松耦合、高可擴展、分布式、純 Python實現(xiàn),以及友好活躍的社區(qū)使其大受歡迎,每半年一次的開發(fā)峰會也吸引了來自全世界的開發(fā)者、供應商和客戶。

OpenStack 的主要子項目有:

Compute(Nova)提供計算虛擬化服務,是 OpenStack 的核心,負責管理和創(chuàng)建虛擬機。它被設計成方便擴展,支持多種虛擬化技術,并且可以部署在標準硬件上。

Object Storage(Swift)提供對象存儲服務,是一個分布式,可擴展,多副本的存儲系統(tǒng)。

Block Storage(Cinder),提供塊存儲服務,為 OpenStack 的虛擬機提供持久的塊級存儲設備。支持多種存儲后端,包括Ceph,EMC 等。

Networking(Neutron)提供網(wǎng)絡虛擬化服務,是一個可拔插,可擴展,API 驅(qū)動的服務。

Dashboard 提供了一個圖形控制臺服務,讓用戶方便地訪問,使用和維護 OpenStack中的資源。

Image(glance)提供鏡像服務,它旨在發(fā)現(xiàn),注冊和交付虛擬機磁盤和鏡像。支持多種后端。

Telemetry(Ceilometer)提供用量統(tǒng)計服務,通過它可以方便地實現(xiàn) OpenStack計費功能。

Orchestration(Heat)整合了 OpenStack 中的眾多組件,類似 AWS 的 CloudFormation,讓用戶能夠通過模板來管理資源。

Database(Trove)基于 OpenStack 構建的 database-as-a-service。

通常構建企業(yè)私有云,使用Nova、Glance、Keystone、Neutron 就可基本完成私有云IAAS搭建。近幾年流行PAAS云服務,一般對業(yè)務系統(tǒng)Docker化,使用容器編排構建容器云。容器云可獨立直接部署在物理機之上,也可構建在openstack私有云服務IAAS之上。


網(wǎng)頁題目:聊聊主流分布式存儲技術的對比分析與應用
URL標題:http://www.5511xx.com/article/cosgieh.html