Paravirtualized SCSI
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:
- linux-2.6.18-xen from xen.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.
- Novell SLES11 SP1 2.6.32 Xenlinux kernel has both the scsiback and scsifront driver.
- 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.
- 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.
NPIV support
Please see the XenNPIV wiki page for more information.
More information and links
- Xen Summit 2007 PVSCSI presentation slides: http://www.xen.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
- 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
- Second version of PVSCSI: http://lists.xensource.com/archives/html/xen-devel/2007-10/msg00526.html
- Third version of PVSCSI: http://lists.xensource.com/archives/html/xen-devel/2007-10/msg00988.html