Bug 1365823
| Summary: | -device virtio-blk-pci,scsi=on no longer works | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Yang Yang <yanyang> |
| Component: | libvirt | Assignee: | Ján Tomko <jtomko> |
| Status: | CLOSED CANTFIX | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 7.3 | CC: | ailan, aliang, areis, chayang, coli, drjones, dyuan, dzheng, hannsj_uhl, hhan, jsuchane, jtomko, juzhang, knoel, laine, lmiksik, michen, pbonzini, pzhang, rbalakri, virt-maint, xfu, xuwei, xuzhang |
| Target Milestone: | rc | Keywords: | Regression, Reopened |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-09-22 14:04:07 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1227354 | ||
| Bug Blocks: | 1173757, 1366991 | ||
The bug can be reproduced since qemu-kvm-rhev-2.6.0-19.el7.x86_64 due to the patches of https://bugzilla.redhat.com/show_bug.cgi?id=1360664 . We could add disable-modern=on when converting the xml to qemu command line. Hi, Is there time to fix it in RHEL7.3 This does not seem like something libvirt should fix. If it worked with qemu-kvm-rhev before and it's supported, it should still work. If it's not supported, I don't think printing a nicer error message is worth it at this point. (In reply to Ján Tomko from comment #4) > This does not seem like something libvirt should fix. > If it worked with qemu-kvm-rhev before and it's supported, it should still > work. > If it's not supported, I don't think printing a nicer error message is worth > it at this point. It worked with qemu version prior to qemu-kvm-rhev-2.6.0-18.el7.x86_64. After BZ1360664 is fixed in qemu-kvm-rhev-2.6.0-19.el7, the default mode changes to disable-legacy=off and disable-modern=off. And virtio 1.0 needs scsi=off for virtio-blk devices. So -device virtio-blk-pci,scsi=on conflicts with virtio1.0 and does not work now (In reply to Ján Tomko from comment #4) > This does not seem like something libvirt should fix. > If it worked with qemu-kvm-rhev before and it's supported, it should still > work. Apparently it's not supported anymore (Marcel?) > If it's not supported, I don't think printing a nicer error message is worth > it at this point. What would be the alternative to an error message? *** This bug has been marked as a duplicate of bug 1245453 *** Jan, Seems it is not a qemu issue, see comment #9. From POV of libvirt, it is indeed a critical bug. So I re-open it and move it to libvirt component. The problem is that qemu bz#1360664 enabled virtio-1.0 by default and -device virtio-blk-pci,scsi=on conflicts with virtio1.0. Downstream libvirt does not provide an interface to disable virtio1.0 (or virtio-0.9) for user. So could libvirt add disable-modern=on when parsing the xml to qemu command line. Thanks I think libvirt should add disable-legacy=off,disable-modern=on when converting the virtio lun device xml to qemu cmdline, so that we make virtio lun devices available for users. The virtio lun disk is working well in RHEL7.2, but do not working well in current RHEL7.3. So, I add regression keyword in this bug. I think the reasoning in comment 11 makes sense (unfortunately). virtio-blk lun has been deprecated for a long time, but probably has never been deprecated (formally(. I'm not sure what's the process for deprecating something in libvirt (tainting the domain?). Perhaps we could do the solution of comment 12 now (simple patch, downstream only, no need for backwards-compatibility to old QEMU I think) and work out a full deprecation strategy upstream. Upstream proposal to add disable-modern=on and log a warning: https://www.redhat.com/archives/libvir-list/2016-September/msg00787.html I'm starting to wonder if anything can or should be done by libvirt about this: https://www.redhat.com/archives/libvir-list/2016-September/msg00825.html existing configs should continue to work due to their machinetype version, and new configs can use virtio-scsi. I suppose this might be a problem if OpenStack or RHV (see, I used the new name!!) can't do virtio-scsi... This issue has been discussed a lot and various attempts were made including upstream and downstream only patch. None of it was accepted and as Laine pointed out in comment 21 of this bug it is actually not a issue for current configurations. For rhel-7.3 configuration the virtio-scsi is recommended. *** Bug 1432057 has been marked as a duplicate of this bug. *** Just to be clear, what is the expected result of this command
virsh attach-disk --domain $DOM --source /dev/sdb --target vdb --driver qemu \
--type lun
when run on a guest that does not support legacy virtio and chooses not to have a virtio-scsi controller? Failure is fine, as it's not supported, but how graceful/informative will that failure be? IOW, how can we avoid getting more bug reports?
|
Description of problem: Guest failed to start if using lun devices. Error like this # virsh start vm1 error: Failed to start domain vm1 error: internal error: qemu unexpectedly closed the monitor: 2016-08-10T07:29:23.135463Z qemu-kvm: -device virtio-blk-pci,scsi=on,bus=pci.0,addr=0x9,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1: Please set scsi=off for virtio-blk devices in order to use virtio 1.0 For now, qemu defaults to use virtio 1.0 as well as requires scsi=off, however, lun device has scsi=on. So libvirt needs to disallow this configuration Version-Release number of selected component (if applicable): libvirt-2.0.0-4.el7.x86_64 qemu-kvm-rhev-2.6.0-19.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.configure lun device in domain xml <disk type='block' device='lun'> <driver name='qemu' type='qcow2'/> <source dev='/dev/sdc'/> <target dev='vda' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </disk> # virsh start vm1 error: Failed to start domain vm1 error: internal error: qemu unexpectedly closed the monitor: 2016-08-10T07:29:23.135463Z qemu-kvm: -device virtio-blk-pci,scsi=on,bus=pci.0,addr=0x9,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1: Please set scsi=off for virtio-blk devices in order to use virtio 1.0 2. 3. Actual results: Guest starts failed Expected results: Libvirt need to disallow to configure lun device with virtio 1.0 together Additional info: