Max, Thanks for the thorough explanation. I finaly found some QEMU pdf docs out there describing that -blockdev was the way of the furture.
I'll try providing a job-id for the backups. Again thanks for the reply/feedback. It's great to see how fast this stuff is progressing, even if it causes some usage gotchas from time to time. Have a good one! Mike On Tue, 2020-02-04 at 12:29 +0100, Max Reitz wrote: > On 31.01.20 05:06, Mike Lee wrote: > > Hello All, > > Hi Mike, > > Most of the changes you’re seeing are probably due to libvirt using > node > names to create block devices now. So every node in the block graph > (e.g. a file node to read a file from the normal filesystem, or a > qcow2 > node to interpret the qcow2 format) is now created explicitly by > libvirt, and every such node needs a node name. > > Before this (very recent) change, libvirt used -drive (I think), > which > either creates a guest device along with an attached full block node > tree, or just the tree without the device – but that tree still gets > a > name as whole, and that was the name shown by query-block. (The > guest > device name is shown under @qdev.) > > With libvirt now using -blockdev instead of -drive and thus creating > single block nodes, there is no such tree name anymore. That’s why > it’s > shown as empty. > > > IN CLOSING: > > 1.) I suspect the error I get when starting the backup is simply a > > bug. > > Am I correct in assuming this, since the backup actually > > starts? If > > I'm wrong what do I need to change to not get the error? > > This is also related to the libvirt change described above. You used > to > have to specify the tree name (generally called “device name” in > QAPI), > but now there is no such name. As such, you have to specify the node > name now. You did that, but you also need to specify a job-id then. > > The documentation isn’t really clear about this, but job-id will only > default to the device name, not to what @device says. There is no > device name (or “tree name”, as I’ve called it above), so it cannot > default to anything. Hence the error message, that an empty job ID > is > not permissible. > > So long story short, you need to specify something for @job-id. (And > then all further job commands/events will use that for their > respective > @device field. That will be a bit confusing, but, well, we had to > for > compatibility.) > > > 2.) Has the "device" attribute in the "query-block" command been > > deprecated and is that why that attribute's value is now > > blank? I've > > gone back through all of the QEMU release notes and see no mention > > of > > this. > > It hasn’t, but when using -blockdev instead of -drive for block > devices, > it will be empty. (And libvirt does use -blockdev now.) > > > 3.) What's with the "libvirt-X-format" node name? The "drive- > > virtio- > > diskX" seemed more logical. Is this naming change a libvirt thing > > and > > not qemu? > > That has the same reason, libvirt now uses -blockdev, so it specifies > node names. “libvirt-X-format” looks like a typical node name > (“format” > is a type of node that interprets image formats, like qcow2 or raw), > whereas “drive-virtio-diskX” seems like a name for a whole tree of > block > nodes (i.e., a device name). > > Max >
