我有一个正在运行的虚拟机实例,我正在尝试复制以允许谷歌负载均衡器后面的冗余。 使用虚拟实例的测试运行正常,从正在运行的实例的快照创建新实例。 现在,真正的"原创"实例有一个连接的持久磁盘,这导致启动克隆实例时出现问题,因为(显然)缺少持久磁盘挂载。 串行控制台输出的日志如下:
* 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
据我所知,没有办法将任何这些击键发送到实例,还有其他方法可以解决这个问题吗?我知道我可以在快照之前卸载磁盘,但我想要设置的工作流程是创建生产服务器的周期快照,因此每次执行磁盘之前卸载磁盘都需要实例停机(加上所有不必要的风险)一个看起来毫无意义的行动。)
有没有办法成功启动这种类型的克隆实例,然后附加一个新的持久性磁盘?
是否发生这种情况是因为原始持久性磁盘正在使用中,或者即使原始实例处于脱机状态也会出现同样的问题(例如,由于失败,我会尝试从快照创建新实例) ?
答案 0 :(得分:1)
我用来摆脱同一问题的一个解决方法是,我实际上并没有卸载磁盘而只是注释掉/etc/fstab
中的挂载行并拍摄快照。这样,我的实例在进行快照时没有停机或磁盘不足。 (如果重要的话,我正在使用Ubuntu 14.04
作为操作系统)
稍后,当我在新实例上使用该快照时,我修复并取消注释它。
但是,您还可以考虑在注释行中添加nofail
选项以获得更好的解决方案。
顺便说一下,我正在做一个类似的任务,建立一个带有多个webserver节点的负载均衡设置。每个都从所述快照克隆,并安装了额外的永久磁盘,例如上传,数据和日志等
答案 1 :(得分:0)
我对你要完成的事情有点不清楚。听起来您希望定期快照生产服务器的数据卷,以便以后可以克隆它们。
很有可能,您只需要在创建快照之前同步和fsfreeze,而不是仅仅卸载/重新安装它。 GCP文档在Snapshots documentation中有一个基本的例子。