Introduce TCP live migration protocol

This patch introduces a tcp protocol for live migration.  It can be used as
follows:

qemu-system-x86_64 -hda ~/images/linux-test.img -monitor stdio
 <vm runs for a while>
(qemu) migrate tcp:localhost:1025

On the same system:

qemu-system-x86_64 -hda ~/images/linux-test.img -incoming 
tcp:localhost:1025

The monitor can be interacted with while waiting for an incoming live 
migration.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5478 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
aliguori 2008-10-13 03:14:31 +00:00
parent 210f41ba93
commit 34c9dd8eea
4 changed files with 400 additions and 3 deletions

View file

@ -22,12 +22,32 @@ static MigrationState *current_migration;
void qemu_start_incoming_migration(const char *uri)
{
fprintf(stderr, "unknown migration protocol: %s\n", uri);
const char *p;
if (strstart(uri, "tcp:", &p))
tcp_start_incoming_migration(p);
else
fprintf(stderr, "unknown migration protocol: %s\n", uri);
}
void do_migrate(int detach, const char *uri)
{
term_printf("unknown migration protocol: %s\n", uri);
MigrationState *s = NULL;
const char *p;
if (strstart(uri, "tcp:", &p))
s = tcp_start_outgoing_migration(p, max_throttle, detach);
else
term_printf("unknown migration protocol: %s\n", uri);
if (s == NULL)
term_printf("migration failed\n");
else {
if (current_migration)
current_migration->release(current_migration);
current_migration = s;
}
}
void do_migrate_cancel(void)