訂閱
糾錯
加入自媒體

容器連接存儲 vs.軟件定義存儲:哪種更好?

2021-08-10 13:46
51CTO
關(guān)注

硬件抽象涉及編程層的創(chuàng)建,該層允許計(jì)算機(jī)操作系統(tǒng)在通用級別而不是特定級別與硬件設(shè)備進(jìn)行交互。該層涉及將硬件用于任何軟件程序的邏輯代碼實(shí)現(xiàn)。而存儲設(shè)備的抽象為用戶訪問共享存儲提供了統(tǒng)一的接口,從而對操作系統(tǒng)隱藏了硬件的實(shí)現(xiàn)。這允許在用戶機(jī)器上運(yùn)行的軟件從存儲設(shè)備獲得盡可能高的性能。它還允許采用獨(dú)立于設(shè)備的程序,因?yàn)榇鎯τ布橄笫乖O(shè)備驅(qū)動程序能夠直接訪問每個存儲設(shè)備。

Kubernetes本質(zhì)上與基礎(chǔ)設(shè)施無關(guān),因?yàn)樗蕾囉诓寮途沓橄髞韺⒋鎯τ布c應(yīng)用程序和服務(wù)進(jìn)行分離。另一方面,容器是短暫的,當(dāng)它們終止時會立即丟失數(shù)據(jù)。Kubernetes使用卷和持久卷將容器化應(yīng)用程序創(chuàng)建和處理的數(shù)據(jù)保存在物理存儲設(shè)備上。這些抽象通過各種類型的硬件抽象層(HAL)實(shí)現(xiàn)連接到存儲硬件。Kubernetes集群的兩種常用硬件抽象層(HAL)的存儲實(shí)現(xiàn)是容器附加存儲(CAS)和軟件定義存儲(SDS)。

本文深入探討了容器附加存儲(CAS)和軟件定義存儲(SDS)的根本區(qū)別、各自的優(yōu)勢以及典型硬件抽象層(HAL)存儲實(shí)現(xiàn)的典型用例。

Kubernetes采用抽象存儲來實(shí)現(xiàn)可遷移、高可用和分布式存儲。Kubernetes  API支持通過CSI接口連接的各種容器附加存儲和軟件定義存儲的解決方案。以下了解一下抽象模型的功能以及每個模型在Kubernetes集群中解決存儲的目的。

容器附加存儲引入了一種為Kubernetes集群中的有狀態(tài)工作負(fù)載以持久保存數(shù)據(jù)的新方法。使用容器附加存儲,存儲控制器作為Kubernetes集群的一部分在容器中進(jìn)行管理和運(yùn)行。這保證了存儲的可遷移性,因此這些控制器可以在任何Kubernetes平臺上運(yùn)行,無論是在個人電腦、內(nèi)部部署數(shù)據(jù)中心還是公共云上。由于容器附加存儲利用微服務(wù)架構(gòu),存儲解決方案與綁定到物理存儲設(shè)備的應(yīng)用程序保持密切關(guān)聯(lián),從而減少了I/O時間。

(1)容器附加存儲的架構(gòu)

容器附加存儲利用Kubernetes環(huán)境來實(shí)現(xiàn)集群數(shù)據(jù)的持久性,使得存儲解決方案在容器中運(yùn)行存儲目標(biāo)。這些目標(biāo)是可以復(fù)制以進(jìn)行獨(dú)立擴(kuò)展和管理的微服務(wù)。為了增強(qiáng)自主性和敏捷性,這些基于微服務(wù)的存儲目標(biāo)可以使用像Kubernetes這樣的平臺進(jìn)行編排。

容器附加存儲集群使用控制平臺層進(jìn)行存儲管理,而數(shù)據(jù)平臺層可以運(yùn)行存儲目標(biāo)/工作負(fù)載?刂破脚_中的存儲控制器提供卷、啟動存儲目標(biāo)副本,并執(zhí)行其他管理相關(guān)任務(wù)。數(shù)據(jù)平臺組件執(zhí)行來自控制平臺元素的存儲策略和指令。這些指令通常包括文件路徑、存儲和訪問方法。數(shù)據(jù)平面還包含存儲引擎,負(fù)責(zé)實(shí)現(xiàn)文件存儲的實(shí)際輸入輸出路徑。

(2)容器附加存儲的好處

