于 2013-6-18 22:20, Stefan Hajnoczi 写道:
On Mon, Jun 17, 2013 at 11:25:26AM +0800, Wenchao Xia wrote:
于 2013-6-15 17:55, Eric Blake 写道:
Should this command be made available via 'transaction'? That is, if I
have a two-disk VM, and use 'transaction' to take a snapshot of both
disks at once, shouldn't I also have a way to delete the snapshots of
both at once, or gracefully fail without data loss if the second one has
problems?
I think adding it in transaction is not very useful but brings more
complexity. Transcation is used to guareentee all operations are taken
in one time point, for example, snapshot creation use it to make sure
all are consistent to VM. But for deletion, this requirement do not
exist.
I guess the problem is: can we make internal snapshot deletion
transactional? It's hard to do rollback for snapshot deletion.
Several deletion in transaction equals to several calls of
'blockdev-snapshot-delete-internal-sync', unlike creation, so I hope
not add it which have rollback issue.
But batching is definitely useful for doing 'delvm' in QMP. I just
don't think transactions help. We just need a 'delvm' equivalent in
QMP.
Maybe the caller can encapsulate a batch interface at its level.