K8S資料保護工具比較

portworx發表於2020-04-23

K8S資料保護工具比較:Cohesity、 Kasten、 OpenEBS、 Portworx、 Rancher Longhorn、 和Velero

資料保護對於客戶越來越重要。從概念上來說,資料保護包括備份、高可用性、應用連續性、和容災恢復。所有的企業都需要實施,測試和運維自己的資料保護策略,來避免在發生問題時對商業產生不利影響。隨著資料在使用者體驗和商業流程中的作用越來越重要,對關鍵資料突然不能訪問的問題的容忍度越來越低。根據Uptime Institute的報告()

 

資料無法訪問問題中41%的情況導致的損失均超過了百萬美元。企業對高可用性的基礎架構的依賴性逐漸增強。

 

因此,一個有效的資料保護策略可以使當機時間極少,即便發生意外當機,應用和資料也都可以快速的恢復。同時資料保護策略還需要確保資料的隱私性和合規性(比如GDPR和CCPA),現在越來越多的使用者資料轉移到了線上隱私合規愈發重要。

 

雖然資料保護是一個硬性需求,很多客戶仍然做的不夠好。傳統的資料保護方式在單獨主機環境裡很出色,但在分散式或跨資料中心環境裡就能力不足了。而Kubernetes環境是典型的分散式環境。傳統的業務連續性和容災恢復(BCDR)方案,無法支援現今執行在Kubernetes上的關鍵商業應用所要求的RPO(Recovery Point Objective)和RTO(Recovery Time Objective)。

由於每個應用和每個客戶環境都各不相同,因此資料保護方式也多種多樣。當我們考慮資料保護解決方案的時候,一些重要的問題我們首先需要思考:

 

  • 我是不是隻需要在一個單獨的資料中心裡保護我的資料?
  • 我是否需要保護數中心內和資料中心外的資料,需要建立一個混合的資料保護方案?
  • 是不是合規部門對一些備份和恢復資料的儲存位置有要求?
  • 應用對RPO和RTO的要求低還是高?
  • 是否需要對Kubernetes叢集裡的每一個應用都採用同樣水平的資料保護方式?
  • 我們準備對資料保護方案花多少錢,可否對不同的應用採用不同的資料保護方式,以降低成本?

還有一些問題取決於你的目標,比如:

  • 即使出現伺服器當機,或者磁碟當機,也需要保證Kubernetes應用的高可用。
  • 備份資料和應用的配置,這樣我們可以在另一個環境裡恢復它們。
  • 一旦出現資料中心服務中斷,應用可以即時在另一個環境重啟且沒有資料損失。

我們可以把資料保護場景分為:

  • 本地高可用
  • 備份和恢復
  • 容災恢復

這三種場景是所有企業級資料保護的基礎,也是評估一個Kubernetes資料保護解決方案能力的重要要素。不同解決方案的客戶要求可能各有不同,客戶需要根據自身的需求來評估這些要素。通常來說,只有靜態資料備份不足以完成有效的資料保護,本地高可用通常是必須的基礎性需求。

本地高可用、備份和恢復、容災恢復是評估一個Kubernetes資料保護解決方案能力的重要要素。

對於Kubernetes,資料保護是一個較新的領域,市場有一些解決方案提供。本文我們要分析Kubernetes應用資料保護領域的一些主要供應商()。我們在博文中討論的解決方案主要是為了保護Kubernetes中正在執行的應用、和應用中的永續性資料,而不是備份Kubernetes的節點服務或者etcd儲存,明確這些有助於我們更好的理解資料保護工具和Kubernetes的資料保護。

 

本地高可用性

本地高可用性指的是保護髮生在某單個資料中心的錯誤,或者是某單個可用性區域內的雲平臺的錯誤。當應用正在執行時,如果基礎架構、應用或者節點發生錯誤,都被認為是本地的錯誤。當我們用Kubernetes資料保護工具來構建本地高可用時,應用的複本可以在使用者無感覺的情況下快速恢復,達到對使用者的高可用。一個在本地節點錯誤情況下,當機的例子:。本地高可用性是資料保護的基礎。為達到本地高可用性,一般透過建立本地資料複製集的方式。如果本地高可用性是透過從外部其它位置的備份資料恢復的方式進行,那就應該被歸類為是備份恢復方案,因為恢復時間會比本地高可用性的方案長很多。

 

