Paravirtualized SCSI: Difference between revisions

From Xen
Jump to navigationJump to search
(Added link to Linux 3.x pvscsi pvops patches)
 
(12 intermediate revisions by 5 users not shown)
Line 18: Line 18:
PVSCSI drivers can be found from at least the following Xen kernel trees:
PVSCSI drivers can be found from at least the following Xen kernel trees:


* linux-2.6.18-xen from xen.org contains both scsiback and scsifront.
* Upstream Linux kernel version 3.18 (and later versions) includes Xen PVSCSI drivers, both xen-scsiback and xen-scsifront, out-of-the-box!
* linux-2.6.18-xen from XenProject.org contains both scsiback and scsifront.
* Xen PV-on-HVM drivers ("unmodified_drivers" in Xen source tree) contains PVSCSI scsifront driver for Linux 2.6.18 and 2.6.27.
* Xen PV-on-HVM drivers ("unmodified_drivers" in Xen source tree) contains PVSCSI scsifront driver for Linux 2.6.18, 2.6.27 and 2.6.32.
* Novell SLES11 SP1 2.6.32 Xenlinux kernel has both the scsiback and scsifront driver.
* SUSE SLES11 SP1 2.6.32 Xenlinux kernel (and later versions) has PVSCSI drivers.
* pvscsi drivers are currently being ported to pvops kernel. First RFC patch for pvops: http://lists.xensource.com/archives/html/xen-devel/2011-01/msg00328.html . Testing and comments are needed for this pvscsi patch, and upstreaming work to get it to mainline Linux kernel.
* SUSE SLES12 Xenlinux kernel has PVSCSI drivers.
* Linux 3.x (pvops) version available from: http://git.kernel.org/?p=linux/kernel/git/konrad/xen.git;a=shortlog;h=refs/heads/devel/xen-scsi.v1.0 .
* Windows Xen GPLPV drivers have scsifront driver.
* Windows Xen GPLPV drivers have scsifront driver.

== NPIV support ==
== Xen toolstack support for PVSCSI features ==
Please see the [[XenNPIV]] wiki page for more information.
* xm/xend toolstack supports PVSCSI since Xen 3.3, up to Xen 4.4.
* xl / libxl toolstack currently does not yet have support for PVSCSI (as of Xen 4.7).

== Configuration ==
=== libxl/xend ===
The syntax in domU.cfg is <code>vscsi=[ 'pdev,vdev[,options]', ... ]</code>
'pdev' describes the physical device, preferable in a persistent format such as /dev/disk/by-*/*.
'vdev' is the domU device in vHOST:CHANNEL:TARGET:LUN notation, all integers.
'options' lists additional flags which a backend may recognize.

=== xl/xm ===
<code>
xl scsi-attach domU 'pdev' 'vdev' ['options']

xl scsi-detach domU 'vdev'
</code>
=== libvirt ===
Very limited way to describe host device, just 'H:C:T:L' notation for pdev supported:
<code>
<hostdev mode='subsystem' type='scsi' managed='no' sgio='filtered' rawio='yes'>
<source>
<adapter name='scsi_host5'/>
<address bus='0' target='1' unit='0'/>
</source>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</hostdev>

</code>


== More information and links ==
== More information and links ==
* Xen Summit 2007 PVSCSI presentation slides: http://www.xen.org/files/xensummit_fall07/19_Matsumoto.pdf
* Xen Summit 2007 PVSCSI presentation slides: http://www-archive.xenproject.org/files/xensummit_fall07/19_Matsumoto.pdf
* Xen Summit Tokyo 2008 PVSCSI update presentation slides: http://www.xen.org/files/xensummit_tokyo/24_Hitoshi%20Matsumoto_en.pdf
<!--http://www.xen.org/files/xensummit_fall07/19_Matsumoto.pdf-->
* Xen Summit Tokyo 2008 PVSCSI update presentation slides: http://www-archive.xenproject.org/files/xensummit_tokyo/24_Hitoshi%20Matsumoto_en.pdf
* PVSCSI usage with NPIV: http://lists.xensource.com/archives/html/xen-devel/2007-08/msg00700.html
* PVSCSI usage with NPIV: http://lists.xensource.com/archives/html/xen-devel/2007-08/msg00700.html
* First version of PVSCSI (with usage examples): http://lists.xensource.com/archives/html/xen-devel/2007-07/msg00450.html
* First version of PVSCSI (with usage examples): http://lists.xensource.com/archives/html/xen-devel/2007-07/msg00450.html
Line 39: Line 69:
[[Category:Developers]]
[[Category:Developers]]
[[Category:Overview]]
[[Category:Overview]]
[[Category:Paravirtualised Architecture]]

Latest revision as of 14:43, 18 April 2016


Xen PVSCSI

Paravirtualized SCSI (PVSCSI) was added to Xen 3.3.0. PVSCSI allows high performance passthrough of SCSI devices (or LUNs) from dom0 to a Xen PV or HVM guest. PVSCSI can be used to passthrough a tape drive, tape autoloader or basicly any SCSI/FC device. By using PVSCSI the guest can have direct access to the SCSI device (required by for example some management tools). PVSCSI can also be used to passthrough multiple SCSI devices or the whole SCSI HBA.

Note that disks (any block device in dom0) can be passed to the Xen guest using the normal Xen blkback functionality, PVSCSI is not needed for that.

PVSCSI requirements

  • PVSCSI requires a scsiback backend driver in dom0 kernel.
  • PVSCSI requires a scsifront frontend driver in the guest kernel.
  • Xen 3.3.0 or newer.

PVSCSI driver availability

PVSCSI drivers can be found from at least the following Xen kernel trees:

  • Upstream Linux kernel version 3.18 (and later versions) includes Xen PVSCSI drivers, both xen-scsiback and xen-scsifront, out-of-the-box!
  • linux-2.6.18-xen from XenProject.org contains both scsiback and scsifront.
  • Xen PV-on-HVM drivers ("unmodified_drivers" in Xen source tree) contains PVSCSI scsifront driver for Linux 2.6.18, 2.6.27 and 2.6.32.
  • SUSE SLES11 SP1 2.6.32 Xenlinux kernel (and later versions) has PVSCSI drivers.
  • SUSE SLES12 Xenlinux kernel has PVSCSI drivers.
  • Windows Xen GPLPV drivers have scsifront driver.

Xen toolstack support for PVSCSI features

  • xm/xend toolstack supports PVSCSI since Xen 3.3, up to Xen 4.4.
  • xl / libxl toolstack currently does not yet have support for PVSCSI (as of Xen 4.7).

Configuration

libxl/xend

The syntax in domU.cfg is vscsi=[ 'pdev,vdev[,options]', ... ] 'pdev' describes the physical device, preferable in a persistent format such as /dev/disk/by-*/*. 'vdev' is the domU device in vHOST:CHANNEL:TARGET:LUN notation, all integers. 'options' lists additional flags which a backend may recognize.

xl/xm

xl scsi-attach domU 'pdev' 'vdev' ['options']

xl scsi-detach domU 'vdev'

libvirt

Very limited way to describe host device, just 'H:C:T:L' notation for pdev supported:

 <hostdev mode='subsystem' type='scsi' managed='no' sgio='filtered' rawio='yes'>
    <adapter name='scsi_host5'/>
    <address bus='0' target='1' unit='0'/>
  <readonly/>
  <address type='drive' controller='0' bus='0' target='0' unit='0'/>
 </hostdev>

More information and links