異構數據存儲實戰
Part 01
異構存儲架構
數據的存儲需要根據使用場景的不同而有所不同,對于那些需要快速訪問的數據應該存儲在高速訪問設備,并通過高性能存儲系統進行訪問;而那些需要進行大數據計算、歸檔處理的數據則應該存儲在廉價、低速的設備中,通過分布式的方式來計算。
異構存儲架構是一種多存儲設備的系統架構,通過對數據進行自動化管理,根據其訪問頻率等指標,將數據劃分為冷數據和熱數據,進而控制其存儲在不同的設備上,達到優化性能,降低存儲成本的目的。
Part 02
異構存儲面臨地挑戰
在異構數據存儲增強中,主要面臨以下幾個核心問題:
1?? 如何選擇合適的存儲介質?
存儲介質既要滿足性能、成本需求,同時還要滿足可靠性、可用性、容量可擴展、運維簡單等需求。
2?? 如何定義業務的冷熱數據,并且在存儲介質中進行分層?
在業務上,如何描述哪部分是熱數據,哪部分是冷數據,是在產品層面上需要考慮的問題。
3?? 冷熱數據如何遷移?
隨著時間流逝,業務上的熱數據降溫為冷數據后,存儲介質如何感知溫度的變化并執行數據遷移來降低存儲成本。
4?? 如何提高冷數據的訪問性能?
冷數據仍然會被訪問,比如數據運營分析要求,用戶需對過去一年的數據進行統計分析來進行歷史回顧和趨勢分析。由于冷數據體量大,查詢涉及的數據多,存儲介質性能低,如果不進行優化,對冷數據的元信息以及內容訪問可能出現瓶頸影響業務使用。
Part 03
冷熱數據識別
通過定義識別策略,例如訪問頻率、數據大小、最近訪問時間,這些因素用來輔助異構存儲系統,成為判別冷熱數據的指標。
- 數據訪問的頻繁度。即在一段時間內對一個數據訪問越多,我們就越將其定義為熱數據。
- 數據大小。一般數據體積較大的數據是不能作為熱數據的,如果訪問頻率很高,需要考慮將其進行拆分,分多個維度進行讀取,而不是作為一個整體進行存儲。
- 數據訪問的時效性。即訪問的數據越接近當前時間點,我們也會將其定義為熱數據。因為大多數應用場景都具備空間和時間上的局部性,當前訪問的數據,接下來被訪問的概率要相對大一些。
Part 04
異構數據遷移
在將數據塊按照存儲策略遷移時,通過將數據進行自動分析,結合策略對數據進行數據壓縮、小文件合并,同時針對平臺級數據進行自動備份和遷移,達成業務無感知。
分池存儲的核心是數據在不同存儲層之間的流動, 其主要解決的問題是不同介質間性能與容量差異,數據遷移的因素主要包括:存儲池空間水位,數據冷熱特性,手動遷移數據等。
寫緩存:通常情況下,前端數據首先寫入SSD層即返回,滿足用戶對于高吞吐低延遲的需求,隨后數據在后臺被遷移到HDD層,整個過程對于用戶無感知。在吞吐實測過程中,SSD+HDD集群基本同時兼顧了SSD的性能和HDD的容量,成本顯著低于SSD集群;
讀緩存:由高低速介質容量配比決定,大部分數據最終被寫入HDD層。根據數據局部熱點特性,高速層會同時會成為讀緩存,具體而言,系統根據數據冷熱特性盡量將熱點數據遷移至高速設備,最大程度上提升讀性能。