From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MxM5M-0002y0-1D for qemu-devel@nongnu.org; Mon, 12 Oct 2009 10:41:16 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MxM5H-0002rQ-4X for qemu-devel@nongnu.org; Mon, 12 Oct 2009 10:41:15 -0400 Received: from [199.232.76.173] (port=48694 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MxM5G-0002rF-Sf for qemu-devel@nongnu.org; Mon, 12 Oct 2009 10:41:10 -0400 Received: from mtagate2.de.ibm.com ([195.212.17.162]:47448) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MxM5G-0000hy-8L for qemu-devel@nongnu.org; Mon, 12 Oct 2009 10:41:10 -0400 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate2.de.ibm.com (8.13.1/8.13.1) with ESMTP id n9CEf9l7011197 for ; Mon, 12 Oct 2009 14:41:09 GMT Received: from d12av03.megacenter.de.ibm.com (d12av03.megacenter.de.ibm.com [9.149.165.213]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id n9CEf8TB3383322 for ; Mon, 12 Oct 2009 16:41:08 +0200 Received: from d12av03.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av03.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n9CEf8it028871 for ; Mon, 12 Oct 2009 16:41:08 +0200 From: lirans@il.ibm.com Date: Mon, 12 Oct 2009 17:13:16 +0200 Message-Id: <12553603961709-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(-)