qemu-devel
[Top][All Lists]
Advanced

[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
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]