The Linux-IO Target (LIO) is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
Small Computer System Interface
(SCSI) target implementation included with the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
.
Unlike initiators, which begin sessions, LIO functions as a target, presenting one or more
Logical Unit Numbers (LUNs) to a
SCSI initiator
In computer data storage, a SCSI initiator is the endpoint that initiates a SCSI session, that is, sends a SCSI command. The initiator usually does not provide any Logical Unit Numbers (LUNs).
On the other hand, a SCSI target is the endpoint tha ...
, receiving SCSI commands, and managing the input/output data transfers.
LIO supports a wide range of storage protocols and transport fabrics, including but not limited to
Fibre Channel over Ethernet
Fibre Channel over Ethernet (FCoE) is a computer network technology that encapsulates Fibre Channel frames over Ethernet networks. This allows Fibre Channel to use 10 Gigabit Ethernet networks (or higher speeds) while preserving the Fibre Channel ...
(FCoE),
Fibre Channel
Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
,
IEEE 1394
IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple in cooperation with a number of companies, primarily Sony a ...
and
iSCSI
Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
.
It is utilized in several
Linux distributions
A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel (operating system), kernel functionality. Although the name does not imply distribution (marketing), product distribution pe ...
and is a popular choice for cloud environments due to its integration with tools like
QEMU
The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor; that is, it translates the emulated binary codes to an equivalent binary format which is executed by the mach ...
/
KVM,
libvirt, and
OpenStack
OpenStack is a free, open standard cloud computing platform. It is mostly deployed as infrastructure-as-a-service (IaaS) in both public and private clouds where virtual servers and other resources are made available to users. The software pla ...
.
The LIO project is maintained by
Datera, Inc., a Silicon Valley-based storage solutions provider. On January 15, 2011, LIO was merged into the
Linux kernel mainline
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
with version 2.6.38, which was officially released on March 14, 2011. Subsequent versions of the Linux kernel have introduced additional fabric modules to expand its compatibility.
LIO competes with other SCSI target modules in the Linux ecosystem. The
SCSI Target Framework (SCST) is a prominent alternative for general SCSI target functionality, while for iSCSI-specific targets, the older iSCSI Enterprise Target (IET) and SCSI Target Framework (STGT) also have industry adoption.
Background
The
SCSI
Small Computer System Interface (SCSI, ) is a set of standards for physically connecting and transferring data between computers and peripheral devices, best known for its use with storage devices such as hard disk drives. SCSI was introduced ...
standard provides an extensible semantic abstraction for
computer data storage
Computer data storage or digital data storage is a technology consisting of computer components and Data storage, recording media that are used to retain digital data. It is a core function and fundamental component of computers.
The cent ...
devices, and is used with data storage systems. The SCSI T10 standards define the
commands and protocols of the SCSI command processor (sent in ''SCSI CDBs''), and the electrical and optical interfaces for various implementations.
A ''SCSI initiator'' is an endpoint that initiates a
SCSI
Small Computer System Interface (SCSI, ) is a set of standards for physically connecting and transferring data between computers and peripheral devices, best known for its use with storage devices such as hard disk drives. SCSI was introduced ...
session. A ''
SCSI target'' is the endpoint that waits for initiator commands and executes the required
I/O data transfers. The SCSI target usually exports one or more
LUNs 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

