如何自动备份 Google Cloud VM?

谷歌云虚拟机备份指南

如果您在共享主机上托管网站,则备份通常由您的托管服务提供商处理,您无需担忧。 然而,当您将托管迁移到如 Google Cloud 或 AWS 等云平台时,备份就变成了您需要亲自处理的任务。

近期,我将 techblik.com 迁移到了谷歌云平台,并寻找一个简单的一键备份方案。 遗憾的是,这样的功能并不存在。 经过研究,我发现备份过程略有不同,但这种方式我反而更喜欢,因为它赋予了用户对备份的完全控制权。

备份可以分为多个层级,包括应用程序、配置和日志等。在本文中,我将介绍手动和自动执行完整虚拟机备份的方法。

在谷歌云中,用于备份的术语是“快照”。

快照有以下几个优势:

  • 您可以在磁盘连接到实例时创建快照,这意味着备份过程无需停机。
  • 快照采用差异化备份方式,而非每次都创建完整的磁盘备份,从而降低了存储成本并提高了操作速度。

使用 Google Cloud Console 手动创建快照

谷歌云控制台提供了一个简便的磁盘快照创建选项。

  • 登录 Google Cloud,在计算引擎下找到 磁盘
  • 点击您要创建快照的磁盘名称,该磁盘应已连接到您的实例。
  • 点击“创建快照”按钮。

为快照命名,然后点击“创建”。

  • 创建快照需要一些时间,具体取决于磁盘大小。 完成后,您可以在快照部分找到它。

这表明您的虚拟机磁盘备份已经完成。 您可以使用此快照来恢复或创建具有相同状态的新虚拟机。

使用脚本自动创建快照

如果您的应用程序经常更改,并且您希望定期自动创建快照,以下内容会对您有所帮助。

我参考了 https://github.com/jacksegal/google-compute-snapshot 的项目。

  • 登录到您要进行自动备份的实例。
  • 创建一个文件夹来存储脚本文件。
  • 下载脚本文件:
 wget https://github.com/jacksegal/google-compute-snapshot/blob/master/gcloud-snapshot.sh
  • 将文件权限更改为可执行:
chmod 755 gcloud-snapshot.sh
  • 手动执行脚本,以确保其正常工作:
./gcloud-snapshot.sh

确认脚本运行无误后,您可以配置 crontab 定期运行它。

  • 以下示例显示了如何在每天 05:00 运行脚本:
0 5 * * * /opt/google-compute-snapshot/gcloud-snapshot.sh >> /var/log/cron/snapshot.log 2>&1

该脚本默认保留过去 7 天的快照。 如果您需要更改此设置,请编辑脚本文件并修改 `OLDER_THAN=7` 的值。

使用 Google Cloud Console 自动创建快照

谷歌最近推出了此功能,我很喜欢。 现在,您可以直接从控制台安排磁盘快照。

  • 转到 “计算引擎” >> “快照”。
  • 点击“快照计划”选项卡,然后点击“创建快照计划”。

  • 输入必要的信息,然后点击“创建”。

让我们来了解一下可用的选项:

  • 区域:选择虚拟机快照(备份)的存储位置。
  • 计划频率:选择每天、每周或每小时进行备份的频率。
  • 开始时间:设定备份的开始时间,建议选择流量较低的时段。
  • 自动删除快照:设置需要保留的最新快照数量。
  • 删除规则:配置如果源磁盘(虚拟机)被删除时应发生的情况。

创建后,您应该可以看到它们已列出。

这表示快照计划已准备好附加到磁盘。

  • 转到 “计算引擎” >> “磁盘”。
  • 选择要启用快照的磁盘。
  • 点击“编辑”并选择新创建的计划,如下所示。

就这样!

谷歌云将根据时间表自动创建快照。

您会发现,花几分钟设置备份可以为您带来极大的保障。 除了快照之外,您还应该考虑启用屏幕截图,这有助于了解虚拟机的状态。

如果您有兴趣了解更多信息,请查看此GCP认证课程

喜欢这篇文章吗?请与他人分享。