Re: [libvirt] [PATCHv2 10/15] blockjob: support pivot operation on cancel
Il 06/04/2012 06:36, Eric Blake ha scritto: If only qemu could get 'drive-reopen' inside 'transaction'... Just a quick answer to this: if qemu could get 'drive-reopen' inside 'transaction', the standalone command could be made safe just as easily. In fact, in QEMU 1.1 the blockdev-snapshot-sync command got a similar treatment: it became transactionable, _and_ the standalone command became a simple wrapper around a 1-command transaction. Paolo -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCHv2 10/15] blockjob: support pivot operation on cancel
On 04/06/2012 01:08 AM, Paolo Bonzini wrote: Il 06/04/2012 06:36, Eric Blake ha scritto: If only qemu could get 'drive-reopen' inside 'transaction'... Just a quick answer to this: if qemu could get 'drive-reopen' inside 'transaction', the standalone command could be made safe just as easily. In fact, in QEMU 1.1 the blockdev-snapshot-sync command got a similar treatment: it became transactionable, _and_ the standalone command became a simple wrapper around a 1-command transaction. Good point. So unless we have a situation where we want to do 'drive-reopen' on multiple disks at once, we don't actually have to use a transaction command to reopen a single disk. Meanwhile, for similarity with blockdev-snapshot-sync, it looks like I will someday be adding a VIR_DOMAIN_BLOCK_JOB_ABORT_ATOMIC flag, which fails if qemu lacks support for reopen within a transaction, and assuming that qemu exposes a way to see which commands are transactionable. -- Eric Blake ebl...@redhat.com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCHv2 10/15] blockjob: support pivot operation on cancel
Il 06/04/2012 06:36, Eric Blake ha scritto: if 'block_job_cancel' were made part of 'transaction', you could copy multiple disks at the same point in time without pausing the domain. This is doable. The transactioned command would do a qemu_aio_flush() in the prepare phase, and a normal block_job_cancel in the commit phase. This also implies we may want to add a --quiesce flag to the pivot operation, so that when breaking a mirror, the side of the mirror that we are abandoning is at least in a stable state with regards to guest I/O. I don't think this is needed. Either it makes a difference so it should be the default, or it doesn't and then it is not a useful knob. Paolo -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCHv2 10/15] blockjob: support pivot operation on cancel
On 04/06/2012 09:19 AM, Paolo Bonzini wrote: Il 06/04/2012 06:36, Eric Blake ha scritto: if 'block_job_cancel' were made part of 'transaction', you could copy multiple disks at the same point in time without pausing the domain. This is doable. The transactioned command would do a qemu_aio_flush() in the prepare phase, and a normal block_job_cancel in the commit phase. This also implies we may want to add a --quiesce flag to the pivot operation, so that when breaking a mirror, the side of the mirror that we are abandoning is at least in a stable state with regards to guest I/O. I don't think this is needed. Either it makes a difference so it should be the default, or it doesn't and then it is not a useful knob. I'm talking about the guest agent. It may make a difference, but cannot be the default, because you cannot trust the guest agent to be present. I'm thinking this will be like the --quiesce operation of snapshot-create, as another situation where the guest agent quiesce can usefully surround a 'transaction' command to improve the results, but must not be default. -- Eric Blake ebl...@redhat.com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCHv2 10/15] blockjob: support pivot operation on cancel
Il 06/04/2012 17:28, Eric Blake ha scritto: I'm talking about the guest agent. It may make a difference, but cannot be the default, because you cannot trust the guest agent to be present. I'm thinking this will be like the --quiesce operation of snapshot-create, as another situation where the guest agent quiesce can usefully surround a 'transaction' command to improve the results, but must not be default. Ah, got it now. Paolo -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list