使用VolumeSnapshots备份Kubernetes上的数据库Kubernetes上的数据库继续呈上升趋势。我们看到越来越多的人采用我们的雷竞技下载官网Percona Kubernetes运营商以及将工作负载迁移到云原生平台的需求。我们的运营商提供内置备份和恢复功能,但一些用户仍在寻找老式的方法,如存储级快照(即AWS EBS快照)。

在这篇博文中,你将学到:

  1. 如何使用Percona操作符从存储快照进行备份和恢复雷竞技下载官网
  2. 这种备份的风险和限制是什么

概述

卷快照了遗传算法在Kubernetes 1.20中。您的存储和容器存储接口(CSI)都必须支持快照。所有主要的云提供商都支持它们,但可能需要一些步骤才能启用。例如,对于GKE,您必须创建一个VolumeSnapshotClass资源。

在高层次上,Kubernetes上的快照是这样的:

作为PersistentVolume由实际存储卷表示,VolumeSnapshot为云卷快照的Kubernetes资源。

准备备份

首先,我们需要确定VolumeSnapshots都受支持。对于主要的云,请阅读以下文档:

配置了CSI并且卷快照类就绪之后,继续创建备份。

备份

确定要快照的persistentvolumecclaims (PVC)。例如,对于我的MongoDB集群,我有6个pvc: 3个复制集节点和3个配置服务器节点。

每个PVC都有自己的VolumeSnapshot。的例子mongod-数据-我的-集群-名字-cfg-0

我列出了我所有的VolumeSnapshots一个YAML清单中的对象。

VolumeSnapshotContent创建并绑定到每个VolumeSnapshot资源。它的状态可以告诉你在云中快照的名称,并检查快照是否就绪:

  • 快照- 0 - e67c3b5 - 551 f - 495 b - b775 d026ea3c8f——09年是我在GCP中为卷保存的快照。
  • readyToUse:真-表示快照已经就绪

恢复

简单地说,恢复过程如下:

  1. 使用快照创建持久卷。卷的名称必须与Operator使用的标准相匹配。
  2. 提供集群

像任何其他备份一样,它必须有适当的秘密:TLS和用户。

您也可以使用这个恢复过程来克隆现有的集群,只需确保您更改了集群、pvc和Secret名称。

从快照创建持久卷。这和常规的创造是一样的PersistentVolumeClaim,但有一个数据源指向快照的部分:

完成之后,像往常一样启动集群。您之前创建的卷将被自动使用。恢复完成了。

风险和局限性

存储支持

Kubernetes中的存储和存储插件都必须支持卷快照。这限制了选择。除了公共云,还有一些开源的解决方案,比如Ceph (rook。IO for k8s),可以提供快照功能。

时间点恢复

时间点恢复(PITR)允许您通过恢复或回滚数据库到特定事务或时间来减少点恢复目标。

云中的卷快照以增量方式存储数据。第一个快照保存所有数据,下面的快照仅存储更改。这大大降低了您的云账单。但是快照不能提供与本机数据库机制相同的RPO。

数据一致性和损坏

快照不支持数据。在拍摄快照时,可能会发生大量事务和数据修改。例如,MongoDB中大量的写活动和同时创建复合索引可能会导致快照损坏。最大的问题是您将在恢复期间了解数据损坏。

在快照之前锁定或冻结文件系统将有助于避免此类问题。像Velero或Veeam这样的解决方案迈出了实现数据感知的第一步,可以通过自动冻结文件系统或停止复制来创建一致的快照。

雷竞技下载官网Percona Services团队使用各种工具安全地自动化快照创建。请在这里联系我们确保数据安全。

成本

公共云将快照存储在廉价的对象存储上,但为了方便起见要额外收费。例如,AWS EBS快照的价格为0.05美元/GB,而S3仅为0.023美元。这是2倍的差异,对于庞大的数据集来说,这可能会显著增加你的账单。

恢复时间

这不是一种风险或限制,而是我经常看到的一种常见误解:从快照中恢复只需要几秒钟。但事实并非如此。从快照创建EBS卷时,需要几秒钟的时间。但实际上,您刚刚创建的卷没有任何数据。有关EBS快照内部结构的详细信息,请参见这篇不错的博客文章

结论

Kubernetes上的卷快照可用于数据库,但存在一定的限制和风险。在选择备份方案时,数据的安全性和一致性是最重要的因素。对于Pe雷竞技下载官网rcona运营商,我们强烈建议使用内置解决方案,以保证数据的一致性,并最大限度地减少恢复时间和点目标。

了解更多关于Percona Kub雷竞技下载官网ernetes操作符

订阅
通知的
客人

0评论
内联反馈
查看所有评论