Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

LIO (SCSI target)

From Wikipedia, the free encyclopedia
(Redirected fromLIO Target)
Open-source version of SCSI target
For information on the maintainer of LIO, seeDatera.
This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages)
A major contributor to this article appears to have aclose connection with its subject. It may require cleanup to comply with Wikipedia's content policies, particularlyneutral point of view. Please discuss further on thetalk page.(March 2013) (Learn how and when to remove this message)
This articlemay rely excessively on sourcestoo closely associated with the subject, potentially preventing the article from beingverifiable andneutral. Please helpimprove it by replacing them with more appropriatecitations toreliable, independent sources.(January 2014) (Learn how and when to remove this message)
This articlecontainspromotional content. Please helpimprove it by removingpromotional language and inappropriateexternal links, and by adding encyclopedic text written from aneutral point of view.(October 2024) (Learn how and when to remove this message)
(Learn how and when to remove this message)
LIO Target
LIO Linux SCSI Target
Original author(s)Nicholas Bellinger
Jerome Martin
Developer(s)Datera, Inc.
Initial releaseJanuary 14, 2011 (2011-1-14)
Repositorygithub.com/open-iscsi
Written inC,Python
Operating systemLinux
TypeBlock storage
LicenseGNU General Public License
Websitelinux-iscsi.org at theWayback Machine (archived 2022-10-06)

TheLinux-IOTarget (LIO) is anopen-source Small Computer System Interface(SCSI) target implementation included with theLinux kernel.[1][better source needed]

Unlike initiators, which begin sessions, LIO functions as a target, presenting one or moreLogical Unit Numbers (LUNs) to aSCSI initiator, receiving SCSI commands, and managing the input/output data transfers.[citation needed]

LIO supports a wide range of storage protocols and transport fabrics, including but not limited toFibre Channel over Ethernet (FCoE),Fibre Channel,IEEE 1394 andiSCSI.[citation needed]

It is utilized in severalLinux distributions and is a popular choice for cloud environments due to its integration with tools likeQEMU/KVM,libvirt, andOpenStack.[citation needed]

The LIO project is maintained byDatera, Inc.,[dubiousdiscuss] a Silicon Valley-based storage solutions provider. On January 15, 2011, LIO was merged into theLinux kernel mainline with version 2.6.38, which was officially released on March 14, 2011.[2][3] Subsequent versions of the Linux kernel have introduced additional fabric modules to expand its compatibility.[citation needed]

LIO competes with other SCSI target modules in the Linux ecosystem. TheSCSI Target Framework (SCST)[4] is a prominent alternative for general SCSI target functionality, while for iSCSI-specific targets, the olderiSCSI Enterprise Target (IET) andSCSI Target Framework (STGT) also have industry adoption.[5][6]

Background

[edit]

TheSCSI standard provides an extensible semantic abstraction forcomputer data storage devices, and is used with data storage systems. The SCSI T10 standards[7] define thecommands[8] and protocols of the SCSI command processor (sent inSCSI CDBs), and the electrical and optical interfaces for various implementations.

ASCSI initiator is an endpoint that initiates aSCSI session. ASCSI target is the endpoint that waits for initiator commands and executes the requiredI/O data transfers. The SCSI target usually exports one or moreLUNs for initiators to operate on.

The LIO Linux SCSI Target implements a generic SCSI target that provides remote access to most data storage device types over all prevalent storage fabrics and protocols. LIO neither directly accesses data nor does it directly communicate with applications.

Architecture

[edit]
LIO Architecture

LIO implements a modular and extensible architecture around a parallelised SCSI command processing engine.[9]

The LIO SCSI target engine is independent of specific fabric modules or backstore types. Thus, LIO supports mixing and matching any number of fabrics and backstores at the same time. The LIO SCSI target engine implements a comprehensive SPC-3/SPC-4[10] feature set with support for high-end features, including SCSI-3/SCSI-4Persistent Reservations (PRs), SCSI-4Asymmetric Logical Unit Assignment (ALUA),VMwarevSphere APIs for Array Integration (VAAI),[11]T10 DIF, etc.

LIO is configurable via aconfigfs-based[12] kernel API, and can be managed via a command-line interface and API (targetcli).

SCSI target

[edit]

The concept of a SCSI target isn't restricted to physical devices on a SCSI bus, but instead provides a generalised model for all receivers on a logical SCSI fabric. This includes SCSI sessions across interconnects with no physical SCSI bus at all. Conceptually, the SCSI target provides a generic block storage service orserver in this scenario.

Back-stores

[edit]

