LIO

The Linux SCSI Target Wiki

(Difference between revisions)
Jump to: navigation, search
m
m
Line 36: Line 36:
The LIO [[SCSI]] engine implements a comprehensive [[SPC-3]]/[[SPC-4]] feature set with support for high-end SCSI features in a fabric-agnostic way, such as [[Persistent Reservations]] (PR) and [[Asymmetric Logical Unit Assignment]] (ALUA) as being used by [[VMware ESX]] and [[VMware vSphere|vSphere]].
The LIO [[SCSI]] engine implements a comprehensive [[SPC-3]]/[[SPC-4]] feature set with support for high-end SCSI features in a fabric-agnostic way, such as [[Persistent Reservations]] (PR) and [[Asymmetric Logical Unit Assignment]] (ALUA) as being used by [[VMware ESX]] and [[VMware vSphere|vSphere]].
 +
 +
== Setup ==
 +
 +
[[RTSadmin]] is a comprehensive, powerful, yet easy storage management tool that can efficiently handle complex LIO installations. RTSadmin is provided by [[RisingTide Systems]].
 +
 +
== Rollout ==
 +
 +
The rollout of the target engine and fabric modules into the Linux mainline kernel is unfolding as follows:
 +
 +
* Linux 2.6.38 (released on 3/14/2011<ref>{{cite web| url=https://lkml.org/lkml/2011/3/14/508| title=Linux 2.6.38| author=Linus Torvalds| date=3/14/2011| publisher=lkml.org}}</ref>): Generic multiprotocol target engine
 +
* Linux 2.6.39: [[tcm_loop]]
 +
* Linux 2.6.40: [[iSCSI]], [[Fibre Channel over Ethernet|FCoE]], [[Fibre Channel]] ([[QLogic]]) and [[IBM vSCSI]]
 +
* Linux 2.6.41: [[InfiniBand]] and SCSI Referrals
== {{anchor|Fabric modules}}Fabric modules ==
== {{anchor|Fabric modules}}Fabric modules ==
Line 50: Line 63:
* {{anchor|SAS}} '''[[Serial Attached SCSI|SAS]]''': Marvell. Status: Development.
* {{anchor|SAS}} '''[[Serial Attached SCSI|SAS]]''': Marvell. Status: Development.
* {{anchor|tcm_loop}} '''[[tcm_loop]]''' ([http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=tree;f=drivers/target/tcm_loop;hb=HEAD tcm_loop.ko]): This high-speed SCSI emulation device can serve any type of raw hardware to local applications and virtual machines as a fully [[SCSI]] [[SPC-4]] compliant block device, including emulation of advanced functionality, such as [[Persistent Reservations|PRs]], [[Asymmetric Logical Unit Assignment|ALUA]], etc. Status: released.
* {{anchor|tcm_loop}} '''[[tcm_loop]]''' ([http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=tree;f=drivers/target/tcm_loop;hb=HEAD tcm_loop.ko]): This high-speed SCSI emulation device can serve any type of raw hardware to local applications and virtual machines as a fully [[SCSI]] [[SPC-4]] compliant block device, including emulation of advanced functionality, such as [[Persistent Reservations|PRs]], [[Asymmetric Logical Unit Assignment|ALUA]], etc. Status: released.
-
 
-
== Rollout ==
 
-
 
-
The rollout of the target engine and fabric modules into the Linux mainline kernel is unfolding as follows:
 
-
 
-
* Linux 2.6.38 (released on 3/14/2011<ref>{{cite web| url=https://lkml.org/lkml/2011/3/14/508| title=Linux 2.6.38| author=Linus Torvalds| date=3/14/2011| publisher=lkml.org}}</ref>): Generic multiprotocol target engine
 
-
* Linux 2.6.39: [[tcm_loop]]
 
-
* Linux 2.6.40: [[iSCSI]], [[Fibre Channel over Ethernet|FCoE]], [[Fibre Channel]] ([[QLogic]]) and [[IBM vSCSI]]
 
-
* Linux 2.6.41: [[InfiniBand]] and SCSI Referrals
 
== {{anchor|Backstores}} Backstores ==
== {{anchor|Backstores}} Backstores ==
Line 72: Line 76:
The SCSI functionality is implemented directly in the target engine in a fabric agnostic way, including a number of high-end features, such as [[Persistent Reservations]] (PRs) and [[Asymmetric Logical Unit Assignment]] (ALUA), which have been available with LIO 3, following the [[SPC-4]] standard.
The SCSI functionality is implemented directly in the target engine in a fabric agnostic way, including a number of high-end features, such as [[Persistent Reservations]] (PRs) and [[Asymmetric Logical Unit Assignment]] (ALUA), which have been available with LIO 3, following the [[SPC-4]] standard.
-
 
-
== Setup ==
 
-
 
-
[[RTSadmin]] is a comprehensive, powerful, yet easy storage management tool that can efficiently handle complex LIO installations. RTSadmin is provided by [[RisingTide Systems]].
 
-
 
-
[[lio-utils]] is a simple user-space shell that was used to setup LIO&nbsp;3 (see [http://linux-iscsi.org/builds/docs/LIO-3.0-Users_Reference_Manual.pdf LIO 3 User's Reference Manual). It is now deprecated.
 
-
 
-
Lastly, the kernel Target engine configuration space is mapped into [[Target/configFS]], where it can be configured manually from user space by using inter- and intra-module symbolic links.
 
== Specifications ==  
== Specifications ==  

Revision as of 04:59, 18 May 2011

LIO Target
Logo
RisingTide Systems
Multiprotocol Target Engine
Original author(s) Nicholas Bellinger
Developer(s) RisingTide Systems LLC
Initial release January 14, 2011 (2011-01-14)
Stable release 4.1.0 / June 20, 2012;
7 years ago
 (2012-06-20)
Preview release 4.2.0-rc5 / June 28, 2012;
7 years ago
 (2012-06-28)
Development status Production
Written in C
Operating system Linux
Type Target engine
License GNU General Public License
Website datera.io
LIO architecture overview.
LIO iSCSI architecture diagram.
SCSI standards diagram.
TCM_QLA2xxx running at line rate HW target mode from with PCIe device passthrough with MSI-X polled interrupts across Linux/SCSI qla2xxx LLD request and response rings
TCM v4.0 QLAXXX prototype using PCIe device passthrough for target mode MSI-X interrupts, and QEMU Megasas HBA emulation into Windows7 64-bit guest.
FILEIO with a Tcm_loop SCSI port on KVM x86_64 host running v2.6.36-rc3+ with QEMU lsi53c895a HBA emulation into an OS/2 Warp v4 guest. A HPFS partition has been formatted and mounted as DRIVE D:

The Target (target_core_mod.ko) is the generic multiprotocol target engine of LIO. It is the standard multiprotocol target engine in Linux with 2.6.38 (spring 2011 release).[1][2][3] LIO Target supports a wide range of platforms (from PC architecture to mobile devices, STBs and game consoles), based on a wide range of CPU architectures (x86, ia64, Alpha, Cell, PPC, ARM, MIPS, etc.), a growing number of fabric modules, and basically all existing Linux block devices for backstores.

The LIO SCSI engine implements a comprehensive SPC-3/SPC-4 feature set with support for high-end SCSI features in a fabric-agnostic way, such as Persistent Reservations (PR) and Asymmetric Logical Unit Assignment (ALUA) as being used by VMware ESX and vSphere.

Contents

Setup

RTSadmin is a comprehensive, powerful, yet easy storage management tool that can efficiently handle complex LIO installations. RTSadmin is provided by RisingTide Systems.

Rollout

The rollout of the target engine and fabric modules into the Linux mainline kernel is unfolding as follows:

Fabric modules

The LIO Fabric Hardware Abstraction Layer (F-HAL) allows all protocol-specific processing to be encapsulated in fabric modules, and thus can also accommodate novel fabric technologies and requirements:

Backstores

A backstore subsystem plugin is a physical storage object that provides the actual storage underlying an SCSI Endpoint. Backstore objects can be added via the Storage Hardware Abstraction Layer (S-HAL) that brings storage hardware into the Target engine as raw block devices, on which the full Linux stack just works (including complex functionality such as software RAID, the LVM, snapshots, virtualization, etc.).

The Target supports the SCSI-3 standard for all backstore devices (block devices and/or VFS):

The SCSI functionality is implemented directly in the target engine in a fabric agnostic way, including a number of high-end features, such as Persistent Reservations (PRs) and Asymmetric Logical Unit Assignment (ALUA), which have been available with LIO 3, following the SPC-4 standard.

Specifications

The following specifications are available as T10 Working Drafts:

Glossary

RFCs

Timeline

Timeline of the LinuxIO
Release Details 2011 2012 2013 2014 2015
123456789101112 123456789101112 123456789101112 123456789101112 123456789101112
4.x Version 4.0 4.1
Feature LIO Core Loop back FCoE iSCSI Perf SRP
CM WQ FC
USB
1394
vHost Perf Misc 16 GFC iSER Misc VAAI Misc DIF Core
NPIV
DIF iSER DIF FC vhost TCMU Xen Misc Misc virtio 1.0 Misc NVMe OF
Linux 2.6.38 2.6.39 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22

See also

Notes

  1. Thorsten Leemhuis (3/2/2011). "Kernel Log: Coming in 2.6.38 (Part 4) - Storage". Heise Online. 
  2. Linus Torvalds (1/14/2011). "Trivial merge". lkml.org. 
  3. Jonathan Corbet (12/22/2010). "Shooting at SCSI targets". lnw.net. 
  4. Linus Torvalds (3/14/2011). "Linux 2.6.38". lkml.org. 

Wikipedia entries

External links

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Google AdSense