Anthony Liguori wrote:
Charles Duffy wrote:
Howdy.
KVM's live migration support used to support an exec: protoco,
allowing either a completely arbitrary transport or a mechanism for
storing system state to a separate file for later resurrection, being
used in the latter by libvirt's qemu driver. I notice that this
support no longer exists in the current codebase.
Would a patch reimplementing this support be welcome?
Absolutely. I wasn't aware that libvirt used the exec: protocol. I'm
somewhat surprised by that. What did it use it for?
Hm, I didn't realize it used it either, but it uses it for doing a save
operation:
static int qemudDomainSave(virDomainPtr dom,
const char *path) {
...
if (asprintf (&command, "migrate \"exec:"
"dd of='%s' oflag=append conv=notrunc 2>/dev/null"
"\"", safe_path) == -1) {
qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
"%s", _("out of memory"));
VIR_FREE(safe_path);
return -1;
}
free(safe_path);
if (qemudMonitorCommand(driver, vm, command, &info) < 0) {
...
I don't know if there is a better way to do that with the qemu monitor, to avoid
using migrate altogether. In any case, I'm sure other people would find exec:
useful as well.