如何在openstack中重新启动后恢复实例

如何在openstack中重新启动后恢复实例,openstack,devstack,Openstack,Devstack,在成功安装devstack并启动实例后,但一旦重新启动计算机,需要重新启动并丢失当时启动的所有实例。我尝试重新加入堆栈,但没有成功,如何在重新启动后恢复实例?devstack是一个短暂的环境。它不应该在重新启动后存活。这是不受支持的行为 也就是说,通过运行 ./unstack.sh 追随者 ./stack.sh 再说一遍 同样,devstack是一个短暂的环境。现有的主要用途是为openstack的CI基础结构运行门测试。或尝试/rejoin stack.sh重新加入以前的屏幕。您可以在中设

在成功安装devstack并启动实例后,但一旦重新启动计算机,需要重新启动并丢失当时启动的所有实例。我尝试重新加入堆栈,但没有成功,如何在重新启动后恢复实例?

devstack是一个短暂的环境。它不应该在重新启动后存活。这是不受支持的行为

也就是说,通过运行

./unstack.sh
追随者

./stack.sh
再说一遍


同样,devstack是一个短暂的环境。现有的主要用途是为openstack的CI基础结构运行门测试。

或尝试
/rejoin stack.sh
重新加入以前的屏幕。

您可以在中设置
resume\u guests\u state\u on\u host\u boot=True
。该文件应位于
/etc/nova/nova.conf

我发现了一些旧的讨论

AFAIK目前OpenStack(Icehouse)还没有完全了解其中的环境,因此在重新启动后无法完全恢复。实例将在那里(virsh域),但即使您手动启动它们或使用nova标志,我也不确定其他设施是否能正确处理此问题(例如,中子将根据DB记录正确配置所有L3规则等)。老实说,我很确定它们不会

答案取决于你需要实现什么:

  • 如果您需要一个模板环境(例如,每次重新启动后都需要一组类似的实例和网络),您可以编写所有内容的脚本。换句话说,只需制作一个bash脚本,创建所需的所有内容,并在每次stack.sh之后运行它。由于OpenStack DB状态保持在./unstack-./stack.sh或./rejoin-stack.sh之间,因此请确保您从clean environment开始(您可以尝试只清理数据库,或者删除它。stack.sh将重新构建它)

  • 如果您需要一个持久性环境(例如,您不想在重新启动后失去VM和整个基础结构状态),我不知道如何使用OpenStack来实现这一点。F.e.中子代理(它们配置iptables、dhcp等)不保存状态,并由中子服务的事件驱动。它们在重新启动后不会恢复,因此网络将死机。如果有人能分享这样的恢复方法,我将非常高兴

  • 总的来说,我认为OpenStack没有关注这一点,也不会在最近的发布周期中关注这一点。常见的方法是使用多节点环境,其中每个节点都是可替换的


    请参见此处的相同问题,以供参考。所有文档都推荐。/rejoin_stack.sh。但它就是不起作用。再次建立它是一个巨大的痛苦。事实上,我已经注意到,如果您只是简单地取消堆栈并再次堆栈,它将在启动vm时失败,出现“找不到可用区域”之类的情况。您不需要每次都运行stack.sh,重新启动后重新加入stack.sh就足以启动所有服务。虽然rejoin-stack.sh仍然不是问题的答案,而且关于ephemeral和CI的注释非常正确,但这可能会起作用,但似乎不能保证网络和其他设施恢复到以前的状态。所以,即使虚拟机启动,他们也可能没有一个工作的网络