如果写入并行进行,则计划快照在Google Cloud中是否会对(实例磁盘/快照磁盘)有影响?

时间:2019-06-05 20:36:24

标签: google-cloud-platform google-compute-engine snapshot

我正在尝试为我的GCP实例计划快照,我只是想知道快照数据或实际磁盘数据是否有可能损坏/或将受到任何影响。我的意思是假设我正在创建快照,同时正在进行一些写操作,如何确保这不会对我的实际磁盘或快照造成任何错误?

4 个答案:

答案 0 :(得分:2)

答案取决于您的操作系统。

Microsoft Windows Server支持快照。 Windows将停止文件系统活动并准备快照。在操作系统运行时,这是一种安全的操作。

在拍摄快照时(不添加第三方软件),Linux不会做任何特殊的事情。这意味着在操作系统运行时,Linux上的快照并不安全。关闭操作系统,然后对磁盘进行快照或映像并重新启动实例。

除非操作系统为快照,打开的文件,缓存,数据库句柄等在内存中做特殊的事情。此数据不是快照的一部分。因此,在某些情况下,这将导致快照不一致。这意味着数据损坏。

Google不建议对实时系统进行快照。 AWS或Azure都不是。

答案 1 :(得分:1)

由于持久性磁盘的快照不是瞬时的,因此并行写入可能会破坏操作。

通常按照以下步骤进行安全的快照过程:

  1. 在快照前刷新磁盘缓冲区
  2. 冻结并卸载您的 文件系统
  3. 拍摄快照
  4. 重新安装永久磁盘

这些最佳做法由Google Cloud直接推荐,并描述如下:https://cloud.google.com/compute/docs/disks/snapshot-best-practices

答案 2 :(得分:1)

是的,建议您在创建快照之前先停止实例,但是根据我的经验,如果实例仍在运行;它的I / O似乎没有受到影响。但是快照中的实际信息可能已损坏。

请记住要按计划快照查看项目的配额,而成本将与网络流量有关。

我为您提供了有关时间表快照的更多信息的链接: https://cloud.google.com/compute/docs/disks/scheduled-snapshots

答案 3 :(得分:0)

否。

拍摄快照时对永久磁盘性能没有影响。

快照将持续完成所有已完成的IO操作,直到拍摄快照为止。但是,根据您使用的应用程序,它可能处于不一致状态。例如。如果您使用innodb_flush_log_at_trx_commit = 2运行MySQL,则可能会丢失一些数据,因为某些事务在被确认为应用程序之前可能不会刷新到PD。

如果您使用innodb_flush_log_at_trx_commit = 0(默认)运行MySQL,则理论上它应该能够进行崩溃恢复并还原所有提交的转换。实际上,应用程序和文件系统中可能存在错误,因此建议您定期测试您的恢复过程。

相关问题