[libvirt] [PATCH] qemu: Do not unlink managedsave image if restoring fails.

Osier Yang jyang at redhat.com
Wed Apr 6 00:50:36 UTC 2011


于 2011年04月05日 22:55, Eric Blake 写道:
> On 04/05/2011 07:20 AM, Jiri Denemark wrote:
>> On Tue, Apr 05, 2011 at 14:47:22 +0800, Osier Yang wrote:
>>> Both "qemuDomainStartWithFlags" and "qemuAutostartDomain" try to
>>> restore the domain from managedsave'ed image if it exists (by
>>> invoking "qemuDomainObjRestore"), but it unlinks the image even
>>> if restoring fails, which causes data loss.
>>>
>>> However, I'm not sure if it's the very correct way to fix it,
>>> if restoring fails, and we didn't remove the image, it will
>>> trys to restore from the image again next time, if that's
>>> not the user expected (e.g. the user made quite many changes
>>> on the guest), then it's a new problem.
>>
>> I think this patch is risky. You should either remove the state on error
>> (which is the current state) or fail domain start if managed state is present
>> but resuming from it fails. If you do something in the middle (your patch) you
>> will certainly end up corrupting domain's disks.
>
> What's more, I think we should consider removing the saved-state file on
> success for 'virsh restore file' - once a state has been restored, the
> guest is running and has likely modified its disks, which means that the
> saved (memory) state is no longer consistent with the new disk state,
> and a second restore of the saved file is asking for a different type of
> data corruption.

Hmm, I didn't think of this (data corruption), v3 comes.

>
> That is, I think:
>
> virsh save dom file
> virsh restore file
>
> should leave file intact if and only if the restore failed, and:
>
> virsh managedsave dom
> virsh start
>
> should either fail but leave the (hidden) state file intact, or succeed
> and remove the state file.  We have virsh managedsave-remove to properly
> delete the state file if the user determines that they want a fresh
> start rather than retrying the (hidden) state file.
>




More information about the libvir-list mailing list