Bug 996327

Summary: virtio-scsi fails when attaching disk with a target greater than sdf [virtio-scsi lvm storage pool]
Product: [Community] Virtualization Tools Reporter: Jim McEvoy <jemcevoy>
Component: libvirtAssignee: John Ferlan <jferlan>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: crobinso, jshortt, phinchman, rbalakri, rick.beldin
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-04-10 14:04:39 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:
Attachments:
Description Flags
Script to reproduce the attach-disk errors starting with device sdg
none
Guest Configuration with 7 SCSI devices
none
Error in scsi page 83h on guest none

Description Jim McEvoy 2013-08-13 00:36:52 UTC
Created attachment 785925 [details]
Script to reproduce the attach-disk errors starting with device sdg

Description of problem:
attach-disk fails with the errors starting with the seventh scsi disk:
  error: Failed to attach disk
  error: internal error Unable to determine model for scsi controller



Version-Release number of selected component (if applicable):


How reproducible:
Every time the target name is sdg or greater

Steps to Reproduce:
1. Create a libvirt managed lvm storage pool named GuestVols on an empty partition
2. Create 10 volumes in the pool, one large boot and 9 small volumes
3. Boot a new RHEL 6.4 guest to virtio-scsi disk target sda (req. virt-install v. 0.600.4-1)
3. Use virsh attach-disk to attach the next 5 small volumes using targets sdb through sdf
4. Try to attach the next disk as target sdg and see the errors

Actual results:
attach fails starting with target sdg

Expected results:
Should be able to attach 2048 scsi disks

Additional info:
Results of running the attached script that creates 10 small volumes and attaches them to a guest.

./addVols 
Vol UEM004-1 created

Disk attached successfully

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-1 --target sdb --cache none --type disk --config --wwn 44f568b1da33f551 --serial 678a44f568b1da33f551 --shareable
Vol UEM004-2 created

Disk attached successfully

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-2 --target sdc --cache none --type disk --config --wwn d8eaa2b4f6f00b64 --serial 993bd8eaa2b4f6f00b64 --shareable
Vol UEM004-3 created

Disk attached successfully

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-3 --target sdd --cache none --type disk --config --wwn 07abf5f622bb1380 --serial 12eb07abf5f622bb1380 --shareable
Vol UEM004-4 created

Disk attached successfully

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-4 --target sde --cache none --type disk --config --wwn b5b984b2039f2e80 --serial 71f9b5b984b2039f2e80 --shareable
Vol UEM004-5 created

Disk attached successfully

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-5 --target sdf --cache none --type disk --config --wwn 1fc7058865439717 --serial c7d11fc7058865439717 --shareable
Vol UEM004-6 created

Disk attached successfully

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-6 --target sdg --cache none --type disk --config --wwn 4d3ddb9d15b05e7e --serial 62fd4d3ddb9d15b05e7e --shareable
Vol UEM004-7 created

error: Failed to attach disk
error: internal error Unable to determine model for scsi controller

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-7 --target sdh --cache none --type disk --config --wwn 3a08cefb36e36877 --serial 4e8c3a08cefb36e36877 --shareable
Vol UEM004-8 created

error: Failed to attach disk
error: internal error Unable to determine model for scsi controller

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-8 --target sdi --cache none --type disk --config --wwn 66754b95cc0ae1f0 --serial c92866754b95cc0ae1f0 --shareable
Vol UEM004-9 created

error: Failed to attach disk
error: internal error Unable to determine model for scsi controller

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-9 --target sdj --cache none --type disk --config --wwn 0a5d1f3351b38680 --serial a2470a5d1f3351b38680 --shareable
Vol UEM004-10 created

error: Failed to attach disk
error: internal error Unable to determine model for scsi controller

virsh attach-disk --domain UEM004n1 --source /dev/GuestVols/UEM004-10 --target sdk --cache none --type disk --config --wwn 02a54ec5fd4928e0 --serial 705d02a54ec5fd4928e0 --shareable

Comment 1 Jim McEvoy 2013-09-07 19:53:40 UTC
Created attachment 795207 [details]
Guest Configuration with 7 SCSI devices

Comment 2 Jim McEvoy 2013-09-07 19:59:12 UTC
Created attachment 795208 [details]
Error in scsi page 83h on guest

SCSI page 0x83 for /dev/sdg on the guest is corrupt and cannot be read.
The attached file has the details of the error.

Comment 3 Jim McEvoy 2013-09-07 20:33:41 UTC
A couple more details:
The scsi controller is defined by the virt-install command so the guest can boot to /dev/sda

And I am running libvirt verion libvirt-0.10.2-18.el6.9.x86_64 woth Osier's patch to add the -wwn option to attach-disk.

Comment 4 Jim McEvoy 2013-09-12 19:13:18 UTC
After Osier suggestion to update libvirt I built libvirt 1.1.2 on EL 6.4 and upgraded to the newer version.  With the updated libvirt the errors:
error: Failed to attach disk
error: internal error Unable to determine model for scsi controller
were resolved and all 38 disks that I tried to attach worked!  But the attach-disk command created seven scsi controllers in the guest which severely limits the number of disks that can be attached to the guest because of the limited number of pci slots.  

With all the disks attached to the guest I then stopped the guest and edited the configuration so that all 38 disks were attached to the first scsi controller  by incrementing the target field attaching 7 disks to each target on the one controller and deleted the other six controllers.  This also worked!  Progress!

Next I will try some experiments using attach-device rather than attach disk so I can use all three files of bus:target:unit to attach 260 disks to a single scsi controller. 

If the attach-devce method of creating xml snippets to attach each disk works, I will then try this method on the version of libvirt that comes with EL 6.4.

Comment 6 Cole Robinson 2016-04-10 14:04:39 UTC
Comment #4 indicates the root issue was indeed fixed at some point, so closing