Hi!
When I need to reboot a compute node (because of some driver lock-up or such
problems), I first stop nova-compute so that it does not report the shutoff
state of VMs to the database and resume_guests_state_on_host_boot=true does
actually start them. Then I press the power switch on the VMs using virsh
shutdown, one by one, and only after that I reboot the node. This is a script I
scrounged somewhere and modified so that it does not take too much time:
Tomas
root@cmp03:~# cat vm-shutdown
#!/bin/bash
# file: /usr/local/sbin/vm-shutdown
# Description: shutdown active virtual machines
debug=1
#fake=1
# Get list of active virtual machines
vmList="`virsh list | (
while read vmID vmName vmStatus
do
if [ -n "$vmName" -a "$vmName" != "Name" -a "$vmName" != "Domain-0" ]
then
[ -z "$vmList" ] && vmList="$vmName" || vmList="$vmList $vmName"
fi
done
echo $vmList )`"
# check there are some active VM's
if [ -n "$vmList" ]; then
# Shutdown VM's with verification
for vmName in $vmList
do
# send initial request
[ -n "$debug" ] && echo -n "Attempting to shutdown $vmName "
[ -z "$fake" ] && virsh shutdown $vmName
# wait a limited time for the VM to be not running
count=30
while $( virsh list | grep $vmName >/dev/null ) && [ $count -gt 0 ]
do
sleep 1
let count=count-1
[ -n "$debug" ] && echo -n "."
done
# report current status
( virsh list | grep $vmName >/dev/null ) && echo " failed!" || echo "down."
# if still running, destroy it
if ( virsh list | grep $vmName >/dev/null )
then
[ -n "$debug" ] && echo -n "Attempting to destroy $vmName "
[ -z "$fake" ] && virsh destroy $vmName
# wait a limited time for the VM to be not running
count=30
while $( virsh list | grep $vmName >/dev/null ) && [ $count -gt 0 ]
do
sleep 1
let count=count-1
[ -n "$debug" ] && echo -n "."
done
# report current status
( virsh list | grep $vmName >/dev/null ) && echo " failed!" || echo
"down."
fi
done
From: Tzach Shefi [mailto:[email protected]]
Sent: Thursday, November 02, 2017 9:55 AM
To: Chris
Cc: [email protected]
Subject: Re: [Openstack] Compute Node shutdown how to prevent instance suspend
Hi,
A better Q would be why do you shutdown a compute node to begin with?
I mean if you need you should do so in an orderly fashion basically excavate
instances
or shut instances down manually, put the compute node in maintenance mode.
On rebooting compute node remove it from maintenance mode, turn on instances or
migrate them back to this compute node should you need.
Od delete them if you wish.
There is this nova option:
resume_guests_state_on_host_boot=true
But it doesn't delete or shutdown instances but rather turns them on
automatically once compute host resumes.
which might also work for you, probably not just mentioning it any way.
I don't know of an option to stop/delete instance on compute node shutdown.
Another option check maybe you could shelve suspended instance and then later
delete them.
Shelving stops the instance and takes a snapshot of it. Then depending on the
value of the shelved_offload_time config option, the instance is deleted from
the hypervisor (0), never deleted (-1), or deleted after some period of time (>
0). Note that it's just destroying the backing instance on the hypervisor, the
actual instance in the nova database is not deleted. Then you can later
unshelve the instance:
This might help, but do not if you mess with kvm without updating Nova you
might be left haning else where :)
https://ask.fedoraproject.org/en/question/8796/make-libvirt-to-shutdown-my-guests-not-suspend/
On Thu, Nov 2, 2017 at 9:03 AM, Chris <[email protected]> wrote:
Hello,
When we shut down a compute node the instances running on it get suspended.
This generates some difficulties with some applications like RabbitMQ dont like
to be suspended. Is there a way to change this behavior so that the running
instances gets killed or shutdown instead?
Thanks in advance.
Cheers,
Chris
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : [email protected]
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
--
Tzach Shefi
Senior Quality Engineer, RHCSA
<https://www.redhat.com> Red Hat
<mailto:[email protected]> [email protected] M: <tel:+972-54-4701080>
+972-54-4701080 IM: tshefi
<https://red.ht/sig> Obrázek byl odebrán odesílatelem.
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : [email protected]
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack