Am 07.08.2013 um 05:00 hat Wenchao Xia geschrieben: > This series brings internal snapshot support at block devices level, now we > have two three methods to do block snapshot lively: 1) backing chain, > 2) internal one and 3) drive-back up approach. > > Comparation: > Advantages: Disadvantages: > 1) delta data, taken fast, export, size performance, delete slow. > 2) taken fast, delete fast, performance, size delta data, format > 3) performance, export, format taken slow, delta data, size, host > I/O > > I think in most case, saving vmstate in an standalone file is better than > saving it inside qcow2, So suggest treat internal snapshot as block level > methods and not encourage user to savevm in qcow2 any more. > > Implemention details: > To avoid trouble, this serial have hide ID in create interfaces, this make > sure no chaos of ID and name will be introduced by these interfaces. > There is one patch may be common to Pavel's savvm transaction, patch 1/11, > others are not quite related. Patch 1/11 will not set errp when no snapshot > find, since patch 3/11 need to distinguish real error case. > > Next steps to better full VM snapshot: > Improve internal snapshot's export capability. > Better vmstate saving. > > Thanks Kevin to give advisement about how add it in qmp_transaction, oldest > version comes drom Dietmar Maurer.
This series needs to be rebased. The last patch (qemu-iotests) doesn't apply any more because other tests were added in the meantime, and when applying only the code changes, it fails to compile: blockdev.c: In function 'internal_snapshot_prepare': blockdev.c:1040:5: error: implicit declaration of function 'qemu_get_clock_ns' [-Werror=implicit-function-declaration] blockdev.c:1040:5: error: nested extern declaration of 'qemu_get_clock_ns' [-Werror=nested-externs] blockdev.c:1040:43: error: 'vm_clock' undeclared (first use in this function) blockdev.c:1040:43: note: each undeclared identifier is reported only once for each function it appears in Kevin