LIO

The Linux SCSI Target Wiki

(Difference between revisions)
Jump to: navigation, search
m
m
Line 110: Line 110:
* {{anchor|CID}} '''Connection Identifier''' ('''CID'''): A 16-bit number, generated by the Initiator, that uniquely identifies a connection between two iSCSI devices. This number is presented during the login phase.
* {{anchor|CID}} '''Connection Identifier''' ('''CID'''): A 16-bit number, generated by the Initiator, that uniquely identifies a connection between two iSCSI devices. This number is presented during the login phase.
* {{anchor|CID}} '''Endpoint''': The combination of an iSCSI TargetName with an iSCSI [[TPG]] Tag ([[IQN]] + Tag).
* {{anchor|CID}} '''Endpoint''': The combination of an iSCSI TargetName with an iSCSI [[TPG]] Tag ([[IQN]] + Tag).
 +
* {{anchor|CNA}} '''Converged Network Adapter''' ('''CNA'''): An Ethernet PCIe network adapter ([[NIC]]) that natively supports [[RDMA]] (via [[RoCE]]), also called [[RNIC]].
* {{anchor|Demo Mode}} '''Demo Mode''': Means disabling authentification for an iSCSI Endpoint, i.e. its [[ACL]]s are diabled. Demo Mode grants read-only access to all iSCSI Initiators that attempt to connect to that specific Endpoint. See the [[iSCSI]] entry on how to enable [[iSCSI#Demo mode|Demo Mode]].
* {{anchor|Demo Mode}} '''Demo Mode''': Means disabling authentification for an iSCSI Endpoint, i.e. its [[ACL]]s are diabled. Demo Mode grants read-only access to all iSCSI Initiators that attempt to connect to that specific Endpoint. See the [[iSCSI]] entry on how to enable [[iSCSI#Demo mode|Demo Mode]].
* {{anchor|EUI}} '''Extended Unique Identifier''' ('''EUI'''): A 64-bit number that uniquely identifies every device in the world. The format consists of 24 bits that are unique to a given company, and 40 bits assigned by the company to each device it builds.
* {{anchor|EUI}} '''Extended Unique Identifier''' ('''EUI'''): A 64-bit number that uniquely identifies every device in the world. The format consists of 24 bits that are unique to a given company, and 40 bits assigned by the company to each device it builds.
Line 119: Line 120:
* {{anchor|MPIO}} '''Multipath I/O''' ('''MPIO'''): A method by which data can take multiple redundant paths between a server and storage.
* {{anchor|MPIO}} '''Multipath I/O''' ('''MPIO'''): A method by which data can take multiple redundant paths between a server and storage.
* {{anchor|Network Portal}} '''Network Portal''': The combination of an iSCSI Endpoint with an IP address plus a TCP port. The TCP port number for the iSCSI protocol defined by IANA is 3260.
* {{anchor|Network Portal}} '''Network Portal''': The combination of an iSCSI Endpoint with an IP address plus a TCP port. The TCP port number for the iSCSI protocol defined by IANA is 3260.
 +
* {{anchor|NIC}} '''Network Interface Card''' ('''NIC'''): An Ethernet PCIe network adapter.
* {{anchor|NTB}} '''Non-Transparent Bridging''' ('''NTB'''): Non-transparent bridges in PCI systems support intelligent adapters in enterprise systems and multiple processors in embedded systems. The Intel DrawBridge established the paradigm of the embedded bridge and became a defacto standard in such environments as Compact PCI and intelligent adapters for enterprise systems. In these systems, the non-transparent bridge functions as a gateway between the local subsystem and the backplane.<ref>{{cite book |url=http://download.intel.com/design/intarch/papers/323328.pdf |title=Intel® Xeon® Processor C5500/C3500 Series Non-Transparent Bridge |series=323328-001 |author=Mark J. Sullivan |publisher=Intel |location=Santa Clara |date=January 2010}}</ref>
* {{anchor|NTB}} '''Non-Transparent Bridging''' ('''NTB'''): Non-transparent bridges in PCI systems support intelligent adapters in enterprise systems and multiple processors in embedded systems. The Intel DrawBridge established the paradigm of the embedded bridge and became a defacto standard in such environments as Compact PCI and intelligent adapters for enterprise systems. In these systems, the non-transparent bridge functions as a gateway between the local subsystem and the backplane.<ref>{{cite book |url=http://download.intel.com/design/intarch/papers/323328.pdf |title=Intel® Xeon® Processor C5500/C3500 Series Non-Transparent Bridge |series=323328-001 |author=Mark J. Sullivan |publisher=Intel |location=Santa Clara |date=January 2010}}</ref>
* {{anchor|OUI}} '''Organizationally Unique Identifier''' ('''OUI''') is a 24-bit number that is purchased from the IEEE Registration Authority. This identifier uniquely identifies a vendor, manufacturer, or other organization (referred to by the IEEE as the “assignee”) globally or worldwide and effectively reserves a block of each possible type of derivative identifier (such as MAC addresses, group addresses, Subnetwork Access Protocol protocol identifiers, etc.) for the exclusive use of the assignee, see [http://en.wikipedia.org/wiki/Organizationally_Unique_Identifier OUI Wikipedia entry]. The OUI is subsequently used by the assignee to create particular instances of these identifiers for various purposes, such as the identification of a particular piece of equipment.
* {{anchor|OUI}} '''Organizationally Unique Identifier''' ('''OUI''') is a 24-bit number that is purchased from the IEEE Registration Authority. This identifier uniquely identifies a vendor, manufacturer, or other organization (referred to by the IEEE as the “assignee”) globally or worldwide and effectively reserves a block of each possible type of derivative identifier (such as MAC addresses, group addresses, Subnetwork Access Protocol protocol identifiers, etc.) for the exclusive use of the assignee, see [http://en.wikipedia.org/wiki/Organizationally_Unique_Identifier OUI Wikipedia entry]. The OUI is subsequently used by the assignee to create particular instances of these identifiers for various purposes, such as the identification of a particular piece of equipment.
 +
* {{anchor|RNIC}} '''[[RDMA]] [[NIC]]''' ('''RNIC'''): An Ethernet PCIe network adapter ([[NIC]]) that natively supports RDMA (via [[RoCE]]), also called [[CNA]].
* {{anchor|SAM}} '''SCSI Architectural Model''' ('''SAM'''): A document that describes the behavior of SCSI in general terms, allowing for different types of devices communicating over various media.
* {{anchor|SAM}} '''SCSI Architectural Model''' ('''SAM'''): A document that describes the behavior of SCSI in general terms, allowing for different types of devices communicating over various media.
* {{anchor|Target}} '''Target''': The receiving end of a SCSI session, typically a device such as a disk drive, solid state drive, tape drive, or scanner.
* {{anchor|Target}} '''Target''': The receiving end of a SCSI session, typically a device such as a disk drive, solid state drive, tape drive, or scanner.
* {{anchor|Target Group}} '''Target Group''': A collection of fabric module SCSI target endpoints containing SCSI target ports that provide access to individual storage objects.
* {{anchor|Target Group}} '''Target Group''': A collection of fabric module SCSI target endpoints containing SCSI target ports that provide access to individual storage objects.
* {{anchor|Target Port}} '''Target Port''': The combination of an iSCSI Endpoint with one or more LUNs.
* {{anchor|Target Port}} '''Target Port''': The combination of an iSCSI Endpoint with one or more LUNs.
 +
* {{anchor|TOE}} '''TCP/IP Offload Engine''' ('''TOE'''): An enhanced NIC that runs a full TCP/IP stack independent from the main CPU and OS.
* {{anchor|TPG}} '''Target Portal Group''' ('''TPG'''): A list of IP addresses and TCP port numbers that determines which interfaces a specific iSCSI target will listen to.
* {{anchor|TPG}} '''Target Portal Group''' ('''TPG'''): A list of IP addresses and TCP port numbers that determines which interfaces a specific iSCSI target will listen to.
* {{anchor|TSID}} '''Target Session Identifier''' ('''TSID'''): A 16-bit number, generated by the target, that uniquely identifies a session between the initiator and the target. This value is created during the login process, and is sent to the initiator with a Login Response PDU.
* {{anchor|TSID}} '''Target Session Identifier''' ('''TSID'''): A 16-bit number, generated by the target, that uniquely identifies a session between the initiator and the target. This value is created during the login process, and is sent to the initiator with a Login Response PDU.

Revision as of 17:33, 20 April 2013

LIO Target
Logo
LIO 150513.png
LIO Unified Target
Original author(s) Nicholas Bellinger
Developer(s) Datera, Inc.
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 Portal Group and multipath architecture overview.
SCSI standards diagram.
QLogic Fibre Channel running at line rate in target mode with PCIe device passthrough and MSI-X polled interrupts across Linux/SCSI qla2xxx LLD request and response rings.
The IEEE Firewire driver exporting IBLOCK LUNs to a MacOS-X based IEEE-1394/FireWire client.

The Unified Target has become the Linux block storage standard with kernel version 2.6.38.[1][2] LIO Unified Target supports a rapidly growing number of fabric modules, and all existing Linux block devices as backstores.

Contents

Overview

The Unified Target core is a SCSI engine that implements the semantics of a SCSI target as described in the SCSI Architecture Model (SAM), and supports its comprehensive SPC-3/SPC-4 feature set in a fabric-agnostic way. The target core does not directly communicate with initiators and it does not directly access data on disk.

Features of the Unified Target core include Persistent Reservations (PR) and Asymmetric Logical Unit Assignment (ALUA) as used by VMware vSphere 5, etc.

The Unified Target has obtained VMware vSphere 4 Ready certification on Buffalo [PDF] and QNAP [PDF] systems, and vSphere 5 Ready certification on Netgear [PDF] and Pure Storage [PDF] systems.

The Unified Target core (target_core.ko, see Linux kernel driver database) was released with the Linux kernel 2.6.38 on January 14, 2011 (2011-01-14).[3]

Setup

targetcli provides a comprehensive, powerful and easy CLI tool to configure and manage LIO Targets. targetcli was developed by Datera, Inc..

Fabric modules

Fabric modules implement the "frontend" of the target. They "speak" specific protocols that transport SCSI commands. The Fabric Hardware Abstraction Layer (F-HAL) allows all protocol-specific processing to be encapsulated in fabric modules. The following fabric modules are available:

Backstores

Backstores implement the "backend" of the target. They implement the methods of accessing data on disk. A backstore subsystem plugin is a physical storage object that provides the block device underlying a 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 Linux stack just works (including complex functionality such as software RAID, 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), following the SPC-4 standard.

The backstore devices (FILEIO, IBLOCK, pSCSI, RAMDISK, etc.) report the underlying HW limitiations for things like TCQ depth, MaxSectors, TaskAbortedStatus, UA Interlocking, etc. All of these values are available as attributes in the targetcli device context.

Specifications

The following specifications are available as T10 Working Drafts:

Glossary

Inclusion in Linux distributions

Target and targetcli are included in most Linux distributions per default. Here is an overview over the most popular distributions:

Distribution Version[Linux 1] Release Archive Install Source git[Linux 2] Documentation
CentOS 6.2 2011-12-20 CentOS mirror su -c 'yum install fcoe-target-utils' targetcli-fb.git Tech Notes
Debian 7.0 ("wheezy") TBA Debian pool su -c 'apt-get install targetcli' targetcli
Fedora 16, 17/18 2011-11-08 Fedora Rawhide su -c 'yum install targetcli' targetcli-fb.git Target Wiki
openSUSE 12.1 2011-11-08 Requires manual installation from targetcli.
RHEL 6.2 2011-11-16 Fedora Rawhide su -c 'yum install fcoe-target-utils' targetcli-fb.git Tech Notes
Scientific Linux 6.2 2012-02-16 SL Mirror su -c 'yum install fcoe-target-utils' targetcli-fb.git Tech Notes
SLES SP2 2012-02-15 Requires manual installation from targetcli.
Ubuntu PrecisePangolin v12 2012-04-26 Ubuntu universe su -c 'apt-get install targetcli' targetcli
  1. The distribution release where LIO was included first.
  2. Technical support, and qualified backports to other kernels and distributions are available from Datera.

Timeline

The target and fabric modules have gone upstream into the Linux kernel as follows:

Wikipedia

Contact

Please direct all technical discussion on targetcli to the target-devel mailing list (post, subscribe, list info, gmane archive).

If you need assistance, or if you have an SLA with Datera, Inc., please contact the company at:

Please see Support for more information.

See also

Notes

  1. Thorsten Leemhuis (2011-03-02). "Kernel Log: Coming in 2.6.38 (Part 4) - Storage". Heise Online. 
  2. Jonathan Corbet (2010-12-22). "Shooting at SCSI targets". lnw.net. 
  3. Linus Torvalds (2011-03-14). "Linux 2.6.38". lkml.org. 
  4. Mark J. Sullivan (January 2010). Intel® Xeon® Processor C5500/C3500 Series Non-Transparent Bridge. 323328-001. Santa Clara: Intel. 
  5. Linus Torvalds (2011-03-14). "Linux 2.6.38". lkml.org. 
  6. Linus Torvalds (2011-01-14). "Target merge". lkml.org. 
  7. Linus Torvalds (2011-05-18). "Linux 2.6.39". lkml.org. 
  8. Linus Torvalds (2011-07-21). "Linux 3.0". lkml.org. 
  9. Linus Torvalds (2011-10-24). "Linux 3.1". lkml.org. 
  10. Linus Torvalds (2011-07-27). "iSCSI merge". lkml.org. 
  11. Linus Torvalds (2012-03-18). "Linux 3.3 release". lkml.org. 
  12. Linus Torvalds (2012-01-18). "InfiniBand/SRP merge". lkml.org. 
  13. Linus Torvalds (2012-07-21). "Linux 3.5 released". marc.info. 
  14. Linus Torvalds (2012-05-31). "scsi-misc". lkml.org. 
  15. Linus Torvalds (2012-05-22). "usb-target-merge". lkml.org. 
  16. Linus Torvalds (2012-05-23). "sbp-target-merge". lkml.org. 
  17. Linus Torvalds (2012-10-01). "Linux 3.6". lkml.org. 
  18. Linus Torvalds (2012-08-13). "tcm_vhost: Initial merge for vhost level target fabric driver". lkml.org. 

External links

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
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Google AdSense