随着雲原生時代的到來,越來越多的業務系統會采用雲原生架構。存儲系統作為承載業務穩定運作的核心元件,在雲原生的架構下,也面臨着新的挑戰。本文分析了三種雲原生存儲方案的優缺點和應用場景,并提出了容器雲存儲的選擇建議,希望能為大家提供參考。
一、 引言
IT業務發展迅速,業務資料急劇增長,業務需求變化快,流量的波峰波谷的不可預測性,是以現有傳統體應用架構無法滿足目前業務需求。容器技術在此背景下,應運而生。基于容器雲的數字化技術,帶來對使用者的服務品質的提升;提升運維效率;降低IT建設成本,提升資源使用率;能協助使用者采用新的技術,快速上線新業務。随着企業應用上雲越來越多地選擇使用容器化方式,容器服務在不同的雲廠商中都有大幅度的業務增長,容器服務已經逐漸成為雲原生時代新的基礎設施和最佳使用雲資源的入口。容器是随時可以銷毀,當容器消失時,資料也會随之消失,是以容器資料的持久化,是必不可少的。
同時,尤其是視訊、5G、直播、大型金融服務商等突發應用彈性擴容大量隻讀容器,對資源彈性的能力要求非常高,資料存儲需具備極緻彈性和極速伸縮能力的應用場景。
二、 雲原生存儲遇到的問題
問題如下:
:存儲服務部署、運維複雜,雲原生化程度低,缺少與主流編排平台整合。
:大量應用IO通路,IOPS需求高,低延遲時間,性能成為應用運作效率瓶頸。
:雲原生存儲已經應用到生産環境,需要高可靠/高可用,不能出現單點故障。
:PV快速建立、銷毀、平滑的擴充/收縮,PV随Pod遷移而快速遷移等。
三、 雲原生存儲方案
3.1 本地磁盤
本地磁盤架構
3.1.2 本地磁盤優缺點
1.性能好,資料可靠。由于磁盤和應用系統中間的IO路徑最短,本地磁盤可以提供最佳的性能。同時RAID提供了一定程度的可靠性的保證,可以避免因單個磁盤故障而導緻的資料丢失。
2.簡單。在伺服器的硬碟槽上插上硬碟,并利用HBA卡或軟體的方式制作RAID,劃分邏輯卷,格式化成某種檔案系統後,挂載到容器中。
1.由于容器的動态性,pod會漂移至其他節點,導緻pod無法使用之前節點磁盤上的資料 。
2.本地磁盤無法提供節點級别的高可用,當實體節點發生故障時,由于資料都存儲在故障節點上,是以應用無法被恢複到其他節點。
3.本地磁盤在靈活性上也無法滿足業務需求,業務使用的存儲空間受限于本地磁盤的大小,如果達到磁盤空間的上限後難以擴容。部署RAID也是相當耗時的操作,難以實作在短時間内部署大量的應用系統。
4.後期運維耗費人力,維護困難。
3.1.3 應用場景
1.無狀态服務,應用服務pod固定的場景。
2.io密集型應用服務,特别對磁盤網絡io敏感的服務。
3.2 集中式存儲NFS
3.2.1 NFS系統架構
1.NFS是C/S架構,分為兩部分:NFS用戶端與NFS服務端,二者不直接通信,通過RPCbind服務傳遞資訊。
2.NFS用戶端和服務端,基于TCP/IP協定通信。
3.2.2 集中式存儲的優缺點
優點:
1.容易上手。
2.友善部署非常快速,維護十分簡單。
3.相容Linux系統和Windows系統。
4.基于TCP/IP協定通信,适用性和相容性好。
5.遠端共享資料,解決了資料高可用的問題。
缺點:
1.盡管集中式存儲可以為單個業務系統提供較高的性能保證,但是當面臨大量業務并發通路時,存儲控制器則成為了性能瓶頸。如果想要滿足大量業務對性能需求,需要采用多套集中式存儲系統,存儲系統的管理成本也會急劇上升。
2.此外,由于集中式存儲誕生在幾十年前,在設計上就沒有把靈活性和運維便利性考慮進去,無法應對短時間内大量Volume的并發建立和銷毀操作,無法滿足業務系統對靈活性的要求。
3.2.3 應用場景
1.多個不同應用系統,共享同一檔案目錄。
2.Pod漂移後,資料不丢失,而且不用固定pod所在的節點。
3.3 雲原生分布式存儲OpenEBS
3.3.1 OpenEBS系統架構
1.Openebs主要分為兩部分:OpenEBS控制層和OpenEBS資料引擎。
2.資料引擎是OpenEBS的核心,負責代表它們所服務的有狀态工作負載對底層持久存儲執行讀寫操作。
3.控制層主要負責與Kubernetes CSI互動,管理卷的生命周期;與Prometheus/ Grafana內建,遙測和監控存儲。
3.3.2 分布式存儲OpenEBS優缺點
優點:
1.容器附加存儲的聲明式供應。
2.使用同步資料複制的持久性和高可用性。OpenEBS通過Jiva,cStor和Mayastor存儲引擎,能夠保障資料複制同步和高可用性。
3.通過快照和克隆進行資料保護。cStor存儲引擎,支援快照和克隆,且對快照的數量沒有限制。
4.通過備份和還原進行災難恢複。通過OpenEBS Velero插件,實作資料的備份和恢複 。
5.使用Prometheus名額和Grafana儀表闆的可觀察性。OpenEBS提供存儲相關名額,比如卷的IOPS、吞吐量、延遲和資料模式等。
缺點:
1.架構複雜,不易上手,需要較強的技術能力和運維能力;
2.資料一緻性問題。對于資料一緻性要求比較高的應用場景,分布式存儲的性能可能就稍弱了,因為分布式的結構,資料同步是一個大問題,雖然現在技術一緻在進步,但是也不如傳統儲存設備資料存儲方式可靠。
3.3.3 OpenEBS應用場景
1.有狀态服務的資料持久化。
2.服務資料的快照,克隆。
3.服務資料災備恢複。
四、如何選擇容器雲存儲
4.1 容器服務是否是叢集架構
1)獨立非叢集的服務,可以使用本地存儲。本地存儲io不走網絡。
2)叢集服務,需要共享目錄,應該使用NAS存儲或者分布式存儲解決。
4.2 資料存儲類型
容器存儲以塊和檔案類型,給容器服務提供存儲資源。容器Pod根據業務需求,選擇塊存儲和檔案存儲。
4.3 業務資料的重要性
1)資料的機密性。存儲對資料進行加密。
2)資料安全性。資料存儲支援快照,備份。
3)資料遷移和拷貝。資料存儲支援資料遷移,資料拷貝。
4)資料災難恢複。
4.4 容器服務特征
1)容器服務是否為有狀态服務和無狀态服務。通常情況下,有狀态服務是需要持久化資料;其次存儲需要支援動态建立存儲。
2)容器的生命周期及啟動和停止運作的頻率。高啟停頻率的系統會帶來資料持久化的挑戰,因為有些存儲系統的設計目的不是處理容器存儲資源的頻繁、快速供應和回收。
五、結語
随着雲原生時代的到來,越來越多的業務系統會采用雲原生架構。存儲系統作為承載業務穩定運作的核心元件,在雲原生的架構下,也面臨着新的挑戰。與此同時,資料庫以及存儲系統自身也受到了雲原生架構的影響,逐漸發展出雲原生資料庫和雲原生存儲系統。未來可以看到越來越多的雲原生資料庫和雲原生存儲出現在資料中心中,成為被廣泛使用的技術。
作者:ccww552010
來源:twt社群