Posted as an RFC because there are still two open bugs to be solved.
I've tested that with this installed, I was able to do 'virsh save
domain file' without compression to a local file using qemu fd:
migration.
1. I'm working on making virFileOperation use SCM_RIGHTS so that we
can pass an arbitrary fd from the child back to the parent. This is
necessary for supporting root-squash NFS domain save via fd, since a
child cannot consistently modify the appropriate locks necessary to
issue a monitor command (the current virFileOperation implementation
guarantees that the hook will execute on the right fd, but does not
guarantee whether the operation is in the parent or a child, and thus
the operation is not permitted to modify any state in the parent other
than by its return value). The current state of the patch just falls
back to exec: migration if the parent process can't reopen the fd.
2. I also need to test for qemu capabilities, as qemu 0.11.0 does
_not_ support fd: migration, so the old exec: migration path must
remain. But checking for capabilities is a bear in itself, since we
should be caching qemu capabilities when a domain is started, and not
calling 'qemu -help' for every subsequent command that needs to know.
Eric Blake (3):
qemu: use lighter-weight fd:n on incoming tunneled migration
qemu: support migration to fd
qemu: allow simple domain save to use fd: protocol
src/qemu/qemu_driver.c | 16 ++++++++++++--
src/qemu/qemu_migration.c | 44 +++++++++++------------------------------
src/qemu/qemu_monitor.c | 22 +++++++++++++++++++++
src/qemu/qemu_monitor.h | 4 +++
src/qemu/qemu_monitor_json.c | 21 +++++++++++++++++++-
src/qemu/qemu_monitor_json.h | 6 ++++-
src/qemu/qemu_monitor_text.c | 24 +++++++++++++++++++++-
src/qemu/qemu_monitor_text.h | 6 ++++-
8 files changed, 103 insertions(+), 40 deletions(-)
--
1.7.4