Back-stores provide the SCSI target with generalised access to data storage devices by importing them via corresponding device drivers. Back-stores do not need to be physical SCSI devices.

The most important back-store media types are:

  • Block: The block driver allows using raw Linux block devices as back-stores for export via LIO. This includes physical devices, such asHDDs,SSDs,CDs/DVDs,RAM disks, etc., and logical devices, such as software or hardwareRAID volumes orLVM volumes.
  • File: The file driver allows using files that can reside in any Linuxfile system orclustered file system as back-stores for export via LIO.
  • Raw: The raw driver allows using unstructured memory as back-stores for export via LIO.

As a result, LIO provides a generalised model to export block storage.

Fabric modules

[edit]

Fabric modules implement the front-end of the SCSI target by encapsulating and abstracting the properties of the various supported interconnect. The following fabric modules are available.

FCoE

[edit]
Combined storage and local area network

TheFibre Channel over Ethernet (FCoE) fabric module allows the transport ofFibre Channel protocol (FCP) traffic acrosslossless Ethernet networks. The specification, supported by a large number of network and storage vendors, is part of the Technical Committee T11 FC-BB-5 standard.[13]

LIO supports all standard Ethernet NICs.

The FCoE fabric module was contributed byCisco andIntel, and released with Linux 3.0 on July 21, 2011.[14]

Fibre Channel

[edit]

Fibre Channel is a high-speed network technology primarily used for storage networking. It is standardized in the Technical Committee T11[15] of the InterNational Committee for Information Technology Standards (INCITS).

