图文存储常识:单机、集中、分布式、云、云原生存储
背景
本文主要對楊傳輝(日照)《大規模分布式存儲系統原理解析與架構實戰》、大話存儲、網絡資源(具體參考文末鏈接)及個人理解進行整理,意在構建出存儲發展基本軌跡和一些基本常識,讓更多像我一樣的初入者有個宏觀上的認知。
存儲發展史
從單機到互聯網,存儲作為的基礎設施,主要發展都是圍繞構建 低成本、高性能、可擴展、易用的目標進行演進,時至今日,在形態上存儲分為單機存儲、集中存儲、分布式存儲、云存儲、云原生存儲
各階段存儲的基本形態如下
各階段基本形態
存儲數據分類 & 模型
無論單機存儲、分布式存儲、云存儲都是基于特定應用場景下,對指定數據類型構建對應的存儲數據模型
數據分類
數據模型
存儲類型
常見三種存儲類型:塊存儲、文件存儲、對象存儲
塊存儲
基于Block塊的存儲模式,兩種常見存儲方式:
DAS(Direct Attch Storage), 直連主機存儲方式
SAN (Storage Area Netowrk),高速網絡鏈接主機存儲方式
文件存儲
依附網絡提供文件存儲服務
對象存儲
構建于鍵值存儲,核心是將數據通路(data)和控制通路(meta)分離,并且基于對象存儲設備(Object-based Storage Device,OSD)構建存儲系統,對外以RSETful API形式服務
單機存儲
基本概念
單機存儲系統是單機存儲引擎(數據結構在機械磁盤、SSD等持久化介質上的實現)的一種封裝,對外提供文件、鍵值、表格或者關系模型的存儲服務。
存儲引擎
存儲引擎是存儲系統的發動機,決定了存儲系統能夠提供的功能和性能, 提供功能包含:
增加(Create)
讀取(Retrieve),隨機讀取和順序掃描
更新(Update)
刪除(Delete)
引擎間差異如下:
引擎
機理
支持
不支持
對應的存儲系統
哈希存儲引擎
哈希表的持久化實現。基于哈希表結構的鍵值存儲系統,數組+鏈表的方式實現
增、刪、改、隨機讀取
順序掃描
鍵值(Key-Value)存儲系統
B樹存儲引擎
B樹的持久化實現
增、刪、改、隨機讀取 & 順序掃描
關系數據庫
LSM(Log-Structured Merge Tree)樹存儲引擎
與B樹類似,區別在于把一棵大樹拆分成N棵小樹寫時,先寫入內存中,到一定閾值后,寫入磁盤,磁盤中的樹定期可以做merge操作,合并成一棵大樹,以優化讀性能
增、刪、改、隨機讀取 & 順序掃描
Bigtable; HBase;
集中式存儲
基本概念
集中式存儲相對與單機存儲而言,存儲系統中包含了更多組件,除了機頭(控制器)、磁盤陣列(JBOD)和交換機等設備外,還有管理設備等輔助設備。
參考:集中式存儲的基本邏輯示意圖
系統構成
機頭,整個存儲系統的核心部件,通常由控制器、前后端口組成,
控制器,通常有二,實現互備高可用,控制器中的軟件實現對磁盤的管理,將磁盤抽象化為存儲資源池,然后劃分為LUN提供給服務器使用。
前后端口,前端端口用戶為服務器提供存儲服務,后端端口用于擴充存儲系統的容量(連接更多的存儲設備)
磁盤柜(Just a Bound Of Disk , JBOD),磁盤掛在服務器外的專用柜里,有獨立電源、散熱、接口等,內部線纜相連(SCSI),對機頭后端端口統一掛載
分布式存儲
基本概念
分布式存儲系統,是將分散獨立的存儲設備通過網絡互聯,系統關聯,對外作為一個整體提供存儲服務。
系統分類
分布式文件系統
分布式鍵值系統
分布式表格系統
分布式數據庫
設計原則
參考CAP
云存儲
基本概念
云存儲,是一種云計算領域存儲服務方式,底層構建在分布式存儲基礎之上,上層通過Internet形式提供存儲服務,除具備分布式存儲基礎特性外,更兼具靈活性,通常由云廠商提供
參考產品
引擎
對象存儲
文件存儲
塊存儲
AWS
Amazon Simple Storage Service (Amazon S3)
Amazon Elastic File System (Amazon EFS)
Amazon FSx for Windows File Server
Amazon FSx for Lustre
Amazon Elastic Block Store (EBS)
Aliyun
OSS
文件存儲NAS
文件存儲CPFS
文件存儲HDFS
塊存儲
云原生存儲
基本概念
云原生存儲脫胎于云存儲,除具備云存儲的特性外、須滿足具備云原生生態系統中其他所有組件具備相同的動態(公共云/專有云/混合云等場景)構建可擴展應用、S3 API 驅動、K8S友好等
參考示例
Rook
CNCF首個云原生存儲項目Rook,是將文件、數據塊和對象存儲系統引入到Kubernetes集群,與其他正在使用存儲的應用程序和服務一起無縫運行。通過這種方式,云原生集群可以在公有云和本地部署中自給自足并且具備可移植性。該項目的開發目的是使企業能夠通過動態應用編排,為在本地和公有云環境中運行的分布式存儲系統實現數據中心現代化。
Rook Architecure
Ceph Rook integrates with Kubernetes
MinIO
MinIO是一款高性能、軟件定義的,對象存儲套件,幫助客戶構建云原生數據基礎設施。可與 Kubernetes 集成,允許操作員使用 Kubernetes 界面管理存儲,而 Kubernetes 可以處理從存儲提供到卷放置的所有事務。
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的图文存储常识:单机、集中、分布式、云、云原生存储的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式锁在存储系统中的技术实践
- 下一篇: 数据湖 VS 数据仓库之争?阿里提出大数