Jump to content

LIO (SCSI target)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Thomas.uhl (talk | contribs) at 17:42, 29 May 2011 (New article). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
LIO Target
Original author(s)Nicholas Bellinger
Jerome Martin
Developer(s)RisingTide Systems LLC
Initial releaseMarch 15, 2007 (2007-03-15)
Stable release
3.5.0 / September 19, 2010 (2010-09-19)
Preview release
4.0.0 / January 14, 2011;
13 years ago
 (2011-01-14)
Written inC, Python
Operating systemLinux
TypeUnified block storage target
LicenseGNU General Public License
Websitelinux-iscsi.org

LIO (linux-iscsi.org) is a multiprotocol SCSI target for Linux. It currently supports fabric modules for iSCSI, Fibre Channel, FCoE and InfiniBand (SRP). LIO went upstream into Linux with kernel version 2.6.38,[1][2] and is becoming the standard unified block storage target in Linux. Supported CPU architectures include x86, ia64, ARM, CELL, MIPS and POWER, etc.

Features

The LIO SCSI target engine implements a comprehensive SPC-3/SPC-4[3] 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). The LIO iSCSI fabric module also implements a number of advanced features, such as Multiple Connections per Session (MC/S) and Error Recovery Level 2 (ERL=2).

LIO has a configfs-based[4] kernel API, and can be managed via a comprehensive command-line interface and API (RTSadmin). RTSadmin version 2 allows unified management of all LIO block storage protocols, such as iSCSI, Fibre Channel, FCoE and InfiniBand. RTSadmin v2 is dual licensed, and the community edition is available under the AGPL.

LIO is being used in a number of commercial storage systems, including Netgear, QNAP, Synology, etc.

Together with the replication software DRBD and the cluster software Pacemaker, LIO allows the configuration of highly-available storage systems. RTSadmin, the management platform for LIO, supports easy setup and configuration of such HA arrays.

LIO is being developed by RisingTide Systems, located in the Silicon Valley, which manufactures storage systems and software. RisingTide Systems is a member of the Linux Solutions Group (LiSoG), where LIO provides the blocklevel storage component for the open source reference stack.

Architecture

Target

LIO Architecture

LIO has a modular and extensible architecture. The LIO SCSI target core is independent of specific fabric modules or backstore types. This way, LIO can support any number of fabrics and backstores, and allows using them together at the same time. Currently, the LIO modules are scheduled to go upstream into the Linux kernel as follows:

  • Linux 2.6.38 (released on 3/14/2011[5]): Generic multiprotocol target engine (including all backstores)
  • Linux 2.6.39 (released on 5/18/2011[6]): tcm_loop (can provide SCSI support on top of any raw hardware)
  • Linux 2.6.40: iSCSI, Fibre Channel (QLogic HBAs), FCoE (by Cisco), and IBM vSCSI (for the IBM pSeries)
  • Linux 2.6.41: InfiniBand (Mellanox HCAs)

Initiator

RisingTide Systems also provides an open source iSCSI initiator, called Core-iSCSI. Core-iSCSI supports a number of advanced iSCSI features, including, in particular, Multiple Connections per Session (MC/S) and Error Recovery Level 2 (ERL=2), which the standard Linux Open-iSCSI initiator doesn't support. This way, Core-iSCSI can drive increased availability, scalability and performance. Core-iSCSI also allows remote boot across an iSCSI SAN or WAN ("diskless boot").

See also

References

  1. ^ Linus Torvalds (2011-01-15). "Trivial merge". lkml.org. Retrieved 2011-03-07.
  2. ^ Thorsten Leemhuis (3/2/2011). "Kernel Log: Coming in 2.6.38 (Part 4) - Storage". Heise Online. {{cite web}}: Check date values in: |date= (help)
  3. ^ Ralph Weber (2011-01-17). "SCSI Primary Commands - 4 (SPC-4)". t10.org. Retrieved 2011-03-07.
  4. ^ Jonathan Corbet (2005-08-24). "Configfs - an introduction". lwn.net. Retrieved 2011-03-07.
  5. ^ Linus Torvalds (3/14/2011). "Linux 2.6.38". lkml.org. {{cite web}}: Check date values in: |date= (help)
  6. ^ Linus Torvalds (5/18/2011). "Linux 2.6.39". lkml.org. {{cite web}}: Check date values in: |date= (help)