[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 0/5] Fix migration with NFS & iscsi/Fiber channe
From: |
Juan Quintela |
Subject: |
[Qemu-devel] Re: [PATCH 0/5] Fix migration with NFS & iscsi/Fiber channel |
Date: |
Mon, 10 Jan 2011 11:15:17 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
Juan Quintela <address@hidden> wrote:
> Hi
Nack myself :-(
After discussions with hch on irc, he "convinced" me that only way to
fix the problem is forcing O_DIRECT if migration is going to happen.
So, changing patchset to check that cache=none is used in all read/write
devices.
Later, Juan.
> This patch set creates infrastructure to invalidate buffers on
> migration target machine. The best way to see the problems is:
>
> # create a new qcow2 image
> qemu-img create -f qcow2 foo.img
> # start the destination host
> qemu .... path=foo.img....
> # start the source host with one installation
> qemu .... path=foo.img....
> # migrate after lots of disk writes
>
> Destination will have "read" the beggining of the blocks of the file
> (where the headers are). There are two bugs here:
> a- we need to re-read the image after migration, to have the new values
> (reopening fixes it)
> b- we need to be sure that we read the new blocks that are on the server,
> not the buffered ones locally from the start of the run.
> NFS: flush on source and close + open on target invalidates the cache
> Block devices: on linux, BLKFLSBUF invalidates all the buffers for that
> device. This fixes iSCSI & FiberChannel.
>
> I tested iSCSI & NFS. NFS patch have been on RHEL5 kvm forever (I just
> forget to send the patch upstream). Our NFS gurus & cluster gurus told
> that this is enough for linux to ensure consistence.
>
> Once there, I fixed a couple of minor bugs (the first 3 patches):
> - migration should exit with error 1 as everything else.
> - memory leak on drive_uninit.
> - fix cleanup on error on drive_init()
>
> Later, Juan.
>
> Juan Quintela (5):
> migration: exit with error code
> blockdev: don't leak id on removal
> blockdev: release resources in the error case
> Reopen files after migration
> drive_open: Add invalidate option for block devices
>
> block.h | 2 ++
> block/raw-posix.c | 24 ++++++++++++++++++++++++
> blockdev.c | 53
> +++++++++++++++++++++++++++++++++++++++++++++--------
> blockdev.h | 6 ++++++
> migration.c | 8 +++++++-
> vl.c | 2 +-
> 6 files changed, 85 insertions(+), 10 deletions(-)
- [Qemu-devel] [PATCH 2/5] blockdev: don't leak id on removal, (continued)
- [Qemu-devel] [PATCH 2/5] blockdev: don't leak id on removal, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 3/5] blockdev: release resources in the error case, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 4/5] Reopen files after migration, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 5/5] drive_open: Add invalidate option for block devices, Juan Quintela, 2011/01/04
- [Qemu-devel] [PATCH 1/5] migration: exit with error code, Juan Quintela, 2011/01/04
- [Qemu-devel] Re: [PATCH 0/5] Fix migration with NFS & iscsi/Fiber channel,
Juan Quintela <=