背景
本文主要對楊傳輝(日照)《大規模分散式儲存系統原理解析與架構實戰》、大話儲存、網路資源(具體參考文末連結)及個人理解進行整理,意在構建出儲存發展基本軌跡和一些基本常識,讓更多像我一樣的初入者有個宏觀上的認知。
儲存發展史從單機到網際網路,儲存作為的基礎設施,主要發展都是圍繞構建 低成本、高效能、可擴充套件、易用的目標進行演進,時至今日,在形態上儲存分為單機儲存、集中儲存、分散式儲存、雲端儲存、雲原生儲存
各階段儲存的基本形態如下
各階段基本形態
儲存資料分類 & 模型無論單機儲存、分散式儲存、雲端儲存都是基於特定應用場景下,對指定資料型別構建對應的儲存資料模型
資料分類資料模型儲存型別常見三種儲存型別:塊儲存、檔案儲存、物件儲存
塊儲存
基於Block塊的儲存模式,兩種常見儲存方式:
DAS(Direct Attch Storage), 直連主機儲存方式SAN (Storage Area Netowrk),高速網路連結主機儲存方式檔案儲存
依附網路提供檔案儲存服務
物件儲存
構建於鍵值儲存,核心是將資料通路(data)和控制通路(meta)分離,並且基於物件儲存裝置(Object-based Storage Device,OSD)構建儲存系統,對外以RSETful API形式服務
單機儲存基本概念
單機儲存系統是單機儲存引擎(資料結構在機械磁碟、SSD等持久化介質上的實現)的一種封裝,對外提供檔案、鍵值、表格或者關係模型的儲存服務。
儲存引擎
儲存引擎是儲存系統的發動機,決定了儲存系統能夠提供的功能和效能, 提供功能包含:
集中式儲存基本概念
集中式儲存相對與單機儲存而言,儲存系統中包含了更多元件,除了機頭(控制器)、磁碟陣列(JBOD)和交換機等裝置外,還有管理裝置等輔助裝置。
參考:集中式儲存的基本邏輯示意圖
系統構成
機頭,整個儲存系統的核心部件,通常由控制器、前後埠組成,控制器,通常有二,實現互備高可用,控制器中的軟體實現對磁碟的管理,將磁碟抽象化為儲存資源池,然後劃分為LUN提供給伺服器使用。前後埠,前端埠使用者為伺服器提供儲存服務,後端埠用於擴充儲存系統的容量(連線更多的儲存裝置)磁碟櫃(Just a Bound Of Disk , JBOD),磁碟掛在伺服器外的專用櫃裡,有獨立電源、散熱、介面等,內部線纜相連(SCSI),對機頭後端埠統一掛載分散式儲存基本概念
分散式儲存系統,是將分散獨立的儲存裝置透過網路互聯,系統關聯,對外作為一個整體提供儲存服務。
系統分類
分散式檔案系統分散式鍵值系統分散式表格系統分散式資料庫雲端儲存基本概念
雲端儲存,是一種雲計算領域儲存服務方式,底層構建在分散式儲存基礎之上,上層透過Internet形式提供儲存服務,除具備分散式儲存基礎特性外,更兼具靈活性,通常由雲廠商提供
參考產品
雲原生儲存基本概念
雲原生儲存脫胎於雲端儲存,除具備雲端儲存的特性外、須滿足具備雲原生生態系統中其他所有元件具備相同的動態(公共雲/專有云/混合雲等場景)構建可擴充套件應用、S3 API 驅動、K8S油耗等
參考示例
Rook
CNCF首個雲原生儲存專案Rook,是將檔案、資料塊和物件儲存系統引入到Kubernetes叢集,與其他正在使用儲存的應用程式和服務一起無縫執行。透過這種方式,雲原生叢集可以在公有云和本地部署中自給自足並且具備可移植性。該專案的開發目的是使企業能夠透過動態應用編排,為在本地和公有云環境中執行的分散式儲存系統實現資料中心現代化。
Rook Architecure
Ceph Rook integrates with Kubernetes
MinIO
MinIO是一款高效能、軟體定義的,物件儲存套件,幫助客戶構建雲原生資料基礎設施。可與 Kubernetes 整合,允許操作員使用 Kubernetes 介面管理儲存,而 Kubernetes 可以處理從儲存提供到卷放置的所有事務。