Description of problem: -device virtio-blk,scsi=on|off is deprecated since qemu-5.0. Libvirt uses it even with the most recent qemu: tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args:-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-5-format,\ tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args:-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-4-format,\ tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args:-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-3-format,\ tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args:-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-2-format,\ tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args:-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-1-format,\ Version-Release number of selected component (if applicable): libvirt-6.3.0
Also the scsi=on: tests/qemuxml2argvdata/virtio-lun.args 31:-device virtio-blk-pci,scsi=on,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,\ 34:-device virtio-blk-pci,scsi=on,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,\ These only exist in virtio bus with lun type, but it cannot work after virtio1.0: https://bugzilla.redhat.com/show_bug.cgi?id=1365823 scsi=off can be removed directly since the default value is off. For scsi=on, we can pop up a unsupported error from libvirt.
'scsi=off' can't be removed always as in older tha qemu-2.5 the default was 'on'. Fortunately the default value is queryable.
Fixed upstream: ec69f0190b qemu: command: Stop formatting of 'scsi=off' for virtio-blk-pci 3b7ca6d419 qemu: capabilities: Introduce QEMU_CAPS_VIRTIO_BLK_SCSI_DEFAULT_DISABLED 4b8ad7fc01 virQEMUCapsProbeQMPDeviceProperties: Add per-property callbacks 6de5cac7f0 qemuMonitorGetDeviceProps: Return data in a hash table 0b52b023fc qemuMonitorJSONGetDeviceProps: Refactor to modern standards d3035e133e virQEMUCapsProbeQMPObjectTypes: Fold in virQEMUCapsProbeQMPGenericProps be9771a1d2 virQEMUCapsProbeQMPDeviceProperties: Switch to local implementation 568200eb94 virQEMUCapsProbeQMPDevices: Split up into logical chunks v6.3.0-65-gec69f0190b
Verified in : qemu-kvm-5.0.0-0.module+el8.3.0+6620+5d5e1420.x86_64 libvirt-6.4.0-1.module+el8.3.0+6881+88468c00.x86_64 Step: Scenario 1:positive test 1.Prepare a guest and different disk type xml(except disk device=lun): ... <disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/sdb'/> <target dev='vdb' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </disk> <disk type='network' device='disk'> <driver name='qemu' type='raw'/> <source protocol='iscsi' name='iqn.2020-06.com.virttest:volumetest.target/0'> <host name='127.0.0.1' port='3260'/> </source> <target dev='vdc' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/> </disk> ... 2.Start the guest and check qemu cmd: -blockdev {"driver":"host_device","filename":"/dev/sdb","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-2-format","read-only":false,"driver":"raw","file":"libvirt-2-storage"} -device virtio-blk-pci,bus=pci.6,addr=0x0,drive=libvirt-2-format,id=virtio-disk1 -blockdev {"driver":"iscsi","portal":"127.0.0.1:3260","target":"iqn.2020-06.com.virttest:volumetest.target","lun":0,"transport":"tcp","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"} -device virtio-blk-pci,bus=pci.9,addr=0x0,drive=libvirt-1-format,id=virtio-disk2 Scsi=off of virtio-blk-pci has been deleted and guest works well Scenario 2:nagetive test 1.Edit disk xml with device=lun and type=block ... <disk type='block' device='lun'> <driver name='qemu' type='raw'/> <source dev='/dev/sdb'/> <target dev='vdb' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </disk> ... 2.Try to start the doamin and it should fail as https://bugzilla.redhat.com/show_bug.cgi?id=1365823: # virsh start test1 error: Failed to start domain test1 error: internal error: process exited while connecting to monitor: 2020-06-05T03:27:53.290044Z qemu-kvm: -device virtio-blk-pci,scsi=on,bus=pci.6,addr=0x0,drive=libvirt-2-format,id=virtio-disk1: Please set scsi=off for virtio-blk devices in order to use virtio 1.0 Work as expected , so verified
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (virt:8.3 bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:5137