[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 33/47] mirror: add support for on-source-error/o
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 33/47] mirror: add support for on-source-error/on-target-error |
Date: |
Mon, 30 Jul 2012 15:29:29 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1 |
Il 27/07/2012 17:26, Eric Blake ha scritto:
> On 07/24/2012 05:04 AM, Paolo Bonzini wrote:
>> Error management is important for mirroring; otherwise, an error on the
>> target (even something as "innocent" as ENOSPC) requires to start again
>> with a full copy. Similar to on_read_error/on_write_error, two separate
>> knobs are provided for on_source_error (reads) and on_target_error (writes).
>> The default is 'report' for both.
>>
>> The 'ignore' policy will leave the sector dirty, so that it will be
>> retried later. Thus, it will not cause corruption.
>
> How frequently will the dirty sector be retried when the policy is
> 'ignore'? Are we going to be causing a denial-of-service by repeatedly
> retrying the sector until the user does something about the error event?
A lot. It is definitely the "I know what I'm doing" kind of option.
The usecase I had in mind was a network backend that had some kind of
timeout-and-reconnect option, so that you know all failing operations
will take at least a few seconds.
Paolo
>> +++ b/qapi-schema.json
>> @@ -1389,17 +1389,27 @@
>> # (all the disk, only the sectors allocated in the topmost image, or
>> # only new I/O).
>> #
>> +# @on-source-error: #optional the action to take on an error on the source,
>> +# default 'report'. 'stop' and 'enospc' can only be used
>> +# if the block device supports io-status (see BlockInfo).
>> +#
>> +# @on-target-error: #optional the action to take on an error on the target,
>> +# default 'report' (no limitations, since this applies to
>> +# a different block device than @device).
>> +#
>> # Returns: nothing on success
>> # If @device is not a valid block device, DeviceNotFound
>> # If @target can't be opened, OpenFileFailed
>> # If @format is invalid, InvalidBlockFormat
>> +# If @on_source_error is not supported, InvalidParameter
>
> s/_/-/g
>
- [Qemu-devel] [PATCH 20/47] block: add bdrv_query_stats, (continued)
- [Qemu-devel] [PATCH 20/47] block: add bdrv_query_stats, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 26/47] block: introduce BLOCK_JOB_READY event, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 27/47] block: introduce mirror job, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 29/47] mirror: support querying target file, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 31/47] qemu-iotests: add mirroring test case, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 33/47] mirror: add support for on-source-error/on-target-error, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 32/47] block: forward bdrv_iostatus_reset to block job, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 34/47] qmp: add pull_event function, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 37/47] add hierarchical bitmap data type and test cases, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 39/47] block: make round_to_clusters public, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 40/47] mirror: perform COW if the cluster size is bigger than the granularity, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 46/47] mirror: support more than one in-flight AIO operation, Paolo Bonzini, 2012/07/24
- [Qemu-devel] [PATCH 47/47] mirror: support arbitrarily-sized iterations, Paolo Bonzini, 2012/07/24