Google 连接了永久性磁盘的实例的 Compute Engine 快照失败

Google Compute Engine snapshot of instance with persistent disks attached failed

我有一个工作的 VM 实例,我正在尝试复制它以允许 google 负载平衡器后面的冗余。 使用虚拟实例的测试 运行 运行良好,从 运行ning 实例的快照创建新实例。 现在,真正的 "original" 实例连接了一个永久磁盘,这会导致启动克隆实例时出现问题,因为(显然)缺少永久磁盘安装。 来自串行控制台输出的日志如下:

* Stopping cold plug devices[74G[ OK ] * Stopping log initial device creation[74G[ OK ] * Starting enable remaining boot-time encrypted block devices[74G[ OK ] The disk drive for /mnt/XXXX-log is not ready yet or not present. keys:Continue to wait, or Press S to skip mounting or M for manual recovery

据我了解,无法将任何此类击键发送到实例,是否有其他方法可以解决此问题?我知道我可以在快照之前卸载磁盘,但我想安装的工作流程是创建生产服务器的周期快照,因此每次在执行之前卸载磁盘都需要实例停机时间(加上所有不必要的风险)一个看似毫无意义的行动)。

有没有办法成功启动这种类型的克隆实例,然后附加一个新的持久磁盘?

发生这种情况是因为原始永久磁盘正在使用中,还是即使原始实例处于离线状态也会出现同样的问题(例如由于故障,在这种情况下我会尝试从快照)?

我不太清楚你想要完成什么。听起来您正在寻找定期快照生产服务器的数据卷以便稍后克隆它们。

很有可能,您只需要在制作快照之前同步并 fsfreeze 到,而不仅仅是 unmounting/remounting。 GCP 文档在 Snapshots documentation.

中有一个基本示例

我用来避免相同问题的一个解决方法是我实际上并没有卸载磁盘,而只是注释掉 /etc/fstab 中的安装行并拍摄快照。这样我的实例在快照时就没有停机时间或磁盘停机。 (如果重要的话,我使用 Ubuntu 14.04 作为 OS)

稍后我在新实例上使用该快照时修复并取消注释它。 但是,您也可以考虑在注释行中添加 nofail 选项以获得更好的解决方案。

顺便说一下,我正在执行一项类似的任务,即使用多个网络服务器节点构建负载平衡设置。每个都是从上述快照克隆的,并安装了额外的永久磁盘,例如上传、数据和日志等