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