云計算-分布式存儲_第1頁
云計算-分布式存儲_第2頁
云計算-分布式存儲_第3頁
云計算-分布式存儲_第4頁
云計算-分布式存儲_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

云計算原理與實踐PrinciplesandPracticeofCloudComputing2021/6/271Outline5.1分布式存儲的基礎5.2文件存儲5.3從單機存儲系統(tǒng)到分布式存儲系統(tǒng)5.4實踐:分布式存儲系統(tǒng)CephMachineLearningDomainexpertiseMathematicsDataengineering2021/6/2725.1分布式存儲的基礎5.1.1基本概念5.1.2分布式存儲分類5.1.3分布式存儲的發(fā)展歷史2021/6/2735.1.1基本概念分布式存儲系統(tǒng)的定義:分布式存儲系統(tǒng)是將為數眾多的普通計算機或服務器通過網絡進行連接,同時對外提供一個整體的存儲服務。分布式存儲系統(tǒng)包括以下幾個特性:高性能可擴展低成本易用性分布式存儲系統(tǒng)的技術挑戰(zhàn)包括:數據和狀態(tài)信息的持久化、數據的自動遷移、系統(tǒng)的自動容錯、并發(fā)讀寫的數據的一致性等方面。2021/6/2745.1.2分布式存儲分類分布式存儲面臨的應用場景和數據需求都比較復雜,根據數據類型,可以將其分為非結構化數據、結構化數據、半結構化數據三類。正因為數據類型的多樣性,不同的分布式存儲系統(tǒng)適合處理不同類型的數據,因此可以將分布式存儲系統(tǒng)分為四類:分布式文件系統(tǒng)分布式鍵值(Key-Value)系統(tǒng)分布式表系統(tǒng)分布式數據庫2021/6/2751.分布式文件系統(tǒng)分布式文件系統(tǒng)存儲三種類型的數據:Blob對象、定長塊以及大文件。圖5.1數據塊與Blob對象、定長塊、大文件之間的關系2021/6/2762分布式鍵值(Key-Value)系統(tǒng)分布式鍵值系統(tǒng)用于存儲關系簡單的半結構化數據,它提供基于主鍵的CRUD(Create/Read/Update/Delete)功能,即根據主鍵創(chuàng)建、讀取、更新或者刪除一條鍵值記錄。典型的系統(tǒng)有AmazonDynamo。分布式鍵值系統(tǒng)是分布式表系統(tǒng)的一種簡化,一般用作緩存,比如Memcache。從數據結構的角度看,分布式鍵值系統(tǒng)支持將數據分布到集群中的多個存儲節(jié)點。一致性散列是分布式鍵值系統(tǒng)中常用的數據分布技術,由于在眾多系統(tǒng)中被采用而變得非常有名。2021/6/2773分布式表系統(tǒng)分布式表系統(tǒng)主要用于存儲半結構化數據。與分布式鍵值系統(tǒng)相比,分布式表系統(tǒng)不僅僅支持簡單的CRUD操作,而且支持掃描某個主鍵范圍。分布式表系統(tǒng)以表格為單位組織數據,每個表格包括很多行,通過主鍵標識一行,支持根據主鍵的CRUD功能以及范圍查找功能。典型的分布式表系統(tǒng)包括GoogleBigtable、MicrosoftAzureTableStorage、AmazonDynamoDB等。2021/6/2784分布式數據庫分布式數據庫是從傳統(tǒng)的基于單機的關系型數據庫擴展而來,用于存儲大規(guī)模的結構化數據。分布式數據庫采用二維表格組織數據,提供經典的SQL關系查詢語言,支持嵌套子查詢、多表關聯等復雜操作,并提供數據庫事務以及并發(fā)控制。關系數據庫是目前為止最為成熟的存儲技術,功能豐富,有完善的商業(yè)關系數據庫軟件的支持。隨著大數據時代的到來,為了解決關系數據庫面臨的可擴展性、高并發(fā)以及性能方面的問題,各種各樣的非關系數據庫不斷涌現,這類被稱為NoSQL的系統(tǒng),可以理解為“NotOnlySQL”的含義。2021/6/279圖5.2分布式文件系統(tǒng)的發(fā)展5.1.3分布式存儲的發(fā)展歷史2021/6/27101.20世紀80年代的代表:AFS、NFS、Coda(1)

