Date: Tue, 19 Aug 2014 12:04:03 -0700 From: Craig Rodrigues <rodrigc@FreeBSD.org> To: Allan Jude <allanjude@freebsd.org> Cc: "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org> Subject: Re: libvirt and rebooting of a bhyve VM Message-ID: <CAG=rPVdBDC48Ug34Qc-%2BBXY_W4q-=1mAQz5vq9nqPXCR4bfcHw@mail.gmail.com> In-Reply-To: <53F37A6F.90405@freebsd.org> References: <CAG=rPVcGFSnMcMdrNtWjUtHUc0RLXps-t9WwzokNtyHQwWDfFQ@mail.gmail.com> <20140819154035.GA62903@kloomba> <EBFA02E4-AF67-4988-BF3F-5DB9F7D4BC76@jnielsen.net> <53F37A6F.90405@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 19, 2014 at 9:25 AM, Allan Jude <allanjude@freebsd.org> wrote:
>
> Yes, this revision adds the ability to 'reboot'. This does not exit
> bhyve at all, so there is no exit level
>
> You can 'reboot' a bhyve externally using:
> bhyvectl --force-reset --vm=xxx
>
> or force a poweroff with: bhyvectl --force-reset --vm=xxx
>
> SIGTERM simulates an ACPI shutdown
>
>
> the bhyvectl --destroy is to clean up, the instance remains even after a
> clean shutdown. In the past, it had to be destroyed and recreated to
> start the VM again, although now with reboot support, that may not be
> required.
Thanks for that information. It's very useful.
There doesn't seem to be a bhyvectl man page. Do you have the
bandwidth to write one up and check it into the tree?
That would be very helpful.
I ran some experiments with bhyvectl --force-reset and
--force-poweroff. They work as expected.
There doesn't seem to be a bhyvectl command which simulates ACPI shutdown.
If I have the name of the bhyve VM, is there a way that I can obtain
the pid of the bhyve process which started
the VM, so I can send it a SIGTERM, or do I need to keep track of that
myself when starting the bhyve process?
>
>
> the bhyvectl --destroy is to clean up, the instance remains even after a
> clean shutdown. In the past, it had to be destroyed and recreated to
> start the VM again, although now with reboot support, that may not be
> required.
You are right, calling bhyvectl --destroy does not seem to be required.
I ran some experiments:
DOESN'T WORK
==============
bhyvectl --destroy ......
bhyveload .....
while true; do
byve ......
if [ $? -ne 0 ]; then
break
fi
done
if I do a shutdown -r inside the VM, then when the VM reboots, I get:
Assertion failed: (error == 0), function fbsdrun_addcpu, file
/usr/src/usr.sbin/bhyve/bhyverun.c, line 266.
WORKING
========
bhyvectl --destroy ......
while true; do
bhyveload .....
byve ......
if [ $? -ne 0 ]; then
break
fi
done
This combination seems to work fine. I can do "shutdown -r" inside
the VM, and it reboots fine.
I can also do "shutdown -p", and the VM shuts down.
So I think vmrun.sh can be changed to accomodate this new behavior,
and make it more clear
to people writing scripts on top of bhyve.
--
Craig
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG=rPVdBDC48Ug34Qc-%2BBXY_W4q-=1mAQz5vq9nqPXCR4bfcHw>
