[libvirt] [PATCH v1 29/31] qemu: Generate command line of NVMe disks
Michal Privoznik
mprivozn at redhat.com
Fri Aug 2 15:19:52 UTC 2019
On 7/16/19 5:35 PM, Peter Krempa wrote:
> On Thu, Jul 11, 2019 at 17:54:16 +0200, Michal Privoznik wrote:
>> Now, that we have everything prepared, we can generate command
>> line for NVMe disks.
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>> src/qemu/qemu_block.c | 25 ++++++++-
>> src/qemu/qemu_command.c | 3 ++
>> src/qemu/qemu_process.c | 7 +++
>> .../disk-nvme.x86_64-latest.args | 52 +++++++++++++++++++
>> tests/qemuxml2argvtest.c | 1 +
>> 5 files changed, 87 insertions(+), 1 deletion(-)
>> create mode 100644 tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args
>
> Note that when you enable this you did not disallow snapshots (as in
> creating a local file snapshot on top of the NVMe image) nor
> implement the backing store string parser for this.
>
> This means that once you create the snapshot, restarting the VM will
> become impossible as we will not be able to parse the backing store
> string (which is probably a bad idea altogether, since the disk can
> change PCI addresses in the meanwhile so refering to it via the one
> stored in the backing file would be wrong anyways).
>
> You'll probably need to disable snapshots (see
> qemuDomainSnapshotPrepareDiskExternalActive) if the even 'domdisk' is
> NVMe too at least until we enable -blockdev support.
Fair enough.
>
> Inactive external snapshots should be fine since we validate that only
> BLOCK and FILE disks are allowed in
> qemuDomainSnapshotPrepareDiskExternalInactive.
>
> At any rate please also add TEST_DISK_TO_JSON case for this in
> tests/qemublocktest.c
Okay.
>
> Alternatively depending on how much we want to prevent from parsing
> nvme:// from the backing store string we'll also need changes to
> virStorageSourceNewFromBackingAbsolute which will deny the nvme backing
> store.
>
> The unfortunate part is that doing all these limitations basically
> removes all the advantages of using NVMe disks via the qemu block layer.
But those limitations would exist only for the time being until we
switch to -blockdev, right? I am willing to take that risk, and allow
snapshots only with -blockdev. Also, given that we are already at 31
patches in this series, we can forbid snapshots for now and save the
work for a follow up series (if somebody really needs to do snapshots).
Note that, these patches still add some value even if we disallow
snapshots - domain can still migrate for instance.
Michal
More information about the libvir-list
mailing list