AFS:1983年CMU和IBM共同合作開發(fā)了Andrew文件系統(tǒng)(AndrewFileSystem,AFS)(2)

NFS:1985年,Sun公司基于UDP開發(fā)了網絡共享文件系統(tǒng)(NetworkFileSystem,NFS)(3)

Coda:1987年,CMU在基于AFS的基礎上開發(fā)了Coda文件系統(tǒng)5.1.3分布式存儲的發(fā)展歷史2021/6/27112.20世紀90年代的代表:XFS、TigerShark、SFS5.1.3分布式存儲的發(fā)展歷史XFS:加州大學伯克利分校(UCBerkeley)開發(fā)了XFS文件系統(tǒng),克服了以往分布式文件系統(tǒng)只適用于局域網而不適用于廣域網和大數據存儲的問題,提出了廣域網進行緩存較少網絡流量設計思想,采用層次命名結構,減少Cache一致性狀態(tài)和無效寫回Cache一致性協(xié)議,從而減少了網絡負載,在當時獲得了一定的成功。2021/6/27123.20世紀末的代表:

(1)

SAN(StorageAreaNetwork)(2)NAS(NetworkAttachedStorage)(3)

GPFS(GeneralParallelFileSystem)(4)

GFS(GoogleFileSystem)(5)

HDFS

(HadoopDistributedFileSystem)5.1.3分布式存儲的發(fā)展歷史2021/6/2713(1)SAN(StorageAreaNetwork)通過將磁盤存儲系統(tǒng)和服務器直接相連的方式提供一個易擴展、高可靠的存儲環(huán)境,高可靠的光纖通道交換機和光纖通道網絡協(xié)議保證各個設備間鏈接的可靠性和高效性。設備間的連接接口主要是采用FC或者SCSI。圖5.3SAN網絡結構2021/6/2714(2)

NAS(NetworkAttachedStorage)通過基于TCP/IP的各種上層應用在各工作站和服務器之間進行文件訪問,直接在工作站客戶端和NAS文件共享設備之間建立連接,NAS隱藏了文件系統(tǒng)的底層實現,注重上層的文件服務實現,具有良好的擴展性圖5.4NAS存儲網絡結構2021/6/2715(3)GPFS(GeneralParallelFileSystem)GPFS是IBM公司開發(fā)的共享文件系統(tǒng),起源于IBMSP系統(tǒng)上使用的虛擬共享磁盤技術。GPFS是一個并行的磁盤文件系統(tǒng),它保證在資源組內的所有節(jié)點可以并行訪問整個文件系統(tǒng)。GPFS允許客戶共享文件,而這些文件可能分布在不同節(jié)點的不同硬盤上。它同時還提供了許多標準的UNIX文件系統(tǒng)接口,允許應用不需修改或者重新編輯就可以在其上運行。2021/6/2716(4)GFS(GoogleFileSystem)圖5.5GFS架構圖2021/6/2717(5)HDFS(HadoopDistributedFileSystem)圖5.6HDFS總體結構示意圖2021/6/27184.21世紀的代表:Cassandra、HBase、MongoDB、DynamoDB(1)

Cassandra:是一套開源分布式NoSQL數據庫系統(tǒng),最初由Facebook開發(fā),用于儲存收件箱等簡單格式數據,集GoogleBigTable的數據模型與AmazonDynamo的完全分布式的架構于一身。(2)

HBase:列存儲數據庫,擅長以列為單位讀取數據,面向列存儲的數據庫具有高擴展性,即使數據大量增加也不會降低相應的處理速度,特別是寫入速度。5.1.3分布式存儲的發(fā)展歷史2021/6/27194.21世紀的代表:Cassandra、HBase、MongoDB、DynamoDB(3)

MongoDB:文檔型數據庫同鍵值(Key-Value)型的數據庫類似,是鍵值型數據庫的升級版,允許嵌套鍵值,Value值是結構化數據,數據庫可以理解Value的內容,提供復雜的查詢,類似于RDBMS的查詢條件。(4)

