Virtual machine save and restore - currently only supports virtual machine suspend and resume due to a lack of support for disk device snapshots. The implementation is available on
[[ https://github.com/FreeBSD-UPB/freebsd| GitHub ]].
The feature is functional for Intel processors, for certain devices. The test matrix is available on [[ https://github.com/FreeBSD-UPB/freebsd/wiki/Suspend-Resume-test-matrix | the project's wiki ]].
The project has not been tested on AMD processors, but Linux guests seem to freeze at least in some cases (e.g., the virtual machine is restored after the host is rebooted), so support is limited.
An overview of the snapshot mechanism is at: https://docs.google.com/document/d/1xxMM2T51giU0t8yTFWmhsBLprJ3hMvtxpUU8rkSkM40
An per-field analysis of the implementation is at: https://docs.google.com/spreadsheets/d/13wDSSeCs-vgtGAnKVGJtTNbAaom36w9BfnC_7hEaZ98
Known issues:
- only one device of a type should be used
- FreeBSD and Linux guests may be frozen for a few seconds or report disk errors with AHCI block devices (data does not seem to be lost)
- e1000 on Linux will sometimes not work after a restore