[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: query-block command is missing device name. Deprecated?
From: |
Mike Lee |
Subject: |
Re: query-block command is missing device name. Deprecated? |
Date: |
Wed, 05 Feb 2020 21:34:15 -0700 |
User-agent: |
Evolution 3.34.3 |
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
>