Bug 836123

Summary: RFE: seamless migration
Product: Red Hat Enterprise Linux 6 Reporter: Yonit Halperin <yhalperi>
Component: spice-serverAssignee: Yonit Halperin <yhalperi>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.4CC: acathrow, areis, cfergeau, dblechte, dyasny, hdegoede, juzhang, mazhang, mbarta, mkenneth, mkrcmari, qzhang, shu, uril
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: spice-server-0.12.0-1.el6 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
: 846910 846911 (view as bug list) Environment:
Last Closed: 2013-02-21 10:03:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 836133, 836135, 846910    
Bug Blocks: 894020    

Description Yonit Halperin 2012-06-28 07:24:10 UTC
Description of problem:
The current spice migration pathway is almost equivalent to automatically connecting the client to the migration target, and starting the session from scratch.
This pathway might result in unrecoverable data loss; Mainly usb/smartcard/copy-paste data that was on its way from the client to the guest and vice versa, when the non-live phase of the migration started.
Other data that can be lost is rendering commands. While this data loss can be recovered by sending the primary surface and other surfaces to the client after the client is connected to the target, it will be more efficient just not to lose this data, at least for a large part of the scenarios.

In order to support seamless migration, we need to be able to store the state of the src server, when the vm migration completes, and pass it to the target server. Passing this data will be done via client (i.e., src->client->target).

Migrating the spice server state requires changes in qemu and libvirt:
libvirt mustn't close the src qemu, till spice completes migrating the server state.
We will add a QMP event to qemu, for signaling spice migration completion.
libvirt will need to wait for this qmp event before closing the src qemu.

In order for spice to identify if the libvirt release supports this QMP event, we will add to spice's qemu arguments "seamless-migration=on". If this argument is not set, spice will fallback to the old migration pathway.

Comment 2 Hans de Goede 2012-09-20 13:09:38 UTC
*** Bug 842333 has been marked as a duplicate of this bug. ***

Comment 6 errata-xmlrpc 2013-02-21 10:03:09 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.