容器附加存儲為有狀態(tài)的容器化應(yīng)用程序提供靈活的存儲。這是因?yàn)樗裱谖⒎⻊?wù)的模式,允許無縫升級存儲控制器和目標(biāo)副本。存儲軟件的容器化意味著管理團(tuán)隊(duì)可以為每個卷動態(tài)分配和更新存儲策略。對于容器附加存儲,其低級存儲資源使用Kubernetes自定義資源定義表示。這允許存儲和云原生工具之間的無縫集成,從而實(shí)現(xiàn)更輕松的管理和監(jiān)控。容器附加存儲還確保存儲與供應(yīng)商無關(guān),因?yàn)橛袪顟B(tài)的工作負(fù)載可以從一個Kubernetes部署環(huán)境移動到另一個環(huán)境,而不會中斷服務(wù)。

(3)容器附加存儲的用例

容器附加存儲使用存儲目標(biāo)復(fù)制來保證高可用性,避免傳統(tǒng)分布式存儲架構(gòu)的一些限制。這使得容器附加存儲成為云原生應(yīng)用程序的首選存儲選擇。容器附加存儲也適用于希望在多個云平臺中協(xié)調(diào)存儲的組織。這是因?yàn)槿萜鞲郊哟鎯梢圆渴鹪谌魏蜬ubernetes平臺上。

容器附加存儲支持簡單的存儲備份和復(fù)制,非常適合需要橫向擴(kuò)展存儲的應(yīng)用程序。它也非常適合希望改善持續(xù)集成(CI)和持續(xù)交付(CD)管道的讀寫時間的開發(fā)團(tuán)隊(duì)。

Kubernetes的主要容器附加存儲解決方案提供商包括:

軟件定義存儲架構(gòu)依靠數(shù)據(jù)程序?qū)⑦\(yùn)行的應(yīng)用程序與存儲硬件解耦。這通過將存儲設(shè)備抽象為虛擬分區(qū)來簡化存儲設(shè)備的管理,然后在承載命令和控制功能的數(shù)據(jù)管理接口(DMI)上啟用管理。

(1)軟件定義存儲的特點(diǎn)

采用軟件定義存儲,數(shù)據(jù)/服務(wù)管理界面托管在主服務(wù)器上,主服務(wù)器控制由共享存儲池組成的存儲層。這使得存儲的配置和分配變得簡單而靈活。以下是軟件定義存儲的一些主要功能:

(2)軟件定義存儲的好處

使用軟件定義存儲的一些好處包括:

(3)何時使用軟件定義存儲

軟件定義存儲為希望以更低的成本提高存儲靈活性的團(tuán)隊(duì)提供了多種好處。軟件定義存儲的一些常見用例包括:

(1)相同之處

容器附加存儲和軟件定義存儲都支持物理存儲硬件和正在運(yùn)行的應(yīng)用程序之間的解耦。在這樣做的同時,這兩種技術(shù)都從數(shù)據(jù)存儲資源中抽象了數(shù)據(jù)管理。這兩個硬件抽象層(HAL)實(shí)現(xiàn)共享一些共同的功能,其中包括:

(2)不同之處

軟件定義存儲支持分布式存儲管理并減少硬件依賴性,而容器附加存儲允許使用任何容器編排平臺運(yùn)行的分解存儲。這就帶來了軟件定義存儲和容器附加存儲之間的各種差異,包括:

容器附加存儲和軟件定義存儲都允許集群管理員利用硬件抽象的優(yōu)勢為Kubernetes中的有狀態(tài)應(yīng)用程序持久化存儲數(shù)據(jù)。容器附加存儲允許使用Kubernetes進(jìn)行基于微服務(wù)的存儲編排,從而實(shí)現(xiàn)對存儲控制器的靈活管理。另一方面,軟件定義存儲允許使用可編程數(shù)據(jù)控制平面抽象存儲硬件。

容器附加存儲具有典型軟件定義存儲提供的所有功能,盡管是為容器工作負(fù)載量身定制的,并使用最新的軟件和硬件原語構(gòu)建。

原文標(biāo)題:Container Attached Storage (CAS) vs. Software-Defined Storage - Which  One to Choose?,作者:Sudip Sengupta

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處】

來源:51CTO李睿

聲明: 本文系OFweek根據(jù)授權(quán)轉(zhuǎn)載自其它媒體或授權(quán)刊載,目的在于信息傳遞,并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),如有新聞稿件和圖片作品的內(nèi)容、版權(quán)以及其它問題的,請聯(lián)系我們。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號