Bug 1718818

Summary: [RFE] Enhance local disk passthrough
Product: Red Hat Enterprise Virtualization Manager Reporter: Michal Skrivanek <michal.skrivanek>
Component: ovirt-engineAssignee: Tomasz Barański <tbaransk>
Status: CLOSED ERRATA QA Contact: Nisim Simsolo <nsimsolo>
Severity: high Docs Contact:
Priority: high    
Version: 4.3.4CC: areis, bugs, knoel, lsvaty, mavital, mkalinin, mtessun, nashok, nsimsolo, pagranat, pbonzini, rdlugyhe, stefanha, tbaransk
Target Milestone: ovirt-4.4.1Keywords: FutureFeature
Target Release: ---Flags: lsvaty: testing_plan_complete-
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: rhv-4.4.0-29 Doc Type: Enhancement
Doc Text:
This enhancement enables you to attach a SCSI host device, `scsi_hostdev`, to a virtual machine and specify the optimal driver for the type of SCSI device: * *scsi_generic*: (Default) Enables the guest operating system to access OS-supported SCSI host devices attached to the host. Use this driver for SCSI media changers that require raw access, such as tape or CD changers. * *scsi_block*: Similar to *scsi_generic* but better speed and reliability. Use for SCSI disk devices. If trim or discard for the underlying device is desired, and it’s a hard disk, use this driver. * *scsi_hd*: Provides performance with lowered overhead. Supports large numbers of devices. Uses the standard SCSI device naming scheme. Can be used with aio-native. Use this driver for high-performance SSDs. * *virtio_blk_pci*: Provides the highest performance without the SCSI overhead. Supports identifying devices by their serial numbers.
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-08-04 13:19:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1793550    
Bug Blocks:    

Description Michal Skrivanek 2019-06-10 10:06:50 UTC
We currently support SCSI Hostdev Passthrough using a scsi-generic driver only
  <hostdev mode='subsystem' type='scsi' managed='no' rawio='yes'>
which doesn't perform that well. We should add scsi-block and scsi-hd and ideally also virtio-blk-pci.

- scsi-block has less overhead than scsi-generic with same capabilities.
  <disk type='block' device='lun' rawio='yes'>
  we should consider it a default for disk devices and leave scsi-generic for tapes and such.
- scsi-hd is a non-passthrough way, suitable for SSDs with higher performance
  <disk type='block' device='disk'>
  can use aio-native
- virtio-blk-pci would be the most performant way without the SCSI overhead
  <disk type='block' device='disk'> with <target dev='vda' bus='virtio'/>
  supports serial number  
- for completion, there's also the existing PCI Passthrough option suitable for PCI NVMe SSDs

As a rule of thumb the performance should follow:

                     SCSI passthrough       overhead
                                          guest   host
  ----------------------------------------------------------------------
    scsi-generic            yes          higher  high
    scsi-block              yes          higher  low
    scsi-hd                 no           higher  low
    virtio-blk-pci          no           lower   lower
    PCI passthrough         N/A          lower   lowest

Possible options depend on the kind of the device:
- SCSI non-disks can be exposed as passthrough only(scsi-generic)
- SCSI disks can be exposed as passthrough(scsi-block since it's superior to scsi-generic and has no disadvantage), as emulated SCSI(scsi-hd), or even as virtio-blk-pci for better performance
- PCI non-NVMe devices can be exposed as passthrough only
- PCI NVMe devices can be exposed as PCI passthrough, emulated SCSI(scsi-hd) or virtio-blk-pci.

They all should honor the iothread setting as well

Comment 4 Paolo Bonzini 2019-06-21 12:28:37 UTC
I agree with the plan, it's a good summary of past discussions and BZs.

Comment 8 RHV bug bot 2019-12-13 13:13:39 UTC
WARN: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops

Comment 9 RHV bug bot 2019-12-20 17:43:35 UTC
WARN: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops

Comment 10 RHV bug bot 2020-01-08 14:46:36 UTC
WARN: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops

Comment 11 RHV bug bot 2020-01-08 15:14:21 UTC
WARN: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops

Comment 12 RHV bug bot 2020-01-24 19:48:22 UTC
WARN: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops: Bug status (ON_QA) wasn't changed but the folowing should be fixed:

[Found non-acked flags: '{}', ]

For more info please contact: rhv-devops

Comment 13 Nisim Simsolo 2020-02-12 10:06:51 UTC
Reassigned, see https://bugzilla.redhat.com/show_bug.cgi?id=1793550

Comment 17 Nisim Simsolo 2020-07-08 18:20:47 UTC
Verified:
ovirt-engine-4.4.1.7-0.3.el8ev
libvirt-daemon-6.0.0-25.module+el8.2.1+7154+47ffd890.x86_64
vdsm-4.40.22-1.el8ev.x86_64
qemu-kvm-4.2.0-28.module+el8.2.1+7211+16dfe810.x86_64

Verification scenario:
Polarion test plan added to external trackers.

Comment 25 errata-xmlrpc 2020-08-04 13:19:31 UTC
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 (Important: RHV Manager (ovirt-engine) 4.4 security, 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/RHSA-2020:3247