DynamoDB:Amazon公司的一個分布式存儲引擎,是一個經典的分布式Key-Value存儲系統(tǒng),具備去中心化、高可用性、高擴展性的特點。5.1.3分布式存儲的發(fā)展歷史2021/6/27205.2文件存儲5.2.1單機文件系統(tǒng)5.2.2網絡文件系統(tǒng)5.2.3并行文件系統(tǒng)5.2.4分布式文件系統(tǒng)5.2.5高通量文件系統(tǒng)2021/6/27215.2.1單機文件系統(tǒng)現代文件系統(tǒng)的起源要追溯到分時操作系統(tǒng)時期。1965年,在Multics操作系統(tǒng)中首次提出使用樹型結構來組織文件、目錄以及訪問控制的思想。這些思想被后來的UNIX文件系統(tǒng)(1973年)所借鑒。從結構上看,它包括四個模塊:引導塊、超級塊、索引節(jié)點和數據塊。為解決UNIX文件系統(tǒng)I/O性能低的問題,先后出現了1984年的快速文件系統(tǒng)(FastFileSystem,FFS)和1992年的日志結構文件系統(tǒng)(Log-StructuredFile,LFS)。20世紀90年代至今,出現了很多單機文件系統(tǒng)。包括SGI公司于1994年發(fā)布的XFS,以及Sun公司于2004年發(fā)布的ZFS。2021/6/27225.2.2網絡文件系統(tǒng)NFS(NetworkFileSystem,網絡文件系統(tǒng))由Sun公司在1984年開發(fā),被認為是第一個廣泛應用的現代網絡文件系統(tǒng)。NFS的設計目標是提供跨平臺的文件共享系統(tǒng)。由于NFS的實現和設計思想都相對簡單,該協(xié)議很快被納入到RFC標準,并開始大量應用。然而,NFS單一服務器的結構也決定了它的擴展性有限。AFS(AndrewFileSystem)是美國卡耐基·梅隆大學1982年開發(fā)的分布式文件系統(tǒng)。其設計目標是支持5000~10000個節(jié)點的集群,擴展性是首要考慮的因素。與NFS等系統(tǒng)不同的是,AFS中有多個服務器,整個命名空間被靜態(tài)地劃分到各個服務器上,因此,AFS具有更好的擴展性。2021/6/27235.2.3并行文件系統(tǒng)早期的并行文件系統(tǒng)有BFS(BridgeFileSystem)和CFS(ConcurrentFileSystem)等。它們運行在MPP(MassivelyParallelProcessing,MPP)結構的超級計算機上。。20世紀90年代中期,開源的Linux操作系統(tǒng)逐漸成熟并得到廣泛使用,為了能在越來越多的Linux集群上運行,出現了以PVFS和Lustr為代表的Linux集群上的并行文件系統(tǒng)。它們吸收了MPP并行文件系統(tǒng)的很多思想,包括采用一個專門的元數據服務器來維護和管理文件系統(tǒng)的命名空間,以及將文件數據條帶化并分散存儲在所有的存儲服務器上等。2021/6/27245.2.4分布式文件系統(tǒng)20世紀90年代后期,隨著互聯網的發(fā)展,出現了搜索引擎這樣的海量文本數據檢索工具。搜索引擎需要高吞吐率、低成本、高可靠的系統(tǒng),而非高峰值處理性能的系統(tǒng)。于是產生了以谷歌的GoogleFileSystem(GFS)、MapReduce為代表的新型數據處理架構。GFS的底層平臺是大規(guī)模(數千臺到數萬臺)的、廉價的、可靠性較低的PC集群,存儲設備是集群中每個節(jié)點上的多塊IDE磁盤谷歌架構被互聯網企業(yè)廣泛采用,現在流行的Hadoop就是GFS和MapReduce的一種開源實現,被很多企業(yè)采用。2021/6/27255.2.5高通量文件系統(tǒng)高通量文件系統(tǒng)是為大型數據中心設計的文件系統(tǒng),它將數據中心中大量低成本的存儲資源有效地組織起來,服務于上層多種應用的數據存儲需求和數據訪問需求。隨著云計算技術的發(fā)展,數據中心的數據存儲需求逐漸成為數據存儲技術和文件系統(tǒng)發(fā)展的主要驅動力,高通量文件系統(tǒng)將成為一種重要的文件系統(tǒng)。大型數據中心在數據存儲和數據訪問方面有著與先前的應用非常不同的需求特征,主要包括:數據量龐大、訪問的并發(fā)度高、文件數量巨大、數據訪問語義和訪問接口不同于傳統(tǒng)的文件系統(tǒng)、數據共享與數據安全的保障越來越重要等。2021/6/2726表5.1文件系統(tǒng)

