原创 twt社区
雲端環境下的儲存服務類型和儲存技術
一、儲存服務的類型
儲存服務的類型依資料類型的不同,一般分為區塊儲存、檔案儲存和物件儲存三類。
區塊儲存基於傳統的磁碟陣列實現,將儲存區域劃分成固定大小的區塊,以磁碟區的方式掛載到主機作業系統後,作業系統可將其格式化成檔案系統,或以裸資料的方式作為資料庫的 儲存。 區塊儲存方式不存在資料打包和解包過程,因此應用系統跟儲存系統耦合程度緊密,資料存取延遲低、效能高。
檔案儲存指的是儲存媒體上儲存的是目錄-子目錄-檔案這種形式的資料結構。 這種資料結構是我們自然人所能容易辨識的數據,絕大部分由身為自然人的程式設計師所編寫的各種軟體程式也使用這種方式來存取檔案。 因此文件儲存的特點是一方面可讀性高,另一方面存取資料需要先遍歷多層文件目錄。
物件儲存採用基於鍵值存取機制的扁平化儲存架構設計,它沒有多層樹級檔案目錄。 在物件儲存系統中,物件是資料儲存的基本單元,所有物件都有一個物件標識,透過物件標識OSD指令存取該對象,使用簡單,小IO效能好。
二、雲端環境下的儲存技術
隨著電子商務、雲端原生、微服務、分散式應用程式、DevOps等現代應用架構的流行,使用者開始將越來越多的傳統應用進行改造和重構,遷移到雲端環境。 那麼在雲端環境下有哪些儲存技術可供選擇使用呢? 以下針對雲端環境提供的區塊儲存、文件儲存和物件儲存三類儲存服務,簡單講講對應的儲存技術。
1. 塊存儲
雲端環境的區塊儲存技術主要包括使用集中式區塊儲存和分散式區塊儲存兩種技術路線。
1) 集中式區塊存儲
作為目前最流行的IaaS框架 ,OpenStack架構中有一個獨立的元件叫做Cinder。 Cinder是OpenStack中提供儲存服務的API框架,用來為後端不同的儲存結構提供統一的介面。 不同的區塊設備服務廠商在Cinder中實現其驅動支援。 後端的儲存可以是DAS、NAS、SAN、物件儲存或分散式檔案系統。 由於在雲端運算領域OpenStack受歡迎度非常高,因此眾多儲存廠商如NetAPP、IBM、 DellEMC、華為和眾多開源區塊儲存系統均提供了對Cinder的支持,這也為在雲端平台基礎架構層使用集中式 SAN儲存提供了技術基礎。
當使用者規劃在雲端平台下使用集中式區塊儲存時,需要先考慮兩個面向。
第一,自己使用的雲端平台是不是基於OpenStack開發的,如果不是,那可能沒有SAN的介面。 國內的主流雲端平台產品大都是基於OpenStack開發的,但也存在少量的自研雲端平台。
第二,基於OpenStack的雲端平台透過使用Cinder來對接FC-SAN集中式存儲,Cinder只提供框架,需要透過呼叫FC-SAN設備廠商提供的Driver來使用和管理。 這方面需要雲端平台廠商配合。 目前國內大部分基於OpenStack開發的雲端平台產品中已經整合主流儲存廠商的FC驅動,可以讓Cinder與儲存底層對接,得到更高且更穩定的效能表現。
2)分散式區塊存儲
分散式區塊儲存是分散式儲存架構下的一個儲存介面。 目前主流分散式儲存技術主要分HCI超融合基礎架構及SDS軟體定義分散式儲存。 主流SDS分散式儲存又分為Ceph系和非Ceph系。 在大規模雲端環境下,SDS軟體定義分散式儲存適配度更高。
2. 文件存儲
文件儲存技術依照底層硬體架構可分為集中式NAS儲存和分散式檔案系統。
集中式NAS儲存生態完善,在各大企業資料中心檔案共享服務中佔很大比例。 集中式NAS儲存設備由機頭和擴充櫃組成,整合度高,運作維護相對簡單。
分散式檔案系統與集中式NAS相比,差異在於提供了平行化和橫向擴展的能力。 分散式檔案系統依架構有無中心分為兩類,一種是有中心架構的分散式檔案系統架構,包括GFS、HDFS等。 另外一種是完全無中心的分散式儲存架構,包括CephFS、GlusterFS等。 其中CephFS和GlusterFS支援POSFIX 介面。
GFS和HDFS的預設最小儲存單元為64M、128M甚至更高,是適合大檔案尤其是GB等級的大檔案儲存場景的分散式儲存系統。
GlusterFS是採用無中心對稱式架構,沒有專用的元資料伺服器,元資料存在於檔案的屬性和擴充屬性中。 資料分片分佈,也更適合大檔案儲存。
CephFS是分散式儲存系統Ceph檔案儲存的接口,CephFS 建構在RADOS(Ceph的核心技術-分散式物件儲存)之上,繼承RADOS的容錯性和擴充性,支援冗餘副本和資料高可靠性。
3. 物件存儲
物件儲存採用基於鍵值存取機制的扁平化儲存架構設計,它沒有多層樹級檔案目錄,天生具有分散式的架構優點,擴充方便。
物件儲存使用簡單,客戶端呼叫API就能進行資料儲存與讀取,其介面就是簡單的GET、PUT、DEL等。 物件儲存提供了基於物件的存取接口,有效地合併了NAS和SAN的儲存結構優勢。
三、雲端環境下的各類儲存技術的適用場景
1. 塊存儲
分散式區塊儲存的優點在於擴充性,所以適用於雲端環境下大規模的虛擬機器、容器場景。 另外,MySQL、MongoDB等輕量級資料庫場景也可以選擇使用分散式區塊儲存。
對於IO密集型資料庫應用程式來講,目前最好的儲存模式仍是採用高效能低延遲的集中式高階儲存陣列。
另外,針對雲規模相對不大,但業務重要性較高的業務場景,可以選擇使用基於OpenStack的雲平台通過Cinder接口來對接集中式存儲,為該類重要應用獲得更高和更穩定的存儲性能 。
2. 文件存儲
集中式NAS支援POSFIX接口,與現有應用整合簡單,適合小規模應用環境的快速部署。
GFS適合儲存大文件,尤其是GB級別的大文件儲存的場景。 HDFS適合單次寫入多次讀取的大檔案串流讀取的場景。
GlusterFS基於無中心化架構,沒有元資料伺服器,具有高擴充性、高可用性、高效能,能夠處理千數量級的客戶端,且可配置性較強。
CephFS也支援POSFIX接口,它使用Ceph儲存叢集來儲存數據,因此能夠解決NAS 產品scale-out橫向擴展不足的缺點,與使用Ceph儲存的雲端環境最適配。
GlusterFS和CephFS可以作為在大規模雲端環境下取代NAS的通用分散式檔案系統儲存技術,也是現在分散式NAS的發展方向。
3. 物件存儲
物件儲存接近無限擴展能力使其可以真正意義上實現非結構化資料的海量儲存。 其扁平化的存入和讀取資料物件方式,使其使用方式簡單,應用經過標準 API 介面進行調用,十分契合互聯網大數據的儲存。 物件儲存適合儲存包括多媒體、音樂、圖片、影片監控檔案、軟體、鏡像、掃描件等種類在內的大量檔案。
另一方面也要注意,物件儲存不支援隨機讀寫操作,只能全讀全寫,其面向的是一次寫入,多次讀取的非結構化資料儲存的需求場景。