svn commit: r360648 - in head: lib/libvmmapi share/man/man5 share/mk sys/amd64/include sys/amd64/vmm sys/amd64/vmm/amd sys/amd64/vmm/intel sys/amd64/vmm/io sys/conf sys/modules/vmm tools/build/opti...

Cy Schubert Cy.Schubert at cschubert.com
Tue May 5 15:44:36 UTC 2020


In message <202005050002.04502576094544 at repo.freebsd.org>, John Baldwin 
writes:
> Author: jhb
> Date: Tue May  5 00:02:04 2020
> New Revision: 360648
> URL: https://svnweb.freebsd.org/changeset/base/360648
>
> Log:
>   Initial support for bhyve save and restore.
>   
>   Save and restore (also known as suspend and resume) permits a snapshot
>   to be taken of a guest's state that can later be resumed.  In the
>   current implementation, bhyve(8) creates a UNIX domain socket that is
>   used by bhyvectl(8) to send a request to save a snapshot (and
>   optionally exit after the snapshot has been taken).  A snapshot
>   currently consists of two files: the first holds a copy of guest RAM,
>   and the second file holds other guest state such as vCPU register
>   values and device model state.
>   
>   To resume a guest, bhyve(8) must be started with a matching pair of
>   command line arguments to instantiate the same set of device models as
>   well as a pointer to the saved snapshot.
>   
>   While the current implementation is useful for several uses cases, it
>   has a few limitations.  The file format for saving the guest state is
>   tied to the ABI of internal bhyve structures and is not
>   self-describing (in that it does not communicate the set of device
>   models present in the system).  In addition, the state saved for some
>   device models closely matches the internal data structures which might
>   prove a challenge for compatibility of snapshot files across a range
>   of bhyve versions.  The file format also does not currently support
>   versioning of individual chunks of state.  As a result, the current
>   file format is not a fixed binary format and future revisions to save
>   and restore will break binary compatiblity of snapshot files.  The
>   goal is to move to a more flexible format that adds versioning,
>   etc. and at that point to commit to providing a reasonable level of
>   compatibility.  As a result, the current implementation is not enabled
>   by default.  It can be enabled via the WITH_BHYVE_SNAPSHOT=yes option
>   for userland builds, and the kernel option BHYVE_SHAPSHOT.
>   
>   Submitted by:	Mihai Tiganus, Flavius Anton, Darius Mihai
>   Submitted by:	Elena Mihailescu, Mihai Carabas, Sergiu Weisz
>   Relnotes:	yes
>   Sponsored by:	University Politehnica of Bucharest
>   Sponsored by:	Matthew Grooms (student scholarships)
>   Sponsored by:	iXsystems
>   Differential Revision:	https://reviews.freebsd.org/D19495

Could also be the basis of a vmotion-like function. And possibly a 
hot-failover facility like VMware has.

Vmotion and hot-failover require shared disk but we could use ZFS snapshots 
instead.


-- 
Cheers,
Cy Schubert <Cy.Schubert at cschubert.com>
FreeBSD UNIX:  <cy at FreeBSD.org>   Web:  https://FreeBSD.org
NTP:           <cy at nwtime.org>    Web:  https://nwtime.org

	The need of the many outweighs the greed of the few.




More information about the svn-src-all mailing list