Feature #3053

Multi-Queue virtio-scsi

Added by 海涛 肖 about 6 years ago. Updated about 3 years ago.

Status:ClosedStart date:07/16/2014
Priority:NormalDue date:
Assignee:Javi Fontan% Done:

0%

Category:Drivers - VM
Target version:Release 5.4
Resolution:fixed Pull request:

Description

Multi-queue virtio-scsi provides improved storage performance and scalability in the virtio-scsi driver. It enables each virtual CPU to have a separate queue and interrupt to use without affecting other vCPUs.

Multi-queue virtio-scsi is disabled by default on Red Hat Enterprise Linux 7.
To enable multi-queue virtio-scsi support in the guest, add the following to the guest XML configuration, where N is the total number of vCPU queues:

<controller type='scsi' index='0' model='virtio-scsi'>
<driver queues='N' />
</controller>

Related issues

Related to Feature #3060: trim/discard for Ceph RBD Closed 07/17/2014

Associated revisions

Revision 93f078d1
Added by Javi Fontan about 3 years ago

F #3053: Add support for virtio-scsi controller

Revision 8e3706fe
Added by Javi Fontan about 3 years ago

F #3053: add virtio_scsi to defaults file

Revision 05511e5c
Added by Javi Fontan about 3 years ago

F #3053: add virtio-scsi controller when queues are specified

Revision e164fde8
Added by Javi Fontan about 3 years ago

F #3053: add explicit address to scsi drives

By default scsi drives increase the unit part of the address. This
causes problems in linux as the devices are not created in order.

Setting the target forces the order to be maintained.

https://bugzilla.redhat.com/show_bug.cgi?id=1200049

Revision 41b608d0
Added by Abel Coronado about 3 years ago

F #3053 Added virtio-scsi Queues input in OS Booting (update VM Template)

History

#1 Updated by 海涛 肖 about 6 years ago

XML example:
<controller type='scsi' index='0' model='virtio-scsi'>
<driver queues='N' />
</controller>

#2 Updated by Florian Heigl over 3 years ago

Could someone look at this? it has major performance impact and virtio-scsi is also needed for trim to work as far as I know. (I can set "unmap" now but not sure that'd be enough)

#3 Updated by Javi Fontan over 3 years ago

You can enable virtio-scsi adding this RAW parameter to the template or to defaults kvm driver file:

RAW=[
  DATA="<devices><controller type='scsi' index='0' model='virtio-scsi'></controller></devices>",
  TYPE="kvm" ]

You can add the disks in SCSI bus and use trim.

#4 Updated by Javi Fontan about 3 years ago

  • Category set to Drivers - VM
  • Assignee set to Javi Fontan
  • Target version set to Release 5.4

#5 Updated by Javi Fontan about 3 years ago

  • Tracker changed from Request to Feature
  • Status changed from Pending to Closed
  • Resolution set to fixed

libvirt already adds a virtio-scsi controller if there is none and a scsi disk is added. There's a new option to specify the number of queues:

FEATURES = [
  VIRTIO_SCSI_QUEUES = 4
]

If this parameter is specified and greater than 0 a controller is added with that amount of queues.

#6 Updated by Javi Fontan about 3 years ago

Also available in: Atom PDF