TheQLogic Fibre Channel fabric module supports 4- and 8-gigabit speeds with the following HBAs:

  • QLogic 2400 Series (QLx246x), 4GFC
  • QLogic 2500 Series (QLE256x), 8GFC (fully qual'd)

The Fibre Channel fabric module[16] and low-level driver[17] (LLD) were released with Linux 3.5 on July 21, 2012.[18]

With Linux 3.9, the following QLogic HBAs and CNAs are also supported:

  • QLogic 2600 Series (QLE266x), 16GFC, SR-IOV
  • QLogic 8300 Series (QLE834x), 16GFS/10 GbE, PCIe Gen3 SR-IOV
  • QLogic 8100 Series (QLE81xx), 8GFC/10 GbE, PCIe Gen2

This makes LIO the first open source target to support 16-gigabit Fibre Channel.

IEEE 1394

[edit]
LIO Firewire Target for MacOS X

The FireWire SBP-2 fabric module enablesLinux to export local storage devices viaIEEE 1394, so that other systems can mount them as an ordinary IEEE 1394 storage device.

IEEE 1394 is aserial-bus interface standard for high-speed communications and isochronous real-time data transfer. It was developed byApple as "FireWire" in the late 1980s and early 1990s, andMacintosh computers have supported "FireWire target disk mode" since 1999.[19]

The FireWire SBP-2 fabric module was released with Linux 3.5 on July 21, 2012.[18][20]

iSCSI

[edit]

TheInternet Small Computer System Interface (iSCSI) fabric module allows the transport of SCSI traffic across standard IP networks.

By carrying SCSI sessions across IP networks, iSCSI is used to facilitate data transfers over intranets and manage storage over long distances. iSCSI can be used to transmit data over local area networks (LANs), wide area networks (WANs), or the Internet, and can enable location-independent and location-transparent data storage and retrieval.

The LIO iSCSI fabric module also implements a number of advanced iSCSI features that increase performance and resiliency, such asMultiple Connections per Session (MC/S) andError Recovery Levels 0-2 (ERL=0,1,2).

LIO supports all standard Ethernet NICs.

TheiSCSI fabric module was released with Linux 3.1 on October 24, 2011.[21]

iSER

[edit]

Networks supportingremote direct memory access (RDMA) can use theiSCSI Extensions for RDMA (iSER) fabric module to transportiSCSI traffic. iSER permits data to be transferred directly into and out of remote SCSI computer memory buffers without intermediate data copies (direct data placement or DDP) by using RDMA.[22] RDMA is supported onInfiniBand networks, on Ethernet withdata center bridging (DCB) networks viaRDMA over Converged Ethernet (RoCE), and on standard Ethernet networks withiWARP enhancedTCP offload engine controllers.

The iSER fabric module was developed together by Datera andMellanox Technologies, and first released with Linux 3.10 on June 30, 2013.[23]

SRP

[edit]

TheSCSI RDMA Protocol (SRP) fabric module allows the transport of SCSI traffic across RDMA (see above) networks. As of 2013, SRP was more widely used than iSER, although it is more limited, as SCSI is only a peer-to-peer protocol, whereas iSCSI is fully routable. The SRP fabric module supports the following Mellanoxhost channel adapters (HCAs):

  • Mellanox ConnectX-2 VPI PCIe Gen2 HCAs (x8 lanes), single/dual-port QDR 40 Gbit/s
  • Mellanox ConnectX-3 VPI PCIe Gen3 HCAs (x8 lanes), single/dual-port FDR 56 Gbit/s
  • Mellanox ConnectX-IB PCIe Gen3 HCAs (x16 lanes), single/dual-port FDR 56 Gbit/s

The SRP fabric module was released with Linux 3.3 on March 18, 2012.[24]

In 2012,c't magazine measured almost 5000 MB/s throughput with LIO SRP Target over one Mellanox ConnectX-3 port in 56 Gbit/s FDR mode on aSandy BridgePCI Express 3.0 system with fourFusion-IO ioDrive PCI Express flash memory cards.

USB

[edit]

TheUSB Gadget fabric module enables Linux to export local storage devices via theUniversal Serial Bus (USB), so that other systems can mount them as an ordinary storage device.

USB was designed in the mid-1990s to standardize the connection ofcomputer peripherals, and has also become common for data storage devices.

The USB Gadget fabric module was released with Linux 3.5 on July 21, 2012.[25]

Targetcli

[edit]

targetcli is a user space single-node managementcommand line interface (CLI) for LIO.[26] It supports all fabric modules and is based on a modular, extensible architecture, with plug-in modules for additional fabric modules or functionality.

targetcli provides a CLI that uses an underlying generic target library through a well-defined API. Thus the CLI can easily be replaced or complemented by a UI with other metaphors, such as a GUI.

targetcli is implemented inPython and consists of three main modules:

  • the underlyingrtslib and API.[27]
  • theconfigshell, which encapsulates the fabric-specific attributes in corresponding 'spec' files.
  • thetargetcli shell itself.

Detailed instructions on how to set up LIO targets can be found on the LIO wiki.[26]

Linux distributions

[edit]

targetcli and LIO are included in most Linux distributions per default. Here is an overview of the most popular ones, together with the initial inclusion dates:

DistributionVersion[a]ReleaseArchiveInstallationSource gitDocumentation
Alpine Linux2.52011-11-07Alpine Linux mirrorapk add targetcli-fbtargetcli-fb.gitHow-to
CentOS6.22011-12-20CentOS mirrorsu -c 'yum install fcoe-target-utils'targetcli-fb.gitTech Notes
Debian7.0 ("wheezy")2013-05-04Debian poolsu -c 'apt-get install targetcli'targetcli.gitDebian - LIO Wiki at theWayback Machine (archived 2022-08-20)
Fedora162011-11-08Fedora Rawhidesu -c 'yum install targetcli'targetcli-fb.gitTarget Wiki
openSUSE12.12011-11-08Requires manual installation from Dateratargetcli.git repos.
RHEL[b]6.22011-11-16Fedora Rawhidesu -c 'yum install fcoe-target-utils'targetcli-fb.gitTech Notes
Scientific Linux6.22012-02-16SL Mirrorsu -c 'yum install fcoe-target-utils'targetcli-fb.gitTech Notes
SLES11 SP3 MR2013-12-su -c 'zypper in targetcli'targetcli.gitSLES - LIO Wiki at theWayback Machine (archived 2022-08-02)
Ubuntu12.04 LTS (precise)2012-04-26Ubuntu universesudo apt-get install targetclitargetcli.gitUbuntu - LIO Wiki at theWayback Machine (archived 2022-10-21)

See also

[edit]

Notes

[edit]
  1. ^The distribution release where LIO was included first.
  2. ^RHEL 6 included LIO, but it was the default only for FCoE targets, while STGT was used for iSCSI. In RHEL 7 beta, LIO is the default for FCoE, iSCSI, and for Mellanox InfiniBand iSER/SRP.[28]

References

[edit]
  1. ^"LIO".Linux-IO, the Linux SCSI Target wiki. 2016-03-12. Archived fromthe original on 2022-08-20.
  2. ^Linus Torvalds (2011-01-14)."Trivial merge".Kernel.org. Retrieved2019-09-28.
  3. ^Thorsten Leemhuis (2011-03-02)."Kernel Log: Coming in 2.6.38 (Part 4) - Storage". Heise Online.
  4. ^"A tale of two SCSI targets". Lwn.net. Archived fromthe original on 2014-02-02. Retrieved2014-01-20.
  5. ^Haas, Florian (May 2012)."Replicate Everything! Highly Available iSCSI Storage with DRBD and Pacemaker".Linux Journal. Archived fromthe original on 2014-01-20. Retrieved2019-09-28.
  6. ^Bolkhovitin, Vladislav (2018-04-11)."SCST vs STGT".Generic SCSI Target Subsystem for Linux. Retrieved2019-04-01.
  7. ^Technical Committee T10."SCSI Storage Interfaces". t10.org. Retrieved2012-12-24.{{cite web}}: CS1 maint: numeric names: authors list (link)
  8. ^SCSI Commands Reference Manual(PDF). 100293068, Rev. C. Scotts Valley: Seagate Technology. April 2010. Archived fromthe original(PDF) on 2012-07-31. Retrieved2012-12-25.
  9. ^Bellinger, Nicholas (2009).Current Status and Future of iSCSI on the Linux platform(PDF). Linux Plumbers Conference.
  10. ^Ralph Weber (2011-01-17)."SCSI Primary Commands - 4 (SPC-4)". t10.org. Retrieved2011-03-07.
  11. ^"vStorage APIs for Array Integration".Linux-IO, the Linux SCSI Target wiki. 2015-08-07. Archived fromthe original on 2022-08-20.
  12. ^Jonathan Corbet (2005-08-24)."Configfs - an introduction". lwn.net. Retrieved2011-03-07.
  13. ^"Fibre Channel: Backbone - 5 revision 2.00"(PDF). American National Standard for Information TechnologyInternational Committee for Information Technology Standards Technical Group T11. June 4, 2009. Retrieved2011-05-05.
  14. ^Linus Torvalds (2011-04-18)."[SCSI] tcm_fc: Adding FC_FC4 provider (tcm_fc) for FCoE target (TCM - target core) support". Kernel.org. Retrieved2019-09-28.
  15. ^"T11 Home Page". t11.org. Retrieved2012-12-25.
  16. ^Linus Torvalds (2012-05-15)."[SCSI] tcm_qla2xxx: Add >= 24xx series fabric module for target-core". Kernel.org. Retrieved2019-09-28.
  17. ^Linus Torvalds (2012-05-15)."[SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series". Kernel.org. Retrieved2019-09-28.
  18. ^abThorsten Leemhuis (2012-07-03)."Kernel Log: Coming in 3.5 (Part 2) - Filesystems and storage". Heise Online. Retrieved2013-01-14.
  19. ^"How to use and troubleshoot FireWire target disk mode". apple.com. Retrieved2012-12-24.
  20. ^Linus Torvalds (2012-04-15)."sbp-target: Initial merge of firewire/ieee-1394 target mode support". Kernel.org. Retrieved2019-09-28.
  21. ^Linus Torvalds (2011-07-27)."iSCSI merge". Kernel.org. Retrieved2019-09-28.
  22. ^RFC 5041
  23. ^Linus Torvalds (2013-04-30)."Merge branch 'for-next-merge'". Kernel.org. Retrieved2019-09-28.
  24. ^Linus Torvalds (2012-01-18)."InfiniBand/SRP merge". Kernel.org. Retrieved2019-09-28.
  25. ^"Merge branch 'usb-target-merge'". Kernel.org. Retrieved2019-09-28.
  26. ^ab"Targetcli".Linux-IO, the Linux SCSI Target wiki. 2012-12-09. Archived fromthe original on 2013-03-02. Retrieved2012-12-25.
  27. ^Jerome Martin (2011-08-03)."Package rtslib". daterainc.com. Retrieved2012-12-25.
  28. ^"Chapter 6. Storage". Access.redhat.com. Retrieved2014-01-20.

External links

[edit]
LIO Timeline
ReleaseDetails2011201220132014
123456789101112123456789101112123456789101112123456789101112
4.xVersion4.1
FeatureTarget CoreLoopbackFCoEiSCSIPerfSRP
CM WQFC
USB
1393
vHostPerfMisc16 GFCiSERMiscVAAIMiscDIF
Ref's
NPIV
iSERDIF
Linux2.6.382.6.393.03.13.23.33.43.53.63.73.83.93.103.113.123.133.143.15
General
Standards
Storage
Peripheral
Audio
Portable
Embedded
Interfaces are listed by their speed in the (roughly) ascending order, so the interface at the end of each section should be the fastest.
Category
Organization
Kernel
Support
People
Technical
Debugging
Startup
ABIs
APIs
Kernel
System Call
Interface
In-kernel
Userspace
Daemons,
File systems
Wrapper
libraries
Components
Variants
Virtualization
Adoption
Range
of use
Adopters
Retrieved from "https://en.wikipedia.org/w/index.php?title=LIO_(SCSI_target)&oldid=1272989202"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp