我有一个正在运行的 VM 实例,我正在尝试复制该实例以允许在 google 负载均衡器后面进行冗余。
使用虚拟实例进行测试运行效果很好,从正在运行的实例的快照创建了一个新实例。
现在,真正的“原始”实例附加了一个永久性磁盘,这会导致在启动克隆实例时出现问题,因为(显然)缺少永久性磁盘安装。
串行控制台输出的日志如下:* 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
据我了解,无法将任何此类击键发送到实例,还有其他方法可以解决此问题吗?我知道我可以在快照之前卸载磁盘,但我想建立的工作流程是创建生产服务器的周期快照,因此每次在执行之前卸载磁盘都需要实例停机(加上所有不必要的风险)一个看似毫无意义的行动)。
有没有办法成功启动这种类型的克隆实例,然后附加一个新的持久性磁盘?
发生这种情况是因为原始永久性磁盘正在使用中,还是即使原始实例离线也会出现同样的问题(例如,由于失败,在这种情况下我会尝试从快照创建新实例)?
最佳答案
我用来摆脱同一问题的一种解决方法是我实际上并没有卸载磁盘,而只是注释掉 /etc/fstab
中的挂载行并拍摄快照。这样我的实例在快照时没有停机时间或磁盘故障。 (如果重要的话,我使用 Ubuntu 14.04
作为操作系统)
稍后,当我在新实例上使用该快照时,我会修复并取消注释。
但是,您也可以考虑添加 nofail
注释行中的选项以获得更好的解决方案。
顺便说一下,我正在做一个类似的任务,用多个网络服务器节点构建负载平衡设置。每个都从上述快照克隆,并安装了额外的永久磁盘,用于上传、数据和日志等
关于google-cloud-storage - 附加了永久性磁盘的实例的 Google Compute Engine 快照失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37479910/