LIO implements a modular and extensible architecture around a parallelised SCSI command processing engine.
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 feature set with support for high-end features, including SCSI-3/SCSI-4 ''Persistent Reservations'' (PRs), SCSI-4 ''Asymmetric Logical Unit Assignment'' (ALUA),
VMware ''vSphere APIs for Array Integration'' (VAAI),
T10 DIF, etc.
LIO is configurable via a
configfs-based kernel API, and can be managed via a command-line interface and API (''
targetcli'').
SCSI target
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 or
server
Server may refer to:
Computing
*Server (computing), a computer program or a device that provides requested information for other programs or devices, called clients.
Role
* Waiting staff, those who work at a restaurant or a bar attending custome ...
in this scenario.
Back-stores
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 as
HDDs,
SSD
A solid-state drive (SSD) is a type of solid-state storage device that uses Integrated circuit, integrated circuits to store data persistence (computer science), persistently. It is sometimes called semiconductor storage device, solid-stat ...
s,
CDs/
DVD
The DVD (common abbreviation for digital video disc or digital versatile disc) is a digital optical disc data storage format. It was invented and developed in 1995 and first released on November 1, 1996, in Japan. The medium can store any ki ...
s,
RAM disk
A RAM drive (also called a RAM disk) is a block of random-access memory ( primary storage or volatile memory) that a computer's software is treating as if the memory were a disk drive (secondary storage). RAM drives provide high-performance te ...
s, etc., and logical devices, such as software or hardware
RAID
RAID (; redundant array of inexpensive disks or redundant array of independent disks) is a data storage virtualization technology that combines multiple physical Computer data storage, data storage components into one or more logical units for th ...
volumes or
LVM volumes.
* File: The file driver allows using files that can reside in any Linux
file system or
clustered 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
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