的發(fā)展脈絡2021/6/27275.3從單機存儲系統(tǒng)到分布式存儲系統(tǒng)5.3.1單機存儲系統(tǒng)5.3.2分布式存儲系統(tǒng)2021/6/27285.3.1單機存儲系統(tǒng)1.硬件基礎簡單來說,單機存儲就是散列表、B樹等數據結構在機械硬盤、SSD等持久化介質上的實現。單機存儲系統(tǒng)的理論來源于關系數據庫,是單機存儲引擎的封裝,對外提供文件、鍵值、表或者關系模型。由摩爾定律可知,相同性能的計算機等IT產品,每18個月價錢會下降一半。而計算機的硬件體系架構卻保持相對穩(wěn)定,一個重要原因就是希望最大限度地發(fā)揮底層硬件的價值。計算機架構中常見硬件的大致性能參數如表5.2所示。2021/6/2729表5.2常用硬件性能參數2021/6/27305.3.1單機存儲系統(tǒng)2.存儲引擎存儲引擎直接決定了存儲系統(tǒng)能夠提供的性能和功能,其基本功能包括:增、刪、改、查,而讀取操作又分為隨機讀取和順序掃描兩種。散列存儲引擎是散列表的持久化實現,支持增、刪、改,以及隨機讀取操作,但不支持順序掃描,對應的存儲系統(tǒng)為鍵值(Key-Value)存儲系統(tǒng)。B樹(B-Tree)存儲引擎是樹的持久化實現,不僅支持單條記錄的增、刪、讀、改操作,還支持順序掃描,對應的存儲系統(tǒng)是關系數據庫。LSM樹(Log-StructuredMergeTree)存儲引擎和B樹存儲引擎一樣,支持增、刪、改、隨機讀取以及順序掃描,它通過批量轉儲技術規(guī)避了磁盤隨機寫入問題,廣泛應用于互聯網的后臺存儲系統(tǒng),例如GoogleBigtable、GoogleLevelDB以及Cassandra系統(tǒng)等。2021/6/27315.3.1單機存儲系統(tǒng)3.數據模型如果說存儲引擎相當于存儲系統(tǒng)的發(fā)動機,那么,數據模型就是存儲系統(tǒng)的外殼。存儲系統(tǒng)的數據模型主要包括三類:文件、關系以及鍵值模型。傳統(tǒng)的文件系統(tǒng)和關系數據庫系統(tǒng)分別采用文件和關系模型。關系模型描述能力強,生態(tài)好,是目前存儲系統(tǒng)的業(yè)界標準。而新產生的鍵值模型、關系弱化的表格模型等,因為其可擴展性、高并發(fā)以及性能上的優(yōu)勢,開始在越來越多的大數據應用場景中發(fā)揮重要作用。2021/6/27325.3.2分布式存儲系統(tǒng)1.基本概念(1)異常(2)超時(3)一致性(4)衡量指標性能可用性一致性可擴展性2021/6/27335.3.2分布式存儲系統(tǒng)2.性能分析性能分析是用來判斷設計方案是否存在瓶頸點,權衡多種設計方案的一種手段,也可作為后續(xù)性能優(yōu)化的依據。性能分析與性能優(yōu)化是相對的,系統(tǒng)設計之初通過性能分析確定設計目標,防止出現重大的設計失誤,等到系統(tǒng)試運行后,需要通過性能優(yōu)化方法找出系統(tǒng)中的瓶頸點并逐步消除,使系統(tǒng)達到設計之初確定的設計目標。設計之初首先分析整體架構,接著重點分析可能成為瓶頸的單機模塊。系統(tǒng)中的資源(CPU、內存、磁盤、網絡)是有限的,性能分析就是需要找出可能出現的資源瓶頸。2021/6/27345.3.2分布式存儲系統(tǒng)3.數據分布分布式系統(tǒng)能夠將數據分布到多個節(jié)點,并在多個節(jié)點之間實現負載均衡。其方式主要有兩種:散列分布,如一致性散列,代表系統(tǒng)為Amazon的Dynamo系統(tǒng);順序分布,即每張表格上的數據按照主鍵整體有序,代表系統(tǒng)為Google的Bigtable。將數據分散到多臺機器后,需要盡量保證多臺機器之間的負載是比較均衡的。分布式存儲系統(tǒng)需要能夠自動識別負載高的節(jié)點,當某臺機器的負載較高時,將它服務的部分數據遷移到其他機器,實現自動負載均衡。2021/6/27355.3.2分布式存儲系統(tǒng)4.復制為了保證分布式存儲系統(tǒng)的高可靠和高可用,數據在系統(tǒng)中一般存儲多個副本。當某個副本所在的存儲節(jié)點出現故障時,分布式存儲系統(tǒng)能夠自動將服務切換到其他的副本,從而實現自動容錯。分布式存儲系統(tǒng)通過復制協(xié)議將數據同步到多個存儲節(jié)點,并確保多個副本之間的數據一致性。同一份數據的多個副本中往往有一個副本為主副本(Primary),其他副本為備用副本(Backup),由主副本將數據復制到備用副本。當主副本出現故障時,分布式存儲系統(tǒng)能夠將服務自動切換到某個備用副本,實現自動容錯。2021/6/27365.3.2分布式存儲系統(tǒng)5.容錯分布式存儲系統(tǒng)首先需要能夠檢測到機器故障,然后需要將服務復制或者遷移到集群中的其他正常節(jié)點。表5.3 Google某數據中心第一年運行故障2021/6/27375.3.2分布式存儲系統(tǒng)6.可擴展性可擴展性的實現手段很多,如通過增加副本個數或者緩存來提高讀取能力,將數據分片使每個分片可以被分配到不同的工作節(jié)點以實現分布式處理,把數據復制到多個數據中心等。同時,衡量分布式存儲系統(tǒng)的可擴展性應該綜合考慮節(jié)點故障后的恢復時間、擴容的自動化程度、擴容的靈活性等。2021/6/27387.分布式協(xié)議(1)兩階段提交協(xié)議(Two-PhaseCommit,2PC):由階段1請求階段(PreparePhase)和階段2提交階段(CommitPhase)組成,經常用來實現分布式事務,以保證跨多個節(jié)點操作的原子性。(2)

