yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #43093
[Bug 1524301] [NEW] image_meta scsi model ignored
Public bug reported:
Hi,
We use virtio-scsi by adding into our glance image properties hw_scsi_model=virtio-scsi and hw_disk_bus=scsi
It works well most of the times, but when the instance got more than six
disks attached, additional disk doesn't have virtio-scsi enabled.
I have dig into the issue, nova seems generated a correct xml with "one" virtio-scsi and attached disks to it but libvirt transforms the xml. It adds another scsi controller (that use 53c895a driver instead of virtio-scsi) and attach some disks to
this controllers.
Extract of the bugged libvirt xml built by libvirt:
<controller type='scsi' index='0' model='virtio-scsi'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</controller>
<controller type='scsi' index='1'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>
Inside the vm, with lspci I see these controllers:
00:04.0 SCSI storage controller: Red Hat, Inc Virtio SCSI
00:05.0 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
Some disks are attached to pci-00:04.0 and some other to pci-00:05.0 .
Our current workaround is:
--- nova/virt/libvirt/driver.py.orig 2015-12-09 12:18:49.016279849 +0100
+++ nova/virt/libvirt/driver.py 2015-12-09 12:19:47.042987865 +0100
@@ -3247,10 +3269,12 @@
if (image_meta and
image_meta.get('properties', {}).get('hw_scsi_model')):
hw_scsi_model = image_meta['properties']['hw_scsi_model']
- scsi_controller = vconfig.LibvirtConfigGuestController()
- scsi_controller.type = 'scsi'
- scsi_controller.model = hw_scsi_model
- devices.append(scsi_controller)
+ for i in range(0, 3):
+ scsi_controller = vconfig.LibvirtConfigGuestController()
+ scsi_controller.type = 'scsi'
+ scsi_controller.index = i
+ scsi_controller.model = hw_scsi_model
+ devices.append(scsi_controller)
Cheers,
** Affects: nova
Importance: Undecided
Status: New
** Description changed:
Hi,
We use virtio-scsi by adding into our glance image properties hw_scsi_model=virtio-scsi and hw_disk_bus=scsi
It works well most of the times, but when the instance got more than six
disks attached, additional disk doesn't have virtio-scsi enabled.
- I have dig into the issue, nova seems generated a correct xml with "one" virtio-scsi and attached disks to it but libvirt transforms the xml. It adds another scsi controller (that use 53c895a driver instead of virtio-scsi) and attach some disks to
+ I have dig into the issue, nova seems generated a correct xml with "one" virtio-scsi and attached disks to it but libvirt transforms the xml. It adds another scsi controller (that use 53c895a driver instead of virtio-scsi) and attach some disks to
this controllers.
Extract of the bugged libvirt xml built by libvirt:
<controller type='scsi' index='0' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</controller>
<controller type='scsi' index='1'>
- <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>
Inside the vm, with lspci I see these controllers:
- 00:04.0 SCSI storage controller: Red Hat, Inc Virtio SCSI
+ 00:04.0 SCSI storage controller: Red Hat, Inc Virtio SCSI
00:05.0 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
Some disks are attached to pci-00:04.0 and some other to pci-00:05.0 .
Our current workaround is:
- --- nova/virt/libvirt/driver.py.orig 2015-12-09 12:18:49.016279849 +0100
- +++ nova/virt/libvirt/driver.py 2015-12-09 12:19:47.042987865 +0100
- @@ -3247,10 +3269,12 @@
- if (image_meta and
- image_meta.get('properties', {}).get('hw_scsi_model')):
- hw_scsi_model = image_meta['properties']['hw_scsi_model']
- - scsi_controller = vconfig.LibvirtConfigGuestController()
- - scsi_controller.type = 'scsi'
- - scsi_controller.model = hw_scsi_model
- - devices.append(scsi_controller)
- + for i in range(0, 3):
- + scsi_controller = vconfig.LibvirtConfigGuestController()
- + scsi_controller.type = 'scsi'
- + scsi_controller.index = i
- + scsi_controller.model = hw_scsi_model
- + devices.append(scsi_controller)
-
+ --- nova/virt/libvirt/driver.py.orig 2015-12-09 12:18:49.016279849 +0100
+ +++ nova/virt/libvirt/driver.py 2015-12-09 12:19:47.042987865 +0100
+ @@ -3247,10 +3269,12 @@
+ if (image_meta and
+ image_meta.get('properties', {}).get('hw_scsi_model')):
+ hw_scsi_model = image_meta['properties']['hw_scsi_model']
+ - scsi_controller = vconfig.LibvirtConfigGuestController()
+ - scsi_controller.type = 'scsi'
+ - scsi_controller.model = hw_scsi_model
+ - devices.append(scsi_controller)
+ + for i in range(0, 3):
+ + scsi_controller = vconfig.LibvirtConfigGuestController()
+ + scsi_controller.type = 'scsi'
+ + scsi_controller.index = i
+ + scsi_controller.model = hw_scsi_model
+ + devices.append(scsi_controller)
Cheers,
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1524301
Title:
image_meta scsi model ignored
Status in OpenStack Compute (nova):
New
Bug description:
Hi,
We use virtio-scsi by adding into our glance image properties hw_scsi_model=virtio-scsi and hw_disk_bus=scsi
It works well most of the times, but when the instance got more than
six disks attached, additional disk doesn't have virtio-scsi enabled.
I have dig into the issue, nova seems generated a correct xml with "one" virtio-scsi and attached disks to it but libvirt transforms the xml. It adds another scsi controller (that use 53c895a driver instead of virtio-scsi) and attach some disks to
this controllers.
Extract of the bugged libvirt xml built by libvirt:
<controller type='scsi' index='0' model='virtio-scsi'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</controller>
<controller type='scsi' index='1'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>
Inside the vm, with lspci I see these controllers:
00:04.0 SCSI storage controller: Red Hat, Inc Virtio SCSI
00:05.0 SCSI storage controller: LSI Logic / Symbios Logic 53c895a
Some disks are attached to pci-00:04.0 and some other to pci-00:05.0 .
Our current workaround is:
--- nova/virt/libvirt/driver.py.orig 2015-12-09 12:18:49.016279849 +0100
+++ nova/virt/libvirt/driver.py 2015-12-09 12:19:47.042987865 +0100
@@ -3247,10 +3269,12 @@
if (image_meta and
image_meta.get('properties', {}).get('hw_scsi_model')):
hw_scsi_model = image_meta['properties']['hw_scsi_model']
- scsi_controller = vconfig.LibvirtConfigGuestController()
- scsi_controller.type = 'scsi'
- scsi_controller.model = hw_scsi_model
- devices.append(scsi_controller)
+ for i in range(0, 3):
+ scsi_controller = vconfig.LibvirtConfigGuestController()
+ scsi_controller.type = 'scsi'
+ scsi_controller.index = i
+ scsi_controller.model = hw_scsi_model
+ devices.append(scsi_controller)
Cheers,
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1524301/+subscriptions
Follow ups