From: Anthony Liguori <anthony@codemonkey.ws>
To: quintela@redhat.com
Cc: Kevin Wolf <kwolf@redhat.com>,
Lucas Meneghel Rodrigues <lmr@redhat.com>,
KVM mailing list <kvm@vger.kernel.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
"libvir-list@redhat.com" <libvir-list@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
QEMU devel <qemu-devel@nongnu.org>, Avi Kivity <avi@redhat.com>
Subject: Re: [Qemu-devel] qemu and qemu.git -> Migration + disk stress introduces qcow2 corruptions
Date: Tue, 15 Nov 2011 07:56:28 -0600 [thread overview]
Message-ID: <4EC26F8C.10102@codemonkey.ws> (raw)
In-Reply-To: <874ny5iktv.fsf@trasno.mitica>
On 11/15/2011 07:20 AM, Juan Quintela wrote:
>> Again, I think defaulting DAS to cache=none|directsync is what makes
>> the most sense here.
>
> I think it is the only sane solution. Otherwise, we need to write the
> equivalent of a lock manager, to know _who_ has the storage, and
> distributed lock managers are a mess :-(
>
>> We can even add a migration blocker for DAS with cache=on. If we can
>> do dynamic toggling of the cache setting, then that's pretty friendly
>> at the end of the day.
>
> That could fix the problem also. At the moment that we start migration,
> we do an fsync() + switch to O_DIRECT for all filesystems.
>
> As you said, time for implementing fcntl(O_DIRECT).
Yeah, I think this ends up being a very elegant solution.
We always open block devices O_DIRECT to start with. That ensures reads go
directly to disk if its DAS or result in NFS protocol reads.
As long as we fsync on the source (and we do), then we're okay.
For cache=write{back,through}, we would then just fcntl() away O_DIRECT as soon
as we start the guest. Then we can start doing reads through the page cache.
Regards,
Anthony Liguori
> Later, Juan.
>
next prev parent reply other threads:[~2011-11-15 13:56 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-09 16:29 qemu and qemu.git -> Migration + disk stress introduces qcow2 corruptions Lucas Meneghel Rodrigues
2011-11-09 16:39 ` Anthony Liguori
2011-11-09 17:02 ` [Qemu-devel] " Avi Kivity
2011-11-09 17:35 ` Anthony Liguori
2011-11-09 19:53 ` Juan Quintela
2011-11-09 20:18 ` Michael S. Tsirkin
2011-11-09 20:22 ` [Qemu-devel] " Anthony Liguori
2011-11-09 21:00 ` Michael S. Tsirkin
2011-11-09 21:01 ` Anthony Liguori
2011-11-10 10:41 ` [Qemu-devel] " Kevin Wolf
2011-11-10 16:50 ` Juan Quintela
2011-11-10 17:59 ` Anthony Liguori
2011-11-10 18:00 ` [Qemu-devel] " Anthony Liguori
2011-11-09 20:57 ` Juan Quintela
2011-11-10 8:55 ` [Qemu-devel] " Avi Kivity
2011-11-10 17:50 ` Juan Quintela
2011-11-10 17:54 ` Anthony Liguori
2011-11-12 10:20 ` Avi Kivity
2011-11-12 13:30 ` Anthony Liguori
2011-11-12 14:36 ` Avi Kivity
2011-11-10 18:27 ` [Qemu-devel] " Anthony Liguori
2011-11-10 18:42 ` Daniel P. Berrange
2011-11-10 19:11 ` [Qemu-devel] " Anthony Liguori
2011-11-10 20:06 ` Daniel P. Berrange
2011-11-10 20:07 ` Anthony Liguori
2011-11-10 21:30 ` Anthony Liguori
2011-11-11 10:15 ` Kevin Wolf
2011-11-11 14:03 ` [Qemu-devel] " Anthony Liguori
2011-11-11 14:29 ` Kevin Wolf
2011-11-11 14:35 ` Anthony Liguori
2011-11-11 14:44 ` Kevin Wolf
2011-11-11 20:38 ` Anthony Liguori
2011-11-12 10:27 ` Avi Kivity
2011-11-12 13:39 ` Anthony Liguori
2011-11-12 14:43 ` Avi Kivity
2011-11-12 16:01 ` Anthony Liguori
2011-11-12 10:25 ` Avi Kivity
2011-11-14 9:58 ` Kevin Wolf
2011-11-14 10:10 ` Michael S. Tsirkin
2011-11-15 13:28 ` [Qemu-devel] " Avi Kivity
2011-11-14 10:16 ` Daniel P. Berrange
2011-11-14 10:24 ` Michael S. Tsirkin
2011-11-14 11:08 ` Daniel P. Berrange
2011-11-14 11:21 ` Kevin Wolf
2011-11-14 11:29 ` [Qemu-devel] " Daniel P. Berrange
2011-11-14 11:34 ` Michael S. Tsirkin
2011-11-14 11:37 ` Daniel P. Berrange
2011-11-14 11:51 ` Michael S. Tsirkin
2011-11-14 11:55 ` Daniel P. Berrange
2011-11-14 11:56 ` Michael S. Tsirkin
2011-11-14 11:58 ` [Qemu-devel] " Daniel P. Berrange
2011-11-14 12:17 ` Michael S. Tsirkin
2011-11-14 11:36 ` Gleb Natapov
2011-11-14 11:32 ` Michael S. Tsirkin
2011-11-14 14:19 ` Anthony Liguori
2011-11-15 13:20 ` Juan Quintela
2011-11-15 13:56 ` Anthony Liguori [this message]
2011-11-09 19:25 ` Juan Quintela
2011-11-09 23:33 ` Lucas Meneghel Rodrigues
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EC26F8C.10102@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kwolf@redhat.com \
--cc=libvir-list@redhat.com \
--cc=lmr@redhat.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).