Paxos協(xié)議:用于解決多個節(jié)點之間的一致性問題。Paxos協(xié)議考慮到主節(jié)點可能出現故障,系統(tǒng)需要選舉出新的主節(jié)點的問題,該協(xié)議可以保證多個節(jié)點之間操作日志的一致性,并在這些節(jié)點上構建高可用的全局服務,例如分布式鎖服務、全局命名和配置服務等。5.3.2分布式存儲的發(fā)展歷史2021/6/27395.4實踐:分布式存儲系統(tǒng)Ceph5.4.1概述5.4.2設計思想5.4.3整體架構5.4.4集群部署2021/6/2740Ceph最初是一項關于存儲系統(tǒng)的研究項目,由塞奇·維爾(SageWeil)在加州大學圣克魯茲分校(UCSC)開發(fā)。Ceph是一個統(tǒng)一的、分布式的存儲系統(tǒng),具有出眾的性能、可靠性和可擴展性。其中,“統(tǒng)一”和“分布式”是理解Ceph的設計思想的出發(fā)點。①統(tǒng)一:意味著Ceph可以以一套存儲系統(tǒng)同時提供“對象存儲”“塊存儲”和“文件系統(tǒng)”三種功能,以滿足不同應用的需求。②分布式:意味著無中心結構和系統(tǒng)規(guī)模的無限(至少理論上沒有限制)擴展。在實踐當中,Ceph可以被部署于成千上萬臺服務器上。5.4.1概述2021/6/27415.4.2設計思想Ceph最初設計的目標應用場景就是大規(guī)模的、分布式的存儲系統(tǒng),是指至少能夠承載PB量級的數據,并且由成千上萬的存儲節(jié)點組成。在Ceph的設計思想中,對于一個大規(guī)模的存儲系統(tǒng),主要考慮了三個場景變化特征:存儲系統(tǒng)的規(guī)模變化、存儲系統(tǒng)中的設備變化以及存儲系統(tǒng)中的數據變化。Ceph的設計思路基本上可以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論