天天看點

帶你讀《存儲漫談Ceph原理與實踐》第一章分布式存儲概述1.2各主流分布式方案對比(一)

1.2各主流分布式方案對比

分布式存儲系統種類繁多,通常按照使用場景,可将分布式存儲系統劃分為分布式塊存儲、分布式檔案存儲以及分布式對象存儲3類,如圖 1-6所示。

帶你讀《存儲漫談Ceph原理與實踐》第一章分布式存儲概述1.2各主流分布式方案對比(一)

圖 1-6分布式存儲系統分類

塊存儲将裸磁盤空間直接映射給主機使用,主機層面作業系統識别出磁盤後,可對磁盤進行分區、格式化檔案系統或者直接進行裸裝置讀寫。塊存儲使用線性位址空間,不關心資料的組織方式以及結構,讀寫速度更快,但共享性較差。

檔案存儲将檔案系統直接挂載給主機使用,主機層面作業系統可對挂載後的檔案系統   直接進行讀寫,讀寫操作遵循POSIX(PortableOperatingSystemInterfaceofUNIX)語義,類似操作本地檔案系統。檔案存儲使用樹狀結構以及路徑通路方式,更友善了解、記憶,更适合結構化資料的存取,共享性更好,但讀寫性能較差。

對象存儲介于塊存儲與檔案存儲之間,以restfulapi或者用戶端 sdk的形式供使用者使用,更适合非結構化資料的存取。對象存儲使用統一的底層存儲系統,管理檔案以及底層媒體的組織結構,然後為每個檔案配置設定一個唯一的辨別,使用者需要通路某個檔案,直接提供檔案的辨別即可。

除以上 3 種分布式存儲方案的劃分外,分布式存儲系統還可分為分布式資料庫系統和分布式緩存系統等。

從架構角度切入,無論是分布式塊存儲系統、分布式對象存儲系統、分布式檔案存儲系統,抑或是分布式資料庫系統、分布式緩存系統,其架構無外乎以下兩種。

◆  有中心架構

有中心架構下,分布式存儲叢集實作統一的中繼資料服務,中繼資料統一存儲并管理,用戶端發起對資料的讀寫前,先向中繼資料伺服器發起讀寫請求。

◆  無中心架構

無中心架構下,分布式存儲系統沒有單獨的中繼資料服務,中繼資料與資料一樣,切片打散後存儲在多台存儲伺服器上,用戶端通過特定算法進行計算,确定中繼資料及資料的存儲位置,并直接向存儲節點相關程序發起資料的讀寫通路請求。依照使用的算法類型,無中心架構又可細分為私有算法模式以及一緻性散列(Hash)模式。

下文以HDFS、Ceph、Swift為例,對 3 種方案做簡要對比。

1.2.1      有中心架構

HDFS(HadoopDistributionFileSystem)是有中心分布式存儲系統的典型代表。在這種架構中,一部分節點NameNode用于存放管理資料(中繼資料檔案),另一部分節點 DataNode用于存放業務資料(資料檔案),其系統架構如圖1-7所示。

在圖1-7中,如果用戶端需要從某個檔案讀取資料,首先從NameNode擷取該檔案的位置資訊(具體在哪個DataNode),然後從該DataNode上擷取具體的資料。在該架構中NameNode通常是主備部署,而DataNode則是由大量伺服器節點構成一個存儲叢集。由于中繼資料的通路頻度和通路量相對資料都要小很多(參見後文HDFS使用場景),是以 NameNode 通常不會成為性能瓶頸;DataNode 在叢集中通常将資料以副本形式存放,該政策下既可以保證資料的高可用性,又可以分散用戶端的請求。是以,這種分布式存儲架   構可以橫向擴充 DataNode 的數量來增加存儲系統的承載能力,也即實作系統的動态橫向擴充。

HDFS目前主要用于大資料的存儲場景,HDFS也是 Hadoop大資料架構中的存儲元件。HDFS在開始設計的時候,就已經明确了它的應用場景(即大資料服務),具體如下:

帶你讀《存儲漫談Ceph原理與實踐》第一章分布式存儲概述1.2各主流分布式方案對比(一)

圖 1-7HOFS系統架構

(1)對大檔案存儲的性能要求比較高的業務場景

HDFS采用集中式中繼資料的方式進行檔案管理,中繼資料儲存在 NameNode的記憶體中,檔案數量的增加會占用大量的NameNode記憶體。即當 HDFS 存儲海量小檔案時,中繼資料會占用大量記憶體空間,引起整個分布式存儲系統性能的下降。由于此限制,HDFS    更适合應用在存儲大檔案的使用場景,檔案大小以百 MB級别或者 GB級别為宜。

(2)讀多寫少的業務場景

HDFS 的資料傳輸吞吐量比較高,但是資料寫入時延比較差,是以,HDFS不适合頻繁的資料寫入場景,但就大資料分析業務而言,其處理模式通常為一次寫入、多次讀取,   然後進行資料分析工作,HDFS可以勝任該場景。

繼續閱讀