1. 程式人生 > 其它 >物件儲存、HDFS、CDN之間的關係

物件儲存、HDFS、CDN之間的關係

先說結論:

物件儲存是一個種儲存資料的方式,HDFS是一種分散式儲存檔案的方式,物件儲存和HDFS因為底層儲存結構設計的不同使得兩者的儲存的應用場景不同,適合儲存的資料型別也不同。如果需要RESTful HTTP介面、不需要目錄結構、資料修改也不頻繁,扁平資料管理結構的物件儲存是比較好的選擇。

CDN是一種加速資料庫訪問的分發策略。其中儲存的靜態資源完美契合了物件儲存的應用場景,所以CDN底層資料多采用物件儲存伺服器來儲存。

三種儲存型別

塊儲存

典型裝置:磁碟陣列,硬碟

主要是將裸磁碟空間對映給主機使用的。

優點:

  • 通過Raid與LVM等手段,對資料提供了保護。
  • 多塊廉價的硬碟組合起來,提高容量。
  • 多塊磁碟組合出來的邏輯盤,提升讀寫效率。

缺點:

  • 採用SAN架構組網時,光纖交換機,造價成本高。
  • 主機之間無法共享資料。

使用場景:

  • docker容器、虛擬機器磁碟儲存分配。
  • 日誌儲存。
  • 檔案儲存。

物件儲存(Object Storage)

典型裝置:內建大容量硬碟的分散式伺服器(swift, s3)

多臺伺服器內建大容量硬碟,安裝上物件儲存管理軟體,對外提供讀寫訪問功能。

物件儲存服務(Object Storage Service)是一款穩定、安全、高效、易用的雲端儲存服務,支援標準Restful API介面和扁平的資料組織形式。可儲存任意數量和形式的非結構化資料。

根據業務方對資料訪問頻率的不同,可以細分為標準儲存、低頻訪問、歸檔儲存和深度歸檔儲存。訪問頻率依次降低,雲產商報的單價也越低。

物件儲存優點:

  • 具備塊儲存的讀寫高速。
  • 具備檔案儲存的共享等特性。

物件儲存的使用場景:

使用場景:(適合更新變動較少的資料)圖片儲存、視訊儲存、音訊儲存。

參考:Ceph介紹及原理架構分享

檔案儲存

典型裝置:FTP、NFS伺服器

為了克服塊儲存檔案無法共享的問題,所以有了檔案儲存。

在伺服器上架設FTP與NFS服務,就是檔案儲存。

檔案儲存優缺點

優點:

  • 造價低,隨便一臺機器就可以了。
  • 方便檔案共享。

缺點:

  • 讀寫速率低。
  • 傳輸速率慢。

檔案儲存使用場景:

  • 日誌儲存。
  • 有目錄結構的檔案儲存。

參考:Ceph介紹及原理架構分享

物件儲存與檔案儲存的區別

所謂檔案系統的本質是POSIX介面,“物件”這個名詞是做物件儲存的人為了把自己做的東西和檔案系統區分開而用的術語,把存在物件儲存裡的檔案叫做“物件”,所以選擇檔案系統還是物件儲存,跟你把這堆資料稱作物件還是檔案並沒有直接關係,而是要看你是需要POSIX還是RESTful HTTP介面,是需要目錄結構還是適用扁平資料管理結構以及資料是否高頻修改。如果需要RESTful HTTP介面、不需要目錄結構、資料修改也不頻繁,扁平資料管理結構的物件儲存是比較好的選擇。

參考:學習筆記 - swift 物件儲存 和 Hadoop檔案系統 區別

1、概念上的區別

物件儲存也就是我們說的鍵值儲存,其介面就是簡單的GET,PUT,DEL和其他擴充套件。

檔案儲存通常支援POSIX介面,它跟傳統的檔案系統是一個型別,區別在於分散式儲存提供了並行化的功能,如Ceph的CephFS。但有時也會把GFS,HDFS這種非POSIX介面的類檔案儲存介面歸入此類。

2、IO特點區別

針對物件儲存來說,介面簡單,一個物件就可以看成是一個檔案,只能全寫全拼,都是以大檔案為主,因此要求足夠的IO頻寬。

檔案儲存的話具有更豐富的檔名及入口,是需要考慮目錄、檔案屬性等支援的。實現一個支援並行化的檔案儲存應該是很困難的。

3、Ceph支援

Ceph是同時支援物件儲存和檔案儲存的,只是對應的介面不同。物件儲存介面主要以S3與Swift為主,檔案儲存的話是以libcephfs庫與posix介面為主。因此在介面上會存在一定的差異。

以上資訊就是眾一互聯針對物件儲存和檔案儲存的概念以及區別的介紹,希望大家對這兩種儲存方式有了一定的瞭解,在後期選擇儲存方式的時候就會有一定的參考。

