我的一些服务器应用程序失败了,因为它们的虚拟机在数据库虚拟机之前启动。有没有办法配置 libvirt 以按特定顺序启动它们,并在其中一些虚拟机之前插入可能的延迟?
在 Ubuntu 12.04 x64 上运行 libvirt 0.9.8。大多数客户机也是 Ubuntu Server 12.04。
答案1
libvirt 仅提供自动启动功能。如果这对您来说很重要,我会设置一个 init 脚本,以特定顺序启动虚拟机。算法将是virsh start VM1
;等待服务启动(使用 ping/snmp/telnet 检查相关端口);virsh start VM2
等等
答案2
您可以在 RC 初始化脚本中使用休眠,但我会更改服务器应用程序以在启动之前检查数据库和任何其他依赖项是否存在。最好在应用程序上进行测试,而不是在 HV-guest 配置中进行测试。
如果您无法更改应用程序本身,那么您可以使用其初始化脚本进行测试。
答案3
您还可以使用KVM_自动启动(https://github.com/eduardolucioac/kvm_autoboot) 在服务器启动时使用 KVM (libvirt) 启动一个或多个虚拟机。还可以定义虚拟机启动与下一个虚拟机启动之间的间隔。
谢谢!=D