For CentOS this can be fixed by disabling service libvirt-guests. A host that brings up VMs without cloudstack knowing is a rogue node, even if the storage isn't shared. Disabling this service (probably at package install, in a post script or something) will ensure that the vms don't start up if cloudstack isn't connected. When the agent finally does connect, the VMs will be undefined and then cloudstack can start them.
The good news is that the problem can be fixed by an admin, without doing anything to the code, simply by disabling that service. We'll need to look at ubuntu and see what they have that is similar. Actually, a better way might be to make sure that the vms aren't set to autostart when they're created. I don't immediately see a way to do that via the libvirt xml, it's usually done by creating a link to the vm's xml in /etc/libvirt/qemu/autostart. On Thu, Feb 7, 2013 at 2:07 AM, Rohit Yadav (JIRA) <j...@apache.org> wrote: > > [ > https://issues.apache.org/jira/browse/CLOUDSTACK-600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13573323#comment-13573323 > ] > > Rohit Yadav commented on CLOUDSTACK-600: > ---------------------------------------- > > So, to fix this issue we'll need a daemon that persists data, local storage > (of vms) running on the host, or is there a way to fix it withing libvirt, or > possibly fixing in upstream? > >> When rebooting KVM local storage VM host, libvirt definitions deleted >> --------------------------------------------------------------------- >> >> Key: CLOUDSTACK-600 >> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-600 >> Project: CloudStack >> Issue Type: Bug >> Security Level: Public(Anyone can view this level - this is the >> default.) >> Components: KVM >> Affects Versions: pre-4.0.0 >> Reporter: Andrew Bayer >> >> This is definitely the case in 3.0.3, and I don't think the relevant code >> has been touched since. >> When you reboot a VM host running KVM local storage VMs, the VMs are deleted >> from libvirt. I presume this is due to CloudStack thinking it's migrating >> them away from the host, but obviously, given that we're on local storage, >> it's unable to do that. The result is that the VMs are not able to be >> restarted when the host comes back online. > > -- > This message is automatically generated by JIRA. > If you think it was sent incorrectly, please contact your JIRA administrators > For more information on JIRA, see: http://www.atlassian.com/software/jira