Hi Peter,
Zoned storage support
(
https://zonedstorage.io/docs/introduction/zoned-storage) is being added
to QEMU. Given a zoned host block device, the QEMU syntax will look like
this:
--blockdev zoned_host_device,node-name=drive0,filename=/dev/$BDEV,...
--device virtio-blk-pci,drive=drive0
Note that regular --blockdev host_device will not work.
For now the virtio-blk device is the only one that supports zoned
blockdevs.
This brings to mind a few questions:
1. Does libvirt need domain XML syntax for zoned storage? Alternatively,
it could probe /sys/block/$BDEV/queue/zoned and generate the correct
QEMU command-line arguments for zoned devices when the contents of
the file are not "none".
2. Should QEMU --blockdev host_device detected zoned devices so that
--blockdev zoned_host_device is not necessary? That way libvirt would
automatically support zoned storage without any domain XML syntax or
libvirt code changes.
The drawbacks I see when QEMU detects zoned storage automatically:
- You can't easiy tell if a blockdev is zoned from the command-line.
- It's possible to mismatch zoned and non-zoned devices across live
migration.
We still have time to decide on the QEMU command-line syntax for QEMU
8.0, so I wanted to raise this now.
Thanks,
Stefan