備份和恢復

備份和恢復方案,指的是把Kubernetes上的整個應用,從本地Kubernetes叢集上,備份到非本地的另一位置的物件儲存裡(非本地指位於其他區域的公有云、私有云、或者是本地部署環境)。備份解決方案也可以有多個備份位置。備份通常是為了防止系統錯誤,或者為了應用的合規和監管要求。而Kubernetes備份,需要符合Kubernetes環境特點。包括:

 

  • Kubernetes資源,比如Secrets、服務賬戶、CRDs等
  • 應用配置和資料

這些物件對Kubernetes來說都需要被備份。傳統的備份方案一般不會考慮這些Kubernetes的物件,而是通常只把應用所依賴的VM、伺服器、磁碟作為備份目標。一個Kubernetes備份解決方案,不僅能備份單個應用,而且可以備份多個應用或者整個Kubernetes名稱空間,同時也能夠支援傳統備份方式的內容,比如排程、Jobs、 retention、加密和分層。

 

一個Kubernetes備份必須包括Kubernetes的資源比如Secrets、服務賬戶、CRDs、應用配置和資料。

容災恢復

與備份類似,容災恢復也必須要包括Kubernetes的一系列物件,應用配置和資料。並且需要建立主站點之外的容災站點,這樣資源和持久狀態能夠在主站點出問題時快速恢復到容災站點。容災恢復系統也可以處理不同保護層級的RPO和RTO,取決於成本和商業需要的綜合考慮。 

 

例如,如果應用不能承擔任何資料丟失,那就必須設定零RPO的目標。如果要求沒那麼高,也可以設定15分鐘RPO的目標。再例如,一個應用的RTO要求<2分鐘,而另一個應用可以允許1小時之內的當機時間。

 

容災恢復系統必須規劃應用如何配置才能夠在容災節點上有效的啟動執行。這需要處理應用的後設資料,例如標籤和複製集等,讓它們能夠自動啟動起來。如果Kubernetes的API不能夠被理解和啟動,就會產生當機事故或者資料損失。

Kubernetes資料保護解決方案的比較

我們已經理解了資料保護的多種型別,我們接下來比較一下市場上的解決方案: *比較基於各解決方案提供商的網站和文件。

 

 

快速索引

X   –  沒有這項功能,或者宣稱有功能但沒有找到任何支援性資訊

❍ – 宣稱有這項功能,但是功能較為薄弱

◑  – 宣稱有這項功能,但是功能不完整

✅ – 宣稱有這項功能,並且從網站上的文件來看功能完整

Cohesity

Cohesity在網站上介紹,“Cohesity保護Kubernetes名稱空間的資料和應用狀態。Web-Scale平臺備份名稱空間包括執行狀態,而不僅僅是資料。”Cohesity是資料保護和儲存領域的一個主要服務商,它近期也透過備份名稱空間的資料和應用,開始支援Kubernetes。但是Cohesity僅僅針對整個名稱空間,而不能保護名稱空間內的每個獨立應用。保護單獨應用是很有必要的,因為不是所有名稱空間內的應用都需要同一水平的保護級別。因此Cohesity保護的顆粒度還不夠。另外Cohesity目前還沒有Kubernetes主儲存,也還沒有基於Kubernetes的容災恢復方案。由於Cohesity對於備份VM的傳統解決方案積累很久,現在進入到對Kubernetes的支援,也是一個很好的解決方案。

 

Kasten

Kasten在網站上介紹,“K10資料管理平臺,為Kubernetes而建,為企業運營團隊提供易用、可擴充套件、安全的備份恢復、容災恢復、和叢集間應用遷移能力”。Kasten使用自身構建的儲存系統 -EBS/RBD,不支援應用自身所在叢集裡的複製,因此它無法支援本地高可用。基於雲端的塊儲存來構建Kubernetes卷,經常會由於Stuck Volumes導致應用的當機。由於沒有資料路徑的元件,Kasten無法達到資料完全無損的零RPO,備份只能是非同步的,因此恢復後的資料與最新的資料會有一定的不同。有時候企業在容災恢復上的要求不高,但很多企業仍然在容災恢復上需要零RPO。

 

