LIO
The Linux SCSI Target Wiki
m (→Wikipedia entries) |
m (→RFCs) |
||
Line 108: | Line 108: | ||
== RFCs == | == RFCs == | ||
- | * {{RFC 1994|PPP Challenge Handshake Authentication Protocol (CHAP)}} | + | * {{RFC|1994|PPP Challenge Handshake Authentication Protocol (CHAP)}} |
== See also == | == See also == |
Revision as of 07:37, 27 November 2010
![]() |
This article has one or more issues. Please help improve it or discuss these issues on the talk page.
|
The Target is the generic multiprotocol target engine of LIO.
Contents |
Overview
![]() | |
---|---|
RisingTide Systems Generic Target Engine | |
Original author(s) | Nicholas Bellinger |
Developer(s) | RisingTide Systems LLC |
Initial release | March 15, 2007 |
Stable release | 3.5 / November 1, 2010 |
Preview release | 4.0.0-rc5 / November 15, 2010 |
Development status | Production |
Written in | C |
Operating system | Linux |
Type | SCSI Target engine |
License | GNU General Public License |
Website | datera.io |
The LIO target storage engine (target_core_mod.ko
) is the generic multiprotocol target engine of LIO.
Architecturally, it can run on a number of different Linux environments, allows access to storage objects from the SCSI, block and VFS subsystems (such as Target/PSCSI, Target/IBLOCK, Target/FILEIO, Target/RAMDISK), and it operates with a number of protocol-specific fabric modules (such as iSCSI, FCoE, Fibre Channel, InfiniBand).
LIO supports advanced iSCSI features, such as Persistent Reservations, ALUA, MC/S and ERL=2.
ConfigFS
The Target engine is mapped into Target/configFS, where it can be configured from user space by using inter- and intra-module symbolic links.
Complementary documentation:
- lio-utils: basic Target configuration tools.
- Target CLI: basic Target v3.x CLI operations using tcm_node.py from lio-utils.
- iSCSI CLI: basic iSCSI v3.x CLI operations using lio_node.py and lio_dump.py from lio-utils.
- HOWTO: starting the Target.
Please contact RisingTide Systems to receive RTSadmin, a free, sophisticated storage management tool.
Standards compliance
The Target supports the SCSI-3 standard for virtual storage devices from Target/IBLOCK, Target/FILEIO, and Target/RAMDISK subsystem plugins. Some of the most notable functionality includes Persistent Reservations (PR) and ALUA, which have been implemented in LIO 3.0, following the SPC-4 standard.
SCSI-3 and greater revisions are supported using the Target/PSCSI subsystem plugin for Linux/SCSI passthrough, but only from control CDBs capable by the device firmware. Linux/SCSI block devices can take advantage of PR and ALUA functionality via the tcm_loop loopback device.
Specifications
The following specifications are available as T10 Working Drafts:
- SCSI Primary Commands - 2 (SPC-2): contains the second-generation definition of the basic commands for all SCSI devices. SPC-2 is used in conjuction with a standard for the specific device type. In 2006, the ANSI SPC-2 standard was replaced with ISO/IEC 14776-452:2005, which is available through ANSI. Status: Published, 7/18/2001
- SCSI Primary Commands - 3 (SPC-3): contains the third-generation definition of the basic commands for all SCSI devices. SPC-3 is used in conjuction with a standard for the specific device type. Status: Published, 5/4/2005
- SCSI Primary Commands - 4 (SPC-4): contains the fourth-generation definition of the basic commands for all SCSI devices. SPC-4 is used in conjuction with a standard for the specific device type. Status: Development, 11/16/2010
- Small Computer System Interface - 2 (SCSI-2): SCSI-2 defines the second generation of the Small Computer System Interface. Status: Published, 9/7/1993
Glossary
- Backstore: A physical storage object that provides the actual storage underlying an SCSI Endpoint.
- Command Descriptor Block (CDB): The standard format for SCSI commands. CDBs are commonly 6, 10, or 12 bytes long, though they can be 16 bytes or of variable length.
- Challenge Handshake Authentication Protocol (CHAP): An authentication technique for confirming the identity of one computer to another. Described in RFC 1994.
- 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.
- Endpoint: The combination of an iSCSI Target Name with an iSCSI TPG (IQN + Tag).
- 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.
- Initiator: The originating end of a SCSI session. Typically a controlling device such as a computer.
- Internet Protocol Storage (IPS): The class of protocols or devices that use the IP protocol to move data in a storage network. FCIP, iFCP, and iSCSI are all examples of IPS protocols.
- iSCSI Qualified Name (IQN): A name format for iSCSI that uniquely identifies every device in the world (e.g.
iqn.5886.com.acme.tapedrive.sn-a12345678
). - Initiator Session Identifier (ISID): A 48-bit number, generated by the Initiator, that uniquely identifies a session between the Initiator and the Target. This value is created during the login process, and is sent to the target with a Login PDU.
- Multipath I/O (MPIO): A method by which data can take multiple redundant paths between a server and storage.
- 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.
- 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.
- Target: The receiving end of a SCSI session, typically a device such as a disk drive, tape drive, or scanner.
- Target Group: A collection of fabric module SCSI target endpoints containing SCSI target ports that provide access to individual storage objects.
- Target Port: The combination of an iSCSI Endpoint with one or more LUNs.
- Target Portal Group (TPG): A list of IP addresses and TCP port numbers that determines which interfaces a specific iSCSI target will listen to.
- 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.
Timeline
Timeline of the LinuxIO | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Release | Details | 2011 | 2012 | 2013 | 2014 | 2015 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ||
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 |
Wikipedia entries
- ATA over Ethernet (AoE)
- FibreChannel over Ethernet (FCoE)
- FibreChannel (FC)
- InfiniBand (IB)
- iSCSI
- iSCSI Extensions for RDMA (iSER)
- Internet Storage Name Service (iSNS)
- Internet Wide Area RDMA Protocol (iWarp)
- Serial attached SCSI (SAS)
- Service Location Protocol (SLP)
- SCSI RDMA Protocol (SRP)
- Storage Area Network (SAN)
RFCs
- RFC 1994: PPP Challenge Handshake Authentication Protocol (CHAP)
See also
Notes
External links
- SCSI Wikipedia entry
- T10 Technical Committee (SCSI standards)
- T10 Technical Committee - Protocols and Physical Layers
- T10 Primary Commands (SPC): using SPC-3/4
- T10 Block Commands (SBC) using SBC-3
- SCSI Tutorial
- SCSI/iSCSI/RAID/SAS Information Sheet
- Anatomy of the Linux SCSI subsystem
- List of Adapters by SCSI connector type
- wetpaint.com Fun storage stuff (Ming Zhang)