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