OpenEBS

OpenEBS這樣描述:“我們是應用和本地、網路或雲端儲存之間的抽象層,透過OpenEBS可以減少維護工作量,降低儲存成本並且簡化管理。”OpenEBS主要集中在本地高可用,也可以和Velero整合來達到OpenEBS 資料管理即服務(DMaaS)。DMaaS能夠把Kubernetes有狀態應用以及持久資料進行遷移。本地部署、雲部署等任意方式都可以互相遷移。相對於Cohesity只備份整個名稱空間而非每個獨立的Kubernetes應用,OpenEBS只備份獨立的應用。應用層級的備份的確更加靈活,但很多客戶仍然需要名稱空間層級的備份。另外OpenEBS只能用來備份包含持久儲存卷的有狀態應用,而不能備份或遷移Kubernetes物件和應用配置。OpenEBS備份是基於Velero進行的,而Velero也有自身的侷限性 – 不能提供完整的容災恢復功能,而OpenEBS自身也沒有容災恢復功能的補充,雖然OpenEBS也可以提供類似Kasten那樣的非同步備份的容災,但問題也是無法達到資料完全無損的零RPO。

 

Portworx

Portworx是一個端到端的Kubernetes儲存和資料管理方案。包括基於容器的CaaS,DBaaS,SaaS,備份恢復,以及容災恢復。Portworx被市場研究機構GigaOm評為全球第一的Kubernetes儲存平臺。GigaOm評價Portworx的功能完美適應大型客戶與服務提供商的需求。Portworx解決方案支援複雜的Kubernetes基礎架構,無論是本地部署還是公有云/混合雲部署。在Portworx的支援下,所有的Kubernetes應用都可以獲得容器原生儲存能力,以及本地高可用、容災恢復、備份、安全管理、多雲間遷移的能力等。Portworx提供一個資料層能夠伸展在低延遲的網路上,從而達到零RPO容災恢復,本地應用的備份和名稱空間的備份。Portworx一開始就支援本地高可用,以及後來推出的PX-DR和PX-Backup能夠提供更加多樣的資料保護能力。

 

Rancher Longhorn

根據Rancher的描述,Longhorn是“輕量的,可靠的,和強大的。你可以使用簡單的Kubectl命令,或者使用Helm來把Longhorn安裝到Kubernetes叢集上。一旦安裝完成,Kubernetes叢集就具備了持久儲存卷的支援。”雖然比起其他開源解決方案,Longhorn的社群較小,但它近期被接受加入了CNCF。Longhorn有DR Volume的功能,可以被設定成源卷和目標卷,這樣卷可以在一個新叢集上基於最新的備份被啟用。這個很類似Kasten的DR解決方案,是基於備份的,因此無法達到零RPO的能力。同樣由於也不含應用後設資料,因此也無法達到Kubernetes應用層級的恢復。

 

Velero

Velero描述自己的解決方案:“一個開源工具,可實現安全的備份恢復、容災和恢復,以及遷移Kubernetes叢集資源和持久卷。”Velero自身只能支援無狀態應用資源。但是使用者可以選擇增加外掛來達到持久卷宣告快照備份。另一個選擇是Restic,它透過檔案/複製方式來實現。Velero自身並沒有解決Kubernetes應用的資料問題。但如果結合外掛或者Restic一起使用,可以提供備份和恢復,以及基於非同步備份的容災恢復能力 – 類似OpenEBS和Kasten。但是一樣也無法提供零RPO的容災恢復能力。

 

結語

 

希望這篇文章能夠幫助您更多的瞭解Kubernetes備份和資料保護解決方案,以及它們與傳統的容災恢復方案或者備份恢復方案有什麼不同。各種解決方案在目前雲原生架構下的構建方式都各有不同,因此這需要使用者根據自身的應用的實際情況與需要,為應用選擇不同層級的資料保護機制,從而選擇有效的資料保護解決方案。

 

參考文件:

 

[1]

[2] 

[3] 

[4] 

[5] 

[6]


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69950566/viewspace-2688003/,如需轉載,請註明出處,否則將追究法律責任。

相關文章