From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MxNCy-00035w-Hg for qemu-devel@nongnu.org; Mon, 12 Oct 2009 11:53:12 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MxNCt-00033I-Uw for qemu-devel@nongnu.org; Mon, 12 Oct 2009 11:53:12 -0400 Received: from [199.232.76.173] (port=36213 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MxNCt-00033B-BY for qemu-devel@nongnu.org; Mon, 12 Oct 2009 11:53:07 -0400 Received: from mtagate6.uk.ibm.com ([195.212.29.139]:33086) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MxNCr-0004KJ-OV for qemu-devel@nongnu.org; Mon, 12 Oct 2009 11:53:07 -0400 Received: from d06nrmr1806.portsmouth.uk.ibm.com (d06nrmr1806.portsmouth.uk.ibm.com [9.149.39.193]) by mtagate6.uk.ibm.com (8.14.3/8.13.8) with ESMTP id n9CFqlDG099732 for ; Mon, 12 Oct 2009 15:52:52 GMT Received: from d06av03.portsmouth.uk.ibm.com (d06av03.portsmouth.uk.ibm.com [9.149.37.213]) by d06nrmr1806.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id n9CFqaQ13342490 for ; Mon, 12 Oct 2009 16:52:36 +0100 Received: from d06av03.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av03.portsmouth.uk.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n9CFqavH017112 for ; Mon, 12 Oct 2009 16:52:36 +0100 From: lirans@il.ibm.com Date: Mon, 12 Oct 2009 18:24:45 +0200 Message-Id: <12553646851472-git-send-email-lirans@il.ibm.com> Subject: [Qemu-devel] [PATCH 0/3 v4] Live migration without shared storage List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Liran Schour This series adds support for live migration without shared storage, means copy the storage while migrating. It was tested with KVM. Supports 2 ways to replicate the storage during migration: 1. Complete copy of storage to destination 2. Assuming the storage is cow based, copy only the allocated data, time of the migration will be linear with the amount of allocated data (user responsibility to verify that the same backend file reside on src and destination). The code is being used by the Reservoir project: http://www.reservoir-fp7.eu/ Live migration will work as follows: (qemu) migrate -d tcp:0:4444 # for ordinary live migration (qemu) migrate -d blk tcp:0:4444 # for live migration with complete storage copy (qemu) migrate -d blk inc tcp:0:4444 # for live migration with incremental storage copy, storage is cow based. These patches addresses all previous comments. Signed-off-by: Liran Schour --- Makefile | 1 + block-migration.c | 624 +++++++++++++++++++++++++++++++++++++++++++++++++++++ block-migration.h | 30 +++ block.c | 27 +++ block.h | 6 +- block_int.h | 1 + buffered_file.c | 10 +- hw/hw.h | 9 +- migration-exec.c | 9 +- migration-fd.c | 7 +- migration-tcp.c | 7 +- migration-unix.c | 7 +- migration.c | 21 ++- migration.h | 20 ++- monitor.c | 38 +++- qemu-monitor.hx | 13 +- savevm.c | 62 ++++-- sysemu.h | 2 +- vl.c | 6 +- 19 files changed, 851 insertions(+), 49 deletions(-)