聊一聊单机、集中式、分布式和云原生存储
點擊上方“朱小廝的博客”,選擇“設(shè)為星標(biāo)”
后臺回復(fù)"書",獲取
后臺回復(fù)“k8s”,可領(lǐng)取k8s資料
背景
本文主要對楊傳輝(日照)《大規(guī)模分布式存儲系統(tǒng)原理解析與架構(gòu)實戰(zhàn)》、大話存儲、網(wǎng)絡(luò)資源(具體參考文末鏈接)及個人理解進(jìn)行整理,意在構(gòu)建出存儲發(fā)展基本軌跡和一些基本常識,讓更多像我一樣的初入者有個宏觀上的認(rèn)知。
?
存儲發(fā)展史
從單機到互聯(lián)網(wǎng),存儲作為的基礎(chǔ)設(shè)施,主要發(fā)展都是圍繞構(gòu)建 低成本、高性能、可擴展、易用的目標(biāo)進(jìn)行演進(jìn),時至今日,在形態(tài)上存儲分為單機存儲、集中存儲、分布式存儲、云存儲、云原生存儲
各階段存儲的基本形態(tài)如下
各階段基本形態(tài)
存儲數(shù)據(jù)分類 & 模型
無論單機存儲、分布式存儲、云存儲都是基于特定應(yīng)用場景下,對指定數(shù)據(jù)類型構(gòu)建對應(yīng)的存儲數(shù)據(jù)模型
數(shù)據(jù)分類
數(shù)據(jù)模型
存儲類型
常見三種存儲類型:塊存儲、文件存儲、對象存儲
塊存儲
基于Block塊的存儲模式,兩種常見存儲方式:
DAS(Direct Attch Storage), 直連主機存儲方式
SAN (Storage Area Netowrk),高速網(wǎng)絡(luò)鏈接主機存儲方式
文件存儲
依附網(wǎng)絡(luò)提供文件存儲服務(wù)
對象存儲
構(gòu)建于鍵值存儲,核心是將數(shù)據(jù)通路(data)和控制通路(meta)分離,并且基于對象存儲設(shè)備(Object-based Storage Device,OSD)構(gòu)建存儲系統(tǒng),對外以RSETful API形式服務(wù)
單機存儲
基本概念
單機存儲系統(tǒng)是單機存儲引擎(數(shù)據(jù)結(jié)構(gòu)在機械磁盤、SSD等持久化介質(zhì)上的實現(xiàn))的一種封裝,對外提供文件、鍵值、表格或者關(guān)系模型的存儲服務(wù)。
?
存儲引擎
存儲引擎是存儲系統(tǒng)的發(fā)動機,決定了存儲系統(tǒng)能夠提供的功能和性能, 提供功能包含:
增加(Create)
讀取(Retrieve),隨機讀取和順序掃描
更新(Update)
刪除(Delete)
引擎間差異如下:
集中式存儲
基本概念
集中式存儲相對與單機存儲而言,存儲系統(tǒng)中包含了更多組件,除了機頭(控制器)、磁盤陣列(JBOD)和交換機等設(shè)備外,還有管理設(shè)備等輔助設(shè)備。
參考:集中式存儲的基本邏輯示意圖
系統(tǒng)構(gòu)成
機頭,整個存儲系統(tǒng)的核心部件,通常由控制器、前后端口組成,
控制器,通常有二,實現(xiàn)互備高可用,控制器中的軟件實現(xiàn)對磁盤的管理,將磁盤抽象化為存儲資源池,然后劃分為LUN提供給服務(wù)器使用。
前后端口,前端端口用戶為服務(wù)器提供存儲服務(wù),后端端口用于擴充存儲系統(tǒng)的容量(連接更多的存儲設(shè)備)
磁盤柜(Just a Bound Of Disk , JBOD),磁盤掛在服務(wù)器外的專用柜里,有獨立電源、散熱、接口等,內(nèi)部線纜相連(SCSI),對機頭后端端口統(tǒng)一掛載
?
分布式存儲
基本概念
分布式存儲系統(tǒng),是將分散獨立的存儲設(shè)備通過網(wǎng)絡(luò)互聯(lián),系統(tǒng)關(guān)聯(lián),對外作為一個整體提供存儲服務(wù)。
系統(tǒng)分類
分布式文件系統(tǒng)
分布式鍵值系統(tǒng)
分布式表格系統(tǒng)
分布式數(shù)據(jù)庫
設(shè)計原則
參考CAP
云存儲
基本概念
云存儲,是一種云計算領(lǐng)域存儲服務(wù)方式,底層構(gòu)建在分布式存儲基礎(chǔ)之上,上層通過Internet形式提供存儲服務(wù),除具備分布式存儲基礎(chǔ)特性外,更兼具靈活性,通常由云廠商提供
參考產(chǎn)品
云原生存儲
基本概念
云原生存儲脫胎于云存儲,除具備云存儲的特性外、須滿足具備云原生生態(tài)系統(tǒng)中其他所有組件具備相同的動態(tài)(公共云/專有云/混合云等場景)構(gòu)建可擴展應(yīng)用、S3 API 驅(qū)動、K8S友好等
參考示例
Rook
CNCF首個云原生存儲項目Rook,是將文件、數(shù)據(jù)塊和對象存儲系統(tǒng)引入到Kubernetes集群,與其他正在使用存儲的應(yīng)用程序和服務(wù)一起無縫運行。通過這種方式,云原生集群可以在公有云和本地部署中自給自足并且具備可移植性。該項目的開發(fā)目的是使企業(yè)能夠通過動態(tài)應(yīng)用編排,為在本地和公有云環(huán)境中運行的分布式存儲系統(tǒng)實現(xiàn)數(shù)據(jù)中心現(xiàn)代化。
Rook Architecure
Ceph Rook integrates with Kubernetes
MinIO
MinIO是一款高性能、軟件定義的,對象存儲套件,幫助客戶構(gòu)建云原生數(shù)據(jù)基礎(chǔ)設(shè)施。可與 Kubernetes 集成,允許操作員使用 Kubernetes 界面管理存儲,而 Kubernetes 可以處理從存儲提供到卷放置的所有事務(wù)。
想知道更多?掃描下面的二維碼關(guān)注我
后臺回復(fù)"技術(shù)",加入技術(shù)群
后臺回復(fù)“k8s”,可領(lǐng)取k8s資料
【精彩推薦】
原創(chuàng)|OpenAPI標(biāo)準(zhǔn)規(guī)范
中臺不是萬能藥,關(guān)于中臺的思考和嘗試
ClickHouse到底是什么?為什么如此牛逼!
原來ElasticSearch還可以這么理解
面試官:InnoDB中一棵B+樹可以存放多少行數(shù)據(jù)?
微服務(wù)下如何解耦?對于已經(jīng)緊耦合下如何重構(gòu)?
如何構(gòu)建一套高性能、高可用、低成本的視頻處理系統(tǒng)?
架構(gòu)之道:分離業(yè)務(wù)邏輯和技術(shù)細(xì)節(jié)
星巴克不使用兩階段提交
點個贊+在看,少個 bug?????
超強干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的聊一聊单机、集中式、分布式和云原生存储的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用数据库实现了一个分布式锁,虽简陋,但能
- 下一篇: 必备快速定位排查问题命令