[Slackbuilds-users] Libvirt package - small change to /etc/rc.d/rc.libvirt

Robby Workman rworkman at slackbuilds.org
Fri May 5 14:50:08 UTC 2017


On Thu, 4 May 2017 12:55:03 +0100
Sebastian Arcus <s.arcus at open-t.co.uk> wrote:

> I have a small change to suggest for the /etc/rc.d/rc.libvirt script. 
> The script at the moment does a 'virsh shutdown <vm-name>' on all 
> running guests, and then, after waiting only 40 seconds, it destroys
> all guests which are still running. I think in most circumstances
> this is very likely to lead to corrupted guests because:
> 
> 1. Many guests will take longer than 40 seconds to shutdown,
> specially if they are Windows guests.
> 2. Some Windows guests might be trying to install updates on
> shutdown, which can take 10, 20 or even 60 minutes.
> 3. If there are a number of guests running and the host is busy
> trying to shut them all down at the same time, even Linux guests will
> still be in the process of shutting down after 40 seconds.
> 4. If it is a setup where users connect to guests remotely, it is 
> possible that people are in the middle of doing work which would be
> lost.
> 
> Would it maybe be safer to do a 'virsh managedsave <vm-name>' on
> every running guest instead? I can see many advantages to this
> option, including:
> 
> 1. It is much less likely for users who might use the guests remotely
> to loose work, as the machine state is suspended.
> 
> 2. Guests stopped with 'managedsave' will start fine with the 'start' 
> command - so no need to change any settings anywhere else, and the 
> 'autostart' feature of libvirt will continue to work fine.
> 
> 2. On my server, the 'managedsave' operation takes around 20 seconds
> per guest, and it is more predictable in duration than a 'shutdown',
> which depends on the OS in the guest, if it is installing updates etc.
> 
> 4. The 'managedsave' command doesn't return immediately, so we can
> wait for each guest in turn and know when it is done. Or ampersand
> could be used on the command, and then just do a looped check on
> 'virsh list' lower down, waiting for the 'managedsave' on all guests
> to finish.
> 
> 5. If my understanding is correct, the 'shutdown' command depends on
> the guest implementing correctly and acting on ACPI commands, while a 
> 'managedsave' seems to be under the complete control of libvirt -
> which means the script would work correctly out of the box with a
> much wider variety of OS's and configurations on the guest side.
> 
> If necessary, I suppose the script could also implement a 
> 'reboot_guests' separate command, for people to use it to reboot all 
> running guests - as the "stop" command wouldn't be performing a full 
> shutdown any more.
> 
> Just a suggestion in case it helps. I'm already very happy with the 
> current script, as I used to have to write my own to shutdown
> kvm/qemu guests :-)


This seems like a reasonable change. Can you push it to a git
repo/branch somewhere and send me a link, or else send me a
patch(set) to merge?

-RW
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.slackbuilds.org/pipermail/slackbuilds-users/attachments/20170505/21902ecd/attachment.asc>


More information about the SlackBuilds-users mailing list