終於有人把雲原生存儲講明白了


什么是雲原生存儲

雲原生是一種開發和運行軟件應用程序的新范式,它融合了雲計算、容器化、Serverless 和微服務等技術趨勢。雲原生存儲是一種旨在用於雲原生環境的存儲技術。

雲原生存儲平台可以存儲管理有狀態應用程序的數據,並解決 Kubernetes 或其它基於雲原生環境的基礎設施中一直存在的數據存儲挑戰問題。分布式架構中的對象存儲可以基於現代對象存儲、塊存儲或傳統磁盤驅動器提供數據存儲服務。

雲原生應用和傳統應用並沒有一個標准的划分界限,其描述的是一種技術傾向,即越符合以下特征的應用越雲原生化:

  • 應用容器化
  • 服務網格化
  • 聲明式 API
  • 運行可彈性擴展
  • 自動化的 DevOps
  • 故障容忍和自愈
  • 平台無關,可移植的

雲原生應用是一簇應用特征能力的集合,而實現了這些能力的應用在可用性、穩定性、擴展性、性能等核心能力都會有大幅的優化。優異的能力代表了技術的方向,雲原生應用正在引領各個應用領域實現雲原生化,同時也在深刻改變着應用服務的方方面面。存儲作為應用運行的基石,也在服務雲原生化過程中遇到了更多的需求與挑戰。

雲原生存儲的主要特點

雲原生存儲的關鍵特性如下:

高可用性

雲原生存儲必須在高需求中可用。存儲系統需要具有即使在事件失敗時也能訪問數據的功能——無論是在傳輸系統、存儲介質、控制器還是其他組件中。存儲高可用性的 3 個要素:

  • 在其它存儲設備上,維護數據的復制副本。
  • 在任何故障情況下,冗余設備都會處理故障轉移。
  • 故障組件可以修復和恢復。

以下幾個是衡量高可用性的指標:

  • 恢復時間目標 (RTO) - 從故障到服務恢復的時間。
  • 恢復點目標 (RPO):最新的數據副本有多近?它會影響在發生故障時可能丟失的大部分數據。
  • 正常運行時間百分比:服務啟動和可用總時間的百分比。
  • 平均故障間隔時間 (MTBF):故障發生的頻率。
  • 平均恢復時間 (MTTR):服務從故障中恢復所需的時間。

可擴展性

雲原生存儲可以輕松靈活擴展。存儲系統的可擴展性可以從 4 個維度來定義:

  • 客戶端可擴展性:有能力增加訪問存儲系統的客戶端和用戶的強度。
  • 吞吐量可擴展性:能夠以更高的吞吐量運行,以 MB/s或 GB/s為單位,或通過同一接口每秒同時進行大量操作。
  • 容量可擴展性:具有在單次部署中增加存儲系統的存儲容量的能力。
  • 集群可擴展性:可以根據需要通過添加更多組件來增加存儲組件。

存儲性能

雲原生存儲應該支持可預測的、可擴展的性能,服務水平通常從以下角度進行衡量。

  • 完成讀/寫操作的時間。
  • 每秒最大存儲操作數。
  • 數據的吞吐量,以 MB/s 或 GB/s 為單位存儲或檢索。

一致性

雲原生存儲應該支持如下的一致性:

  • 在寫、更新或刪除操作之后,讀操作應該返回正確和更新的數據。
  • 系統“強一致性”:修改數據返回完成后,從客戶端讀取立馬能夠讀取最新的數據,相比弱一致性。
  • 系統“最終一致性”:修改數據返回完成后,從客戶端讀取可能不是讀取最新的數據,要過一會可能才能讀取到最新的數據。

在一致性系統中,讀取延遲可以被視為恢復點目標 (RPO),因為這代表了組件故障時數據丟失最多的情況。

耐用性