參考:物件儲存和檔案儲存的區別

HDFS(Hadoop Distributed File System)

HDFS是一種依靠網路通訊的分散式檔案儲存系統,是傳統NFS(Network File System,網路檔案系統)的延伸。HDFS的檔案分佈在叢集機器上,同時提供副本進行容錯及可靠性保證。例如客戶端寫入讀取檔案的直接操作都是分佈在叢集各個機器上的,沒有單點效能壓力。

HDFS 是用來處理大吞吐量的離線資料,它需要犧牲一定的延時為代價,因此它不太適合哪些對延時有較高要求的應用程式。

其次,HDFS 被設計用來處理大資料檔案,它通常對大檔案進行優化,而在處理大量小檔案時反而會使其耗費更多記憶體,從而影響資料處理的效率。此外,HDFS 中一次只能寫入一個檔案,不支援多使用者併發寫入。

參考:學習筆記 - swift 物件儲存 和 Hadoop檔案系統 區別深入理解HDFS:Hadoop分散式檔案系統

Ceph

Ceph是加州大學Santa Cruz分校的Sage Weil(DreamHost的聯合創始人)專為博士論文設計的新一代自由軟體分散式檔案系統。自2007年畢業之後,Sage開始全職投入到Ceph開 發之中,使其能適用於生產環境。Ceph的主要目標是設計成基於POSIX的沒有單點故障的分散式檔案系統,使資料能容錯和無縫的複製。2010年3 月,Linus Torvalds將Ceph client合併到內 核2.6.34中。IBM開發者園地的一篇文章

探討了Ceph的架構,它的容錯實現和簡化海量資料管理的功能。

參考:Ceph 分散式檔案系統

CDN(Content Distribute Network)

讓資料離使用者更近一點

CDN(Content Delivery Network)是內容分發網路。基本思路就是在網路各處部署服務節點,系統實時地根據網路流量、負載狀況、服務節點到使用者的響應時間等資訊,自動將使用者請求到導向離使用者最近的節點上。目的就是讓使用者就近取得資料,提高響應速度。

CDN本質上是一個分散式快取系統,每個服務節點上都快取了源站的一部分資料,也就是使用者最近經常訪問的資料。這樣大部分使用者請求其實都是在CDN邊緣節點上完成,並沒有達到源站,這樣減少了響應時間,也減輕了源站的負擔,可以實現高流量、大併發的網站訪問。

CDN對動態資源是無效的,主要適合對靜態資源的訪問加速。比如一些網頁內容需要資料查詢才能獲得,而每次要獲得查詢結果都要經過資料庫的操作,再經過Web應用伺服器的一些邏輯處理才能得到,這樣就沒法用CDN來加速。因為每次請求的資料都不一樣,快取過去訪問過的資料沒有意義。

CDN主要應用於站點加速,提高網站中靜態資料的訪問效能,比如圖片、音訊、視訊、靜態HTML網頁等。網站靜態資料以前一般是用檔案儲存的形式儲存,現在則主要用物件儲存。使用物件儲存的原因還是因為物件儲存適合儲存低頻修改、組織結構扁平化的資料,而靜態資源大多為視訊、圖片、音訊,完美符合物件儲存的應用場景。

CDN的關鍵技術

(1)內容釋出:藉助於索引、快取、流分裂、組播等技術,將內容釋出或投遞到距離使用者最近的服務節點;

(2)內容路由:整體性的網路負載均衡技術,通過內容路由器中的重定向機制,在多個服務節點上均衡使用者的請求;

(3)內容交換:根據內容、服務節點以及使用者的資訊,利用應用層交換、流分裂等技術,智慧地平衡負載流量;

(4)效能管理:通過內部和外部監控系統,獲取網路部件的狀況資訊,測量內容釋出的端到端效能。

三者的關係

物件儲存的核心是儲存,以及計算能力(圖片處理),CDN的核心是分發,是一種內容排程機制和策略,本身不會給使用者提供直接操作儲存的入口,底層使用的儲存結構是物件儲存。CDN是物件儲存的一個典型應用場景。網站靜態資料以前一般是用檔案儲存的形式儲存,現在則主要用物件儲存。使用物件儲存的原因還是因為物件儲存適合儲存低頻修改、組織結構扁平化的資料,而靜態資源大多為視訊、圖片、音訊,完美符合物件儲存的應用場景。

HDFS稱為Hadoop 分散式檔案系統,是一種基於檔案的儲存,與之相對的是基於物件的儲存,也就是物件儲存Object Storage),物件儲存的存取單元都是物件。HDFS與物件儲存的區別是物件儲存支援RESTful HTTP介面、不需要目錄結構、資料修改也不頻繁,資料管理結構扁平。兩者的應用場景不同。

參考:一分鐘看懂物件儲存和CDN之間的關係