The ''
Fibre Channel over Ethernet
Fibre Channel over Ethernet (FCoE) is a computer network technology that encapsulates Fibre Channel frames over Ethernet networks. This allows Fibre Channel to use 10 Gigabit Ethernet networks (or higher speeds) while preserving the Fibre Channel ...
'' (FCoE) fabric module allows the transport of
Fibre Channel
Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
protocol (FCP) traffic across
lossless 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.
LIO supports all standard Ethernet NICs.
The FCoE fabric module was contributed by
Cisco
Cisco Systems, Inc. (using the trademark Cisco) is an American multinational digital communications technology conglomerate corporation headquartered in San Jose, California. Cisco develops, manufactures, and sells networking hardware, s ...
and
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
, and released with Linux 3.0 on July 21, 2011.
Fibre Channel
Fibre Channel
Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
is a high-speed network technology primarily used for storage networking. It is standardized in the Technical Committee T11 of the InterNational Committee for Information Technology Standards (INCITS).
The
QLogic Fibre Channel fabric module supports 4- and 8-
gigabit
The bit is the most basic unit of information in computing and digital communication. The name is a portmanteau of binary digit. The bit represents a logical state with one of two possible values. These values are most commonly represented as ...
speeds with the following HBAs:
* QLogic 2400 Series (QLx246x), 4GFC
* QLogic 2500 Series (QLE256x), 8GFC (fully qual'd)
The Fibre Channel fabric module and low-level driver (LLD) were released with Linux 3.5 on July 21, 2012.
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

The FireWire SBP-2 fabric module enables
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
to export local storage devices via
IEEE 1394
IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple in cooperation with a number of companies, primarily Sony a ...
, so that other systems can mount them as an ordinary IEEE 1394 storage device.
IEEE 1394 is a
serial-bus interface standard for high-speed communications and isochronous real-time data transfer. It was developed by
Apple
An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
as "FireWire" in the late 1980s and early 1990s, and
Macintosh
Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
computers have supported "FireWire target disk mode" since 1999.
The FireWire SBP-2 fabric module was released with Linux 3.5 on July 21, 2012.
[
]
iSCSI
The ''Internet Small Computer System Interface'' (iSCSI
Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
) 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 as ''Multiple Connections per Session'' (MC/S) and ''Error Recovery Levels'' 0-2 (ERL=0,1,2).
LIO supports all standard Ethernet NICs.
The iSCSI
Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
fabric module was released with Linux 3.1 on October 24, 2011.
iSER
Networks supporting remote direct memory access
In computing, remote direct memory access (RDMA) is a direct memory access from the memory of one computer into that of another without involving either one's operating system. This permits high-throughput, low- latency networking, which is especia ...
(RDMA) can use the iSCSI Extensions for RDMA (iSER) fabric module to transport iSCSI
Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
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. RDMA is supported on InfiniBand
InfiniBand (IB) is a computer networking communications standard used in high-performance computing that features very high throughput and very low latency. It is used for data interconnect both among and within computers. InfiniBand is also used ...
networks, on Ethernet with data center bridging (DCB) networks via RDMA over Converged Ethernet
RDMA over Converged Ethernet (RoCE) is a network protocol which allows remote direct memory access (RDMA) over an Ethernet network. There are multiple RoCE versions. RoCE v1 is an Ethernet link layer protocol and hence allows communication between ...
(RoCE), and on standard Ethernet networks with iWARP enhanced TCP offload engine
TCP offload engine (TOE) is a technology used in some network interface cards (NIC) to offload processing of the entire TCP/IP stack to the network controller. It is primarily used with high-speed network interfaces, such as gigabit Ethernet and ...
controllers.
The iSER fabric module was developed together by Datera and Mellanox Technologies, and first released with Linux 3.10 on June 30, 2013.
SRP
The '' SCSI 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 Mellanox host 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.
In 2012, c't
''c't'' – (; ''Magazine for Computer Technology'') is a biweekly German computer magazine, published by the Heinz Heise, Heinz Heise publishing house of Hanover.
file:Ct jubilaeum 30 turm.jpg, The 5.71 meter high tower from the 587 published ...
magazine measured almost 5000 MB/s throughput with LIO SRP Target over one Mellanox ConnectX-3 port in 56 Gbit/s FDR mode on a Sandy Bridge
Sandy Bridge is the List of Intel codenames, codename for Intel's 32 nm process, 32 nm microarchitecture used in the second generation of the Intel Core, Intel Core processors (Intel Core i7, Core i7, Intel Core i5, i5, Intel Core i3, i3). The Sa ...
PCI Express
PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a high-speed standard used to connect hardware components inside computers. It is designed to replace older expansion bus standards such as Peripher ...
3.0 system with four Fusion-IO
Fusion-io, Inc. was a computer hardware and software systems company (acquired by SanDisk Corporation in 2014) based in Cottonwood Heights, Utah, that designed and manufactured products using flash memory technology. The Fusion was marketed ...
ioDrive PCI Express flash memory cards.
USB
The ''USB Gadget'' fabric module enables Linux to export local storage devices via the Universal Serial Bus
Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
(USB), so that other systems can mount them as an ordinary storage device.
USB was designed in the mid-1990s to standardize the connection of computer peripheral
A peripheral device, or simply peripheral, is an auxiliary hardware device that a computer uses to transfer information externally. A peripheral is a hardware component that is accessible to and controlled by a computer but is not a core compo ...
s, and has also become common for data storage devices.
The USB Gadget fabric module was released with Linux 3.5 on July 21, 2012.
Targetcli
''targetcli'' is a user space single-node management ''command line interface
A command-line interface (CLI) is a means of interacting with software via commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user-friendly alternati ...
'' (CLI) for LIO. 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 in Python and consists of three main modules:
* the underlying ''rtslib'' and API.
* the ''configshell'', which encapsulates the fabric-specific attributes in corresponding 'spec' files.
* the ''targetcli'' shell itself.
Detailed instructions on how to set up LIO targets can be found on the LIO wiki.
Linux distributions
''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:
See also
* The SCST Linux SCSI target software stack
* Fibre Channel
Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
* Fibre Channel over Ethernet
Fibre Channel over Ethernet (FCoE) is a computer network technology that encapsulates Fibre Channel frames over Ethernet networks. This allows Fibre Channel to use 10 Gigabit Ethernet networks (or higher speeds) while preserving the Fibre Channel ...
(FCoE)
* IEEE 1394
IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple in cooperation with a number of companies, primarily Sony a ...
/ Firewire
* InfiniBand
InfiniBand (IB) is a computer networking communications standard used in high-performance computing that features very high throughput and very low latency. It is used for data interconnect both among and within computers. InfiniBand is also used ...
* iSCSI
Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
* iSCSI Extensions for RDMA (iSER)
* SCSI RDMA Protocol (SRP)
* USB
Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
Notes
References
External links
*
Datera
website
{{Linux kernel
SCSI
Linux
Free software programmed in C
Free software programmed in Python
Software using the GNU General Public License