在 GCP 上,当您定期对磁盘进行快照时,第一个快照是磁盘的完整快照,后续快照仅包含先前快照的增量。如果删除了快照并且它有其他依赖于它的快照,则快照可用于恢复所需的更改将移动到下一个快照。此过程详细说明这里。
如果快照失败,导致此过程无法发生,会发生什么情况?如果第一个快照以某种方式被删除或损坏,并且数据不会传递到第二个快照,那么这会导致所有后续快照都无法使用,还是 GCP 现在会查阅原始磁盘并重新构建第一个快照,或者只是创建一个新的完整快照?
如果原始磁盘和完整快照都因某种原因损坏,您是否会非常倒霉,根本没有机会恢复磁盘?
答案1
除非谷歌发布其快照软件的实际软件源代码和算法……
快照基本上是写时复制系统,每个快照都是指向已更改数据(磁盘块)副本的指针列表。如果快照软件出现故障,则错误类型将决定是否可以恢复。假设一切都会丢失,并为该事件做好计划。
实际的备份设计从不只信任一种备份机制、一个备份存储位置或一份备份副本。对于高价值数据,我始终使用三种备份形式以及冷备用。
答案2
Google Cloud 区域或多区域存储是围绕复制多个 blob 副本而构建的,在区域内、区域之间和区域之间。理论上,即使数据中心烧毁,也只会导致很少的数据丢失。快照和某些类型的磁盘就是这样存储的。
快照会自动维护至少一个完整和增量。据我所知,这无法通过 API 控制。通常,我希望选择所有完整,以便更简单地进行恢复,但如果这可以通过简单的界面可靠地进行增量恢复,那么就可以了。
是的,存储后端丢失完整快照可能会对时间点恢复造成灾难性的影响。可能只有完整数据,而增量或在线磁盘中没有数据。考虑到架构和他们的运营团队,这种情况不太可能发生,但会造成重大影响。至少快照创建文档声称在某些故障模式下您无法删除在线磁盘:
如果您尝试从可用区永久性磁盘创建快照,并且快照创建过程失败,则在清理失败的快照之前,您将无法删除原始可用区永久性磁盘。此故障保护有助于防止在备份失败的情况下意外删除源数据。
快照功能不支持每次都进行简单的全量备份。要实现这一点,就需要添加您自己的额外备份。也许可以使用快照作为源,但将它们存档在某处。额外的成本和复杂性,但并不完全依赖快照。