From: Avi Kivity <avi@redhat.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3] Stop VM on ENOSPC error.
Date: Mon, 19 Jan 2009 20:38:14 +0200 [thread overview]
Message-ID: <4974C896.7030100@redhat.com> (raw)
In-Reply-To: <18804.46780.936806.748045@mariner.uk.xensource.com>
Ian Jackson wrote:
> Anthony Liguori writes ("Re: [Qemu-devel] [PATCH v3] Stop VM on ENOSPC error."):
>
>> Ian Jackson wrote:
>>
>>> Once again, this feature should be optional.
>>>
>> Why?
>>
>
> Well, three reasons, one general and theoretical, and two practical
> and rather Xen-specific.
>
This has been tried before, but...
> The theoretical reason is that a guest is in a better postion to deal
> with the situation because it knows its access patterns. Often the
> response to a failing write in a mission-critical system will be some
> kind a fallback behaviour, which is likely to work.
A situation where many writes fail and many writes succeed is unlikely
to have been tested and is therefore unlikely to work. Particularly as
some time afterwards all writes start to succeed again as if nothing has
happened.
A single disk guest will thrash its disk, eventually remounting it
read-only (in the case of Linux) and then failing left and right.
A multiple disk guest in a RAID 5 configuration will enter degraded
mode, and then corrupt data. RAID 5 wasn't designed for multiple disk
failures. By induction RAID 6 fails as well.
> Stopping the VM
> unconditionally is not something that the guest can cope with.
>
The guest doesn't need to cope with it; the management system does.
> The practical reasons are that we would want to retain existing
> behaviour unless it was clearly broken (which we don't think it is),
> and that we don't currently have any useful mechanism for reporting
> and dealing with the problem.
>
> Fundamentally I think we're seeing this different because of the way
> that Xen uses qemu is contextually quite different to the
> `traditional' qemu. Traditionally qemu is used as a subprogram of
> other tasks, as an interactive debugging or GUI tool, or whatever.
>
> But in the Xen context, a Xen VM is not a `task' in the same way.
> (Xen users make much less use of the built-in cow formats for this
> reason, often preferring LVM snapshots or even deeper storage magic.)
> We expect the VM to be up and stay up and if it can't continue it
> needs to fail or crash
You can resume the guest over the monitor (or xenstore if you insist)
once more storage is allocated, same as everyone else. I don't see how
qemu's role in Xen makes a difference.
The only alternative I see to stopping the VM is to offline the disk for
both reads and writes. This at least protects data, and is similar to
controller or cable failure which guests may have been tested with. An
advantage is that if an unimportant disk fails, the guest can continue
to work.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2009-01-19 18:38 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-18 11:05 [Qemu-devel] [PATCH v3] Stop VM on ENOSPC error Gleb Natapov
2009-01-19 11:56 ` Ian Jackson
2009-01-19 12:16 ` Gleb Natapov
2009-01-19 16:15 ` Anthony Liguori
2009-01-19 17:22 ` Ian Jackson
2009-01-19 18:38 ` Avi Kivity [this message]
2009-01-19 18:41 ` Gleb Natapov
2009-01-20 9:25 ` Gerd Hoffmann
2009-01-20 9:35 ` Gleb Natapov
2009-01-20 10:44 ` Carl-Daniel Hailfinger
2009-01-20 11:05 ` Gleb Natapov
2009-01-20 11:35 ` Vincent Hanquez
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=4974C896.7030100@redhat.com \
--to=avi@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).