5分鐘瞭解雲存儲PaaS的核心服務:對象存儲

雲計算 OpenStack 編程語言 Swift語言 微說互聯網 2017-05-26

無論阿里雲,還是騰訊雲、百度雲等其他公有云平臺一般都會提供對象存儲服務。對象存儲是目前雲計算應用非常廣泛的一項技術。今天我們就來聊聊這項有用的技術。

5分鐘瞭解雲存儲PaaS的核心服務:對象存儲

阿里雲對象存儲服務的入口


對象存儲是什麼?

對象存儲,是用來描述解決和處理離散單元的方法的通用術語,這些離散單元被稱作為對象。

單純從對象存儲的定義來看,有點太抽象了。我們不妨先與傳統的存儲技術做個比較,看看對象存儲到底有何不同。

傳統存儲技術分類

按照服務器擴展存儲架構,傳統的存儲技術可分為直連存儲(DAS: Direct Access Storage)、存儲區域網絡(SAN: Storage Area Network)和網絡附加存儲(NAS:Network Attached Storage)。

從存儲形態來看,DAS和SAN屬於塊存儲,也就是說存儲系統對磁盤(塊設備)進行操作,數據存取的接口是塊設備驅動。NAS屬於文件存儲,主要是對文件及目錄進行管理,數據存取的接口是文件協議,比如NFS。從抽象層次來說,文件存儲要高於塊存儲。

對象存儲

對象存儲的核心思想是將數據通路(數據讀或寫)和控制通路(元數據)分離,並且基於對象存儲設備(Object-based Storage Device,OSD)構建存儲系統,每個對象存儲設備具有一定的智能,能夠自動管理其上的數據分佈。

5分鐘瞭解雲存儲PaaS的核心服務:對象存儲

對象存儲的核心思想:數據IO與訪問控制(元數據操作)分離

對象存儲與塊存儲不一樣。對象存儲沒有邏輯單元(LUN)、卷及磁盤陣列(RAID)這些概念。對象存儲與文件存儲也不一樣,對象存儲不是通過目錄來查詢文件。對象數據不是存儲在塊或者LUN中,而是在大小可變的容器(Bucket)裡。

對象存儲中的基本存儲單位是對象。對象實際上是文件加上一組描述這個文件的屬性信息(Meta Data)。屬性信息可能包括數據存儲的RAID參數、數據的分佈等。這些屬性信息被稱為元數據,也可以理解為數據的數據。

5分鐘瞭解雲存儲PaaS的核心服務:對象存儲

元數據類似於文件的索引,用戶先根據索引(對象存儲的元數據)找到數據存儲的位置,進而通過底層的存儲接口來訪問數據。元數據起到控制數據訪問的作用。


對象存儲 vs 塊存儲、文件存儲

以DAS、SAN為代表的塊存儲以塊為存儲單位。數據存取速度快,但不利於網絡共享。以NFS為代表的NAS存儲,以文件為存儲單位,適合網絡共享,但性能不行。對象存儲結合了塊存儲和文件存儲的優點,既有塊存儲的好性能,也有文件存儲的共享便利,是目前最主要的雲存儲方式。

我們訪問對象存儲中的數據,可以直接通過REST API來訪問對象存儲,就像用URI訪問一個網絡資源文件一樣的方便。

對象存儲的用途

對象存儲通常可用來存儲圖片、音頻、視頻等非結構化數據,結構化數據則交給雲數據庫。下圖是阿里雲提供的針對中型電商應用的架構解決方案。對象(OSS)用來存儲電商的產品圖片,並配合CDN網絡提高分發的效率。

5分鐘瞭解雲存儲PaaS的核心服務:對象存儲

阿里雲提供的電商架構

其實不只是電商應用,只要涉及到非結構化數據存儲的應用,都可以使用對象存儲技術來代替文件存儲。對象存儲可以說是雲計算平臺的標配服務。

前面的文章《簡單聊聊最流行的開源雲計算平臺OpenStack架構》中曾經介紹OpenStack框架中的Swift就是對象存儲管理。不僅為應用層提供對象存儲服務,包括OpenStack的虛擬機鏡像文件也是通過對象存儲來存儲,鏡像管理Glance會調用鏡像存儲接口,把鏡像文件存在Swift中。


結語

最後把文章的幾個要點總結一下:

1 對象存儲中的對象包括元數據和實際的數據文件,元數據起到控制數據訪問的作用。

2 對象存儲的核心思想是數據IO與訪問控制分離,結合了塊存儲和文件存儲的優點。

3 對象存儲使用REST API訪問數據,方便又好用,適合非結構化數據存儲。

相關推薦

推薦中...