文章目錄
- 一、數據存儲面臨的問題
- 二、RAID磁盤陣列的解決方案
- 1. RAID概述
- 2. RAID使用的技術
- 3. RAID的代表性等級
- 三、分布式存儲的新思路
- 1. 分布式存儲背景與特點
- 2. 分布式存儲的組成要素
一、數據存儲面臨的問題
在單機系統時代,當數據量不斷增加、硬盤空間不夠時,最簡單的解決辦法就是擴大磁盤容量。然而,隨著數據量的增長,磁盤讀寫操作的速度成為了限制系統性能的瓶頸。因此,提升存儲性能、提高數據的可靠性和可擴展性,成為了系統設計的重要目標。
在這個過程中,磁盤陣列(RAID)技術、分布式存儲以及擴展技術逐漸成為了應對挑戰的解決方案。
?
二、RAID磁盤陣列的解決方案
1. RAID概述
RAID(獨立磁盤冗余陣列)是解決上述問題的早期探索。它由多個獨立高性能磁盤驅動器構成磁盤子系統,為主機環境提供成本適中、數據可靠性高的高性能存儲,能改善磁盤的存儲容量、讀寫速度,增強磁盤的可用性。
?
2. RAID使用的技術
- 鏡像:將數據復制到多個磁盤。這一方面提高了系統可靠性,另一方面讓數據讀操作可并發進行,從而提高讀寫性能。但寫性能稍低,因為要確保數據正確寫入多個磁盤較耗時。
- 數據條帶:把一整塊數據分片,存于多個不同磁盤空間。面對并發讀寫請求時,可同時操作不同磁盤上的數據,提升I/O性能。
- 數據校驗:因鏡像存儲使同一份數據存于多個磁盤,這種冗余存儲有助于數據的錯誤檢測和修復。冗余數據通常用海明碼、異或操作等算法生成,提高了RAID的可靠性和容錯能力。
?
3. RAID的代表性等級
- RAID0:是一種無數據校驗的數據條帶化技術,不提供冗余策略。它將整塊數據分成多份存到不同磁盤,訪問時可并發執行IO操作,充分利用總線帶寬。
- RAID1:完全實現鏡像技術,把數據集復制一份,原數據集和副本分別存于兩個磁盤,磁盤空間利用率為50%。讀取數據可從任一磁盤獲取,寫入時響應時間受影響,但大大提高了數據可靠性。
- RAID01和RAID10:RAID01由RAID0和RAID1組合,先進行條帶化再鏡像,提高了讀寫效率和數據可靠性,但磁盤利用率低。RAID10則是先鏡像再條帶,從讀寫性能上和RAID01一樣,但出現磁盤故障時,讀性能優于RAID01,安全性更強。
雖然RAID通過增加磁盤數量提高了單機服務器的數據讀寫效率和可靠性,但單機磁盤擴容有上限,不足以應對數據爆發式增長帶來的挑戰。
?
三、分布式存儲的新思路
1. 分布式存儲背景與特點
分布式存儲屬于集群水平擴展,隨著業務發展,系統數據量和訪問量劇增,單機難以滿足需求,分布式集群存儲便應運而生。它將數據分布在多臺服務器節點上,為大規模應用提供大容量、高性能、高可用、高擴展的存儲服務。借鑒RAID的數據分片和副本技術,分布式存儲將數據按規律存儲在不同服務器節點,讀寫時也遵循相應規律。
2. 分布式存儲的組成要素
- 數據的使用者:也就是使用數據的用戶,可從分布式存儲系統寫入和讀取數據。數據分為結構化數據(如關系型數據庫)、半結構化數據(如HTML、JSON、XML等)和非結構化數據(如文檔、圖片、視頻等)。
- 數據的索引者:在分布式系統中,它負責找到數據讀寫的正確路徑。由于數據集分布在不同服務器上,需通過Hash算法、一致性Hash算法等找到數據。
- 數據的存儲者:相當于容器,將使用者產生的數據保存起來,數據可存于磁盤或內存。結構化數據、半結構化數據、非結構化數據分別對應分布式數據庫、分布式鍵值系統、分布式文件系統。索引者將使用者和存儲者連接起來,并作為數據存儲的媒介。
?
參考:《分布式架構原理與實踐-崔皓》