雲原生存儲應該是持久的,需要保護數據免受任何丟失。不僅僅是可訪問性,存儲系統要確保數據可以長期存儲。一些因素會影響存儲系統的耐用性:

  • 數據保護層,例如可用的多個數據副本。
  • 冗余級別——本地冗余、遠程站點冗余、公有雲可用區冗余以及區域冗余。
  • 存儲介質的耐用特性——例如 SSD、旋轉磁盤、磁帶。
  • 系統能夠檢測由於組件故障、流量溢出等導致的損壞,並自動重建或恢復損壞的數據。

動態部署

動態部署是雲原生存儲系統的最終理想標准,可以根據需要快速部署或配置,也可以通過多種方式進行部署和實例化,其中包括:

  • 硬件部署:部署在數據中心的物理存儲設備。使用此部署模型來構建標准化組件,這些組件無需特殊配置即可添加到集群中、需要時進行交換和刪除。
  • 軟件部署:存儲組件被定義為軟件組件部署在硬件、設備或雲實例上。無論是本地環境還是雲環境,雲原生軟件解決方案通常都可以安裝。一些軟件定義的存儲系統被構建為容器,並且可以使用容器編排自動部署。
  • 雲服務:這些雲服務可以由公有雲提供商管理並作為服務交付,抽象了底層存儲實現。用戶可以通過使用 Web 界面或 API,配置新實例或額外存儲。

雲原生存儲解決方案

雲原生存儲的最佳解決方案定義如下:

公有雲存儲

公有雲可以提供一系列雲原生存儲選項,包括對象存儲(例如 Amazon S3 或 青雲QingCloud 對象存儲)、基於雲的文件共享以及附加到計算實例的托管磁盤。

私有雲存儲

每當公司構建私有雲時,他們通常會傾向於選擇具有簡單可擴展性、高可靠性和便利性特性的商業雲存儲服務商。大多數服務商提供部署支持和運營與維護 (O&M) 服務。隨着雲原生存儲需求的增長,私有雲基礎設施供應商提供了最成熟的雲原生接口,允許本地資源消耗雲存儲。

自行維護的存儲服務

公司可以在內部構建的存儲服務類型主要有 2 種:塊存儲和簡單文件存儲。

Ceph RBD 和存儲區域網絡 (SAN) 被認為是相對成熟的塊存儲解決方案,但是由於它們的復雜性,通常需要專門的支持和維護團隊。

決定要創建自己的分布式存儲系統的公司可以選擇 GlusterFS、NFS 和 CephFS 等服務做文件存儲。NFS 相對成熟,但不足以解決高性能應用需求。GlusterFS 和 CephFS 通常無法滿足關鍵任務應用程序所需的性能和可靠性。

本地雲原生存儲的一個新趨勢是 S3 兼容存儲——支持 S3 API 的本地存儲設備。

本地存儲

雲原生應用程序中也有很多用例使用分布式存儲服務意義不大,比如雲原生系統中的邊緣設備或組件,使用本地存儲的 2 種常見情況:

  • 數據庫:雲原生應用程序仍然使用傳統數據庫,包括 SQL 和 NoSQL。在許多情況下,雲原生存儲提供數據庫所需的吞吐量和高性能。因此,數據庫這時可能已經被設置為冗余,從而無需高可用性。
  • 緩存:在大多數情況下,組件使用本地存儲作為臨時信息的緩存,不需要持久化以保護數據。臨時存儲是容器使用的最常見示例,當容器關閉時它會被擦除。

直播預告

雲原生存儲依然面臨很多挑戰,10 月 28 日(本周四)19:30,青雲直播間將邀請 QingStor 高級軟件工程師楊興祥線上分享【雲原生時代需要什么樣的存儲系統】,帶大家了解在當前雲原生環境下,什么是雲原生存儲、為什么需要雲原生存儲,將對市場主流的幾個雲原生存儲方案進行詳細介紹,重點分享 QingStor 的雲原生存儲及應用實踐。

本文由博客一文多發平台 OpenWrite 發布!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM