如何自动备份Google Cloud虚拟机?
如果您的网站托管在共享主机上,您不需要担心备份问题,因为大多数hosting provider会为您处理备份。
然而,当您将托管迁移到云端,例如Google Cloud或AWS时,有一些您需要自己处理的事情。
备份就是其中之一!
最近,我将Geekflare迁移到了Google Cloud Platform,并且一直在寻找一个一键备份的选项,但不幸的是,这个选项并不存在。
经过一些研究,我了解到备份过程略有不同,而且我很喜欢它。好处是,您对备份有完全控制。
备份有多个层次(应用程序、配置、日志等),下面我将讨论如何手动和自动进行完整虚拟机备份。
在Google Cloud中,用于进行备份的术语称为“快照”。
一些快照的优点。
- 您可以在磁盘连接到实例时进行快照 – 备份期间无停机时间
- 它是增量的,而不是每次创建完整磁盘备份 – 减少备份存储成本并提高操作速度
使用Google Cloud控制台手动备份
Google Cloud控制台有一个可以对磁盘进行快照的选项,操作很简单。
- 登录Google Cloud并转到Compute Engine下的Disks
- 点击与实例连接的磁盘名称,您想要进行快照的磁盘
- 点击“创建快照”。
给快照命名并点击创建
- 它会花费一些时间(取决于磁盘大小),一旦完成,您将在snapshots section中看到它们。
这表示VM磁盘备份已完成。在需要的时候,您可以使用此快照将VM恢复/创建为与VM备份时相同状态的新VM。
使用脚本自动备份
如果您的应用程序频繁更改,并且希望定期自动进行快照,则以下内容将对您有所帮助。
我从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
确认它手动工作后,configure crontab to run periodically
- 按照以下示例在每天05:00运行
0 5 * * * /opt/google-compute-snapshot/gcloud-snapshot.sh >> /var/log/cron/snapshot.log 2>&1
该脚本将默认保留过去七天的快照。如果您需要更改此计划,请编辑脚本文件并更改OLDER_THAN=7
的值
使用Google Cloud控制台自动备份
Google最近推出了这些功能,我很喜欢。现在,GCP在控制台中为您提供了从控制台本身安排磁盘快照的选项。
- 转到Compute Engine>>快照
- 单击快照调度选项卡,将出现以下弹出窗口。点击创建快照调度
- 输入必要的信息,然后点击创建
让我们探索一下可用选项。
- 区域 – 选择您希望存储虚拟机快照(备份)的位置
- 计划频率 – 选择您希望多久从每天、每周、每小时进行一次备份
- 开始时间 – 何时应该进行备份?选择低峰时段。
- 自动删除快照后 – 您希望同时保留多少个最近的快照?
- 删除规则 – 如果您删除源磁盘(虚拟机)应该发生什么?
创建后,您应该会看到它们列出。
这表示快照计划已准备好附加到磁盘上。
- 转到“计算引擎”>>“磁盘”
- 选择要启用快照的磁盘
- 点击编辑并选择如下所示的新创建的计划。
- 点击保存
就是这样!
Google Cloud将根据计划进行快照。
您看到,只需要花几分钟设置备份就可以挽救生命。除了快照外,您还应考虑enabling screenshot,它可以帮助了解虚拟机的状态。
如果您对了解更多感兴趣,请查看此链接:GCP certification course。