以下為速記整理(文字未經(jīng)演講人審閱):
目前大家都知道容器越來越熱門,很多大型企業(yè)尤其是制造業(yè)和金融行業(yè)關(guān)注最多,已經(jīng)向容器領(lǐng)域發(fā)展了。容器原來是物理記憶現(xiàn)在是虛擬化,毫無疑問馬上會成為一個新的虛擬化場景,最后進(jìn)入到無服務(wù)器計(jì)算,我覺得在企業(yè)里面比較少,公有云比較多一些。
據(jù)Gartner統(tǒng)計(jì),虛擬機(jī)已經(jīng)在企業(yè)里大量采用,容器是下一個計(jì)算虛擬化的熱點(diǎn),因?yàn)槿萜鲿容^敏捷一些,有22%的企業(yè)主要考慮用容器而不是虛擬機(jī),27%的全球組織已經(jīng)將容器用于生產(chǎn),容器跑生產(chǎn)要解決一個問題,數(shù)據(jù)持久性問題。
如果有數(shù)據(jù),要解決數(shù)據(jù)的存儲和備份問題,今天主要講備份的問題。容器怎么備份,首先看容器生態(tài),Kubernetes已經(jīng)成為容器編排的事實(shí)標(biāo)準(zhǔn)。存儲也是一樣的,原來開發(fā)很多私有接口,但是現(xiàn)在你會發(fā)現(xiàn)CSI也成為容器存儲接口的事實(shí)標(biāo)準(zhǔn),容器跟存儲之間的接口也標(biāo)準(zhǔn)化了,這其實(shí)給數(shù)據(jù)保護(hù)廠商或備份廠商帶來一個好的機(jī)遇。
In-Tree存儲卷插件是容器編排器的一部分,有許多缺點(diǎn):
Flex Volume插件試圖通過為外部卷插件公開基于exec的API來解決這種痛苦。雖然它使第三方存儲供應(yīng)商能夠在out-of-tree編寫驅(qū)動程序,但為了部署第三方驅(qū)動程序文件,它需要訪問節(jié)點(diǎn)和主機(jī)的根文件系統(tǒng)。
為解決這些問題,2018年,云原生計(jì)算基金會(CNCF)發(fā)布了Kubernetes 1.13,讓Container Storage Interface(CSI)普遍可用。CSI通過使用標(biāo)準(zhǔn)Kubernetes原語開發(fā)存儲插件,它是out-of-tree的,并且支持容器化部署,通過用戶熟悉和喜愛的Kubernetes存儲原語進(jìn)行消費(fèi),從而解決所有這些問題。
主要利用K8S和CSI生態(tài)解決容器備份難題,我們可以看到在K8S認(rèn)證里面,2020年11月7日統(tǒng)計(jì):共有99個CSI Driver,有51個支持Snapshot。CNCF Landscape中K8s發(fā)行版,共68個K8s發(fā)行版。
收購新風(fēng)口——K8s數(shù)據(jù)管理
相對來說,我覺得現(xiàn)在進(jìn)入容器做備份是很好的,因?yàn)橐呀?jīng)有基金會牽頭幫你把生態(tài)打造了一遍,主要是適配生態(tài),生態(tài)會比原來虛擬機(jī)環(huán)境簡單。今天會講講幾個廠商怎么做的,我的標(biāo)題叫做第二存儲新的風(fēng)口,兩年前講第二存儲的時候就說第二存儲就是新風(fēng)口,現(xiàn)在新風(fēng)口就是容器的備份。
2020年9月,Pure Storage以3.7億美金高價(jià)收購Portworx,2020年10月,Veeam以1.5億美金高價(jià)收購Kasten。以后容器越來越多,產(chǎn)生一個新的獨(dú)角獸或未可知。
近期國外機(jī)構(gòu)GigaOm發(fā)布了基于K8s數(shù)據(jù)保護(hù)的雷達(dá)圖,里面就是一些認(rèn)為相對比較好的一些廠商,所以我們今天圍繞三個廠商講一下容器備份方案怎么做的,一個是數(shù)據(jù)存儲的代表就是Portworx,它是做容器出身,第二個講一下Commvault,它是做數(shù)據(jù)管理,數(shù)據(jù)備份這一塊,現(xiàn)在有新的版本把容器生態(tài)做起來了,備份廠商向新的平臺擴(kuò)展的一個廠商代表,還有一個是Kasten,已經(jīng)被Veeam收購,是做數(shù)據(jù)管理的,容器的廠商都會做備份這件事情。這三個廠商是目前K8s備份進(jìn)步很快的,其他小的公司進(jìn)入不到中國。
國內(nèi)在制造業(yè)里已經(jīng)有用戶在用了,所以Commvault在中國都有存在,大家有機(jī)會用到很多方案。這個第三方分析報(bào)告僅代表他的個人觀點(diǎn),只是作為一個參考,并不代表真實(shí)的情況。
現(xiàn)在我講講自己的看法,Commvault,它認(rèn)為容器備份不能僅僅備份數(shù)據(jù),因?yàn)槿萜髌脚_里面除了存在PV里面,還有容器以外有應(yīng)用的話,其實(shí)還有環(huán)境、配置,元數(shù)據(jù)是什么,只有數(shù)據(jù)的話,恢復(fù)不起來的,重新建這個環(huán)境是很費(fèi)勁的。
我們看一下進(jìn)展,其實(shí)Commvault很早就做容器備份了,但是2017年做docker,2018年是OpenShift,我們知道這個生態(tài)是比較多樣的,K8S沒有一統(tǒng)天下,到了2018年底,2019年開始,CSI可以看到一統(tǒng)天下了,今年下半年Commvault發(fā)布最新版本Commvault 11.20,已經(jīng)支持標(biāo)準(zhǔn)原生K8s。
主要的原理很簡單,首先會由一個虛擬機(jī)裝到Access Node,上面有一個proxy軟件,它可以通過API跟服務(wù)器通信,去獲取整個容器平臺應(yīng)用信息,自動發(fā)現(xiàn)應(yīng)用,每個應(yīng)用需要什么資源,用的資源是什么樣的,數(shù)據(jù)在哪里,以應(yīng)用為單位進(jìn)行備份。
它是一個自動化發(fā)現(xiàn)的問題,應(yīng)用可以自動發(fā)現(xiàn),根據(jù)標(biāo)題搜索。說白了,它備份數(shù)據(jù)的時候,它就是通過API-Server數(shù)據(jù),看一下應(yīng)用了哪些PV(persistent volumes),通過CSI調(diào)取快照,如果不支持可能會需要agent做數(shù)據(jù)備份。
從界面上來看,它把整個K8S和虛擬化并列的兩個菜單,是兩個并列的入口,K8S也是虛擬化一種,但是它是虛機(jī)虛擬化,所以是并列兩個入口。因?yàn)橐粋€大的企業(yè)不僅僅是容器的平臺,可能還有虛擬機(jī)平臺或者是物理機(jī)平臺。
K8s集群通訊機(jī)制類似VM的vCenter,恢復(fù)的話不僅僅恢復(fù)應(yīng)用,恢復(fù)數(shù)據(jù)也可以,恢復(fù)元數(shù)據(jù)也可以,備份之后可以看到里面是什么樣的狀態(tài)?;謴?fù)的話可以恢復(fù)到另外一個集群,比如說公有云,不僅僅完成備份工作,也可以完成遷移的工作,特別是老的K8S平臺要升級很麻煩,可能需要備份,然后上新的一套容器平臺,這樣的話原來手工做很麻煩,現(xiàn)在是可以全部統(tǒng)一回復(fù)。
支持應(yīng)用自動篩選,通過標(biāo)簽來篩選,你把所有開發(fā)應(yīng)用前面打個標(biāo)簽,你只備份生產(chǎn)應(yīng)用就可以了,可以定義很多東西,這樣很方便可以做到自動化。
理論上來講肯定支持所有的CSI快照存儲,但是還是要實(shí)踐證明。前段時間XSKY驗(yàn)證其CSI快照可以和CV對接,通過間接驗(yàn)證都可以,大家都遵循K8S等等幾個規(guī)范,這樣就方便了備份軟件的生態(tài),又便于備份虛擬機(jī)的時候,調(diào)取快照很麻煩的事情,你又要去對接接口等等很麻煩,但是現(xiàn)在不用了,標(biāo)準(zhǔn)通過CSI可以搞定。
但是目前Commvault一直在做,目前應(yīng)用一致性備份主要是mysql和postgresql這兩個分布式數(shù)據(jù)庫,其他的應(yīng)用一致性還沒有做,但是要做也很簡單,你熟悉應(yīng)用的話可以自己寫腳本,它提供了一個腳本的入口,你可以寫一個腳本,快照前做什么腳本,刷一下內(nèi)存就可以了,快照釋放一下鎖就可以了,擴(kuò)展性很強(qiáng)。
小結(jié)一下,目前的優(yōu)勢是三個方面,可以自動化備份,自動發(fā)現(xiàn)應(yīng)用自動把應(yīng)用機(jī)做備份,第二是沒有代理,大家知道容器那么多,每個容器裝個代理,每個應(yīng)用裝一個代理備份不太現(xiàn)實(shí),所以說它是沒有代理。還可以跨云,到公有云,備份云恢復(fù)到另外一個地方去。
容器的各種部署模式,這種生態(tài)都見的很多,在實(shí)際生產(chǎn)過程當(dāng)中。你看某一個容器應(yīng)用,除了數(shù)據(jù)除了PV以外,我們看到很多的組件,可能都需要備份,應(yīng)用視角去看,光備PV是遠(yuǎn)遠(yuǎn)不夠的。
K10架構(gòu)也是一樣的意思,通過標(biāo)簽、篩選、自動發(fā)現(xiàn)應(yīng)用進(jìn)行備份,備份的話主要支持備份到對象存儲里面,其他存儲可能在做,好像快存儲暫時沒有看到支持,像Commvault沒有問題,可以本地做備份,更多應(yīng)用備份作為存儲。
整個備份我們可以看到數(shù)據(jù)捕獲能力,Kasten這一塊是比Commvault有些優(yōu)勢,它不僅可以調(diào)用CSI快照,它自己還可以調(diào)用應(yīng)用的一些數(shù)據(jù)庫工具,但是到快照里面做不到邏輯備份,這也是它的優(yōu)勢。
它的一致性,支持崩潰的一致性,應(yīng)用一致性幫助你刷內(nèi)存,數(shù)據(jù)庫的一致性可以做到數(shù)據(jù)庫的邏輯備份,系統(tǒng)一致性,全應(yīng)用捕獲跨數(shù)據(jù)和存儲層的工具結(jié)合。
Kasten整個理念是關(guān)注完整的一致性備份。在容器化方面比較專業(yè),我個人覺得,但只是容器,可能有些不會純IT化的企業(yè),選擇它有一些困難,因?yàn)橛幸恍┢髽I(yè)一般只想選一個應(yīng)用,所以現(xiàn)在被Veeam收購,把虛擬機(jī)做進(jìn)來會好一點(diǎn)。
最后講一下Portworx,它是做存儲的,容器存儲公司,它認(rèn)為做容器做備份問題跟虛擬機(jī)完全不一樣,因?yàn)樘摂M機(jī)講的語言跟容器講的語言不一樣,VM和K8S的不同,原來以機(jī)器為單位的備份方式是不行的,傳統(tǒng)的備份方式在容器下失靈,傳統(tǒng)備份軟件聽不懂K8S的語言,不會自動發(fā)現(xiàn)應(yīng)用,這是完全不一樣的東西。
PX-Backup就是解決備份的問題?;谌萜髁6榷际翘摂M機(jī)粒度,它會講K8S語言,可以一鍵備份namespace。二級這個比較難,因?yàn)檫@么多節(jié)點(diǎn)同時要?dú)?nèi)存控制它,理論上還是很麻煩的。
它雖然被Pure收購了,但是目前官網(wǎng)上通過CSI接口支持公有云,只有公有云,但是我相信其他廠商也能用,但可能更多是做Pure自己的生態(tài)為主。
總結(jié)
我最后給大家一個建議。傳統(tǒng)備份軟件無法支持容器應(yīng)用的備份要求,Kubernetes/CSI一統(tǒng)天下,備份生態(tài)好于VM時代,分布式架構(gòu)讓應(yīng)用一致性更具挑戰(zhàn)。
推薦建議:選擇支持標(biāo)準(zhǔn)Kubernetes/CSI生態(tài)的備份廠商,避免鎖定;下載試用版本,評估產(chǎn)品兼容性和應(yīng)用感知能力;產(chǎn)品版本迭代速度很快,關(guān)注廠商的路標(biāo)和支持能力。