容器附加存儲 (CAS) 與軟件定義存儲(SDS) ,如何選擇
譯文【51CTO.com快譯】硬件抽象涉及創建一個編程層,該層允許計算機操作系統在一般而不是詳細級別與硬件設備進行交互。該層用于實現將硬件用于任何軟件程序的邏輯代碼。對于存儲設備,抽象層為用戶訪問共享存儲提供了一個統一的接口,對操作系統實現了對硬件設備的隱藏功能。這就允許在用戶機器上運行的軟件從存儲設備獲得盡可能高的性能。另外,它還允許獨立于設備的程序,因為存儲硬件抽象層使設備驅動程序能夠直接訪問每個存儲設備。
Kubernetes 本質上與基礎設施無關,因為它依賴于插件和抽象卷來將存儲硬件與應用程序和服務分離。另一方面,當用戶終止容器時,數據就會立即丟失。Kubernetes 使用卷和持久卷將容器化應用程序創建和處理的數據保存在物理存儲設備上。這些抽象通過各種類型的硬件抽象層 (HAL)實現連接到存儲硬件 。Kubernetes 集群用兩種常用 HAL 存儲實現 容器附加存儲 (CAS)和 軟件設計存儲 (SDS)。
本博客,將深入探討了 CAS 和 SDS 的根本區別、各自的優勢以及典型 HAL 存儲實現的最合適應用。
容器附加存儲與軟件定義存儲
Kubernetes 采用抽象存儲來實現可移植、高可用和分布式存儲。Kubernetes API 支持通過 CSI 接口連接各種 CAS 和 SDS 存儲解決方案。那么,先讓我們仔細研究抽象模型的功能以及每個模型在 Kubernetes 集群中解決存儲的目的。
容器附加存儲
容器附加存儲 (CAS)引入了一種為 Kubernetes 集群中有狀態工作負載持久保存數據的新方法。使用 CAS,存儲控制器作為 Kubernetes 集群的一部分在容器中進行管理和運行。由于這些控制器可以在任何 Kubernetes 平臺上運行,無論是在個人機器、本地數據中心還是公有云產品上,這就允許存儲的可移植性。由于 CAS 利用微服務架構,存儲解決方案與綁定到物理存儲設備的應用程序保持密切關聯,從而減少了 I/O 時間。
容器附加存儲架構
CAS 利用 Kubernetes 環境來實現集群數據的持久性。存儲解決方案在容器中運行存儲目標。這些 目標是可以復制以進行獨立擴展和管理的微服務。為了增強自主性和敏捷性,這些基于微服務的 存儲目標可以使用像 Kubernetes 這樣的平臺進行編排。
CAS 集群使用控制平面層 進行存儲管理,而數據平面層 用于運行存儲目標/工作負載??刂破矫嬷械拇鎯刂破魈峁┚?、啟動存儲目標副本并執行其他管理相關任務。數據平面組件執行來自控制平面元素的存儲策略和指令。這些指令通常包括文件路徑、存儲和訪問方法。數據平面還包含存儲引擎 ,負責實現文件存儲的實際輸入輸出路徑。
容器附加存儲的好處
Container Attached Storage 為有狀態的容器化應用程序提供了敏捷存儲。這是因為它遵循基于微服務的模式,允許無縫升級存儲控制器和目標副本。存儲軟件的容器化意味著管理團隊可以為每個卷動態分配和更新存儲策略。對于 CAS,低級存儲資源使用 Kubernetes 自定義資源表示定義。這允許存儲和云原生工具之間的無縫集成,從而實現更輕松的管理和監控。CAS 還確保存儲與供應商無任何關聯,因為有狀態的工作負載可以從一個 Kubernetes 部署環境移動到另一個,而不會中斷服務。
容器附加存儲應用
CAS使用存儲目標復制來保證高可用,避免傳統分布式存儲架構的爆炸半徑限制。這使得 CAS 成為云原生應用程序的首選存儲選擇。CAS 也適用于希望在多個云中協調存儲的企業。這是因為 CAS 可以部署在任何 Kubernetes 平臺上。Container Attached Storage 支持簡單的存儲備份和復制,非常適合需要橫向擴展存儲的應用程序。當然,它也非常適合希望改善持續集成和開發 (CI/CD) 管道的讀寫時間的開發團隊。
Kubernetes 的流行 CAS 解決方案提供商包括:
1)OpenEBS
2)StorageOS
3)Portworx
4)Longhorn
軟件定義存儲
軟件定義存儲架構依靠數據程序將運行的應用程序與存儲硬件分離。通過將存儲設備抽象為虛擬分區來簡化存儲設備的管理,然后在承載命令和控制功能的數據管理接口 (DMI)上啟用管理?! ?/p>
軟件定義存儲的特點
借助軟件定義存儲,數據/服務管理界面托管在控制由共享存儲池組成的存儲層的主服務器上。這使得存儲的配置和分配變得簡單而靈活。以下是軟件定義存儲的一些主要功能:
設備抽象 - 無論底層硬件如何,數據 I/O 服務都應該統一交付給用戶。通過 SDS,存儲抽象結構(例如存儲庫、文件共享、卷和邏輯單元號 (LUN))用于在數據存儲的物理硬件和邏輯方面之間創建清晰的劃分。
自動化 - SDS 解決方案實施的工作流程和算法可減少管理員執行的手動工作量。為了實現高效的自動化,SDS 存儲系統可以適應幾乎不需要人工干預的不同性能和數據需求。
分解的池化存儲 - 物理存儲設備是共享工具的一部分,軟件可以從中為服務和應用程序開辟存儲空間。這允許 SDS 在需要時有效地使用可用存儲,從而實現資源的最佳使用。
軟件定義存儲的優勢
使用 SDS 的一些好處包括:
增強的可擴展性 - 解耦硬件資源允許管理員根據工作負載動態分配物理存儲。SDS 支持的池化、分解存儲允許物理卷的垂直和水平擴展,支持更大的容量和更高的性能。
改進的 I/O 性能 - SDS 支持 輸入-輸出并行性,以跨多個 CPU 動態處理主機請求。SDS 還支持高達 8TB 的大緩存內存,同時支持自動數據分層。這允許更快的輸入-輸出操作以更快的數據處理。
互操作性 - SDS 使用數據管理接口作為轉換器,允許在不同平臺上運行的存儲解決方案相互交互。它還將物理隔離的存儲硬件分組到邏輯池中,允許組織托管來自不同供應商的共享存儲。
降低成本 - SDS 存儲解決方案通常在現有商品硬件上運行,同時優化存儲消耗。SDS 還支持自動化,從而減少管理存儲基礎架構所需的管理員數量。這些因素導致管理工作負載的前期和運營費用降低。
何時使用軟件定義存儲
SDS 為希望以更低的成本提高存儲靈活性的團隊提供了多種好處。SDS 的一些常見用例包括:
數據中心基礎設施現代化
為移動和具有挑戰性的環境創建強大的系統
創建要在同一平臺上管理的混合云實施
利用現有的遠程和分支機構基礎設施
容器附加存儲與軟件定義存儲的比較
相似之處:
CAS 和 SDS 都支持物理存儲硬件和正在運行的應用程序之間的隔離。在這樣做的同時,這兩種技術都從數據存儲資源中抽象了數據管理。這兩個 HAL 實現共享幾個共同的功能,包括:
供應商不可知
CAS 和 SDS 架構都允許在單個主機上運行多個工作負載。這允許管理員利用存儲設備和訪問軟件之間的分離。因此,無論是誰開發或管理工具,組織都可以選擇 CAS 或 SDS 來實施可在任何平臺上運行的存儲解決方案。
允許動態存儲分配
SDS 和 CAS 允許動態連接和分離存儲工具,從而為高可用性應用程序自動提供數據備份和副本。SDS 和 CAS 都允許自動部署存儲基礎設施,從而實現存儲技術的多樣性和異構性。
允許有效的基礎設施擴展
CAS 和 SDS 允許橫向和縱向基礎設施擴展以自動化數據工作流。這兩種 HAL 方法支持創建可組合的分解基礎架構,從而增強多功能分布式環境的創建。
CAS和SDS的差異
SDS 支持分布式存儲管理并減少硬件依賴性,而 CAS 允許使用任何容器編排平臺運行的分解存儲。因此 CAS 和 SDS 之間的各種差異,包括:
軟件定義存儲依賴于傳統共享軟件,具有爆炸半徑的限制,而容器附加存儲 (CAS) 允許存儲軟件的復制,允許獨立管理和擴展。
CAS 允許擴展/橫向擴展存儲和卷性能,而 SDS 允許擴展存儲節點以提高存儲容量。
SDS 支持超融合基礎架構 (HCI),而 CAS 支持高度分解的存儲基礎架構。
容器附加存儲和軟件定義存儲都允許集群管理員利用硬件抽象的優勢為 Kubernetes 中的有狀態應用程序持久化數據。CAS 允許使用 Kubernetes 進行基于微服務的存儲編排,從而實現對存儲控制器的靈活管理。另一方面,軟件定義存儲允許使用可編程數據控制平面抽象存儲硬件。
CAS 具有典型 SDS 提供的所有功能,盡管是為容器工作負載量身定制的,但仍然是使用最新的軟件和硬件進行構建。
原文標題:Container Attached Storage (CAS) vs. Software-Defined Storage - Which One to Choose?
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】
























