In computing, Linux-IO (LIO) Target is an open-source implementation of the
SCSI target
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 that ...
that has become the standard one included in the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
. Internally, LIO does not initiate sessions, but instead provides one or more
Logical Unit Number
In computer storage, a logical unit number, or LUN, is a number used to identify a logical unit, which is a device addressed by the SCSI protocol or by Storage Area Network protocols that encapsulate SCSI, such as Fibre Channel or iSCSI.
A LUN m ...
s (LUNs), waits for SCSI commands from 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 that ...
, and performs required input/output data transfers. LIO supports common storage fabrics, including
FCoE
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 ...
,
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 servers in storage area networks (SAN) in commercial data c ...
,
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 ...
,
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/I ...
,
iSCSI Extensions for RDMA
The iSCSI Extensions for RDMA (iSER) is a computer network protocol that extends the Internet Small Computer System Interface (iSCSI) protocol to use Remote Direct Memory Access ( RDMA). RDMA is provided by either the Transmission Control Protocol ...
(iSER),
SCSI RDMA Protocol In computing the SCSI RDMA Protocol (SRP) is a protocol that allows one computer to access SCSI devices attached to another computer via remote direct memory access (RDMA).[USB
Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply ( interfacing) between computers, peripherals and other computers. A broa ...]( ...<br></span></div> (SRP) and <div class=)
. It is included in most
Linux distribution
A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading on ...
s; native support for LIO in
QEMU
QEMU is a free and open-source emulator (Quick EMUlator). It emulates the machine's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of g ...
/
KVM,
libvirt
libvirt is an open-source API, daemon and management tool for managing platform virtualization. It can be used to manage KVM, Xen, VMware ESXi, QEMU and other virtualization technologies. These APIs are widely used in the orchestration layer ...
, 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 platfo ...
makes LIO also a storage option for cloud deployments.
LIO is maintained by Datera, Inc., a
Silicon Valley
Silicon Valley is a region in Northern California that serves as a global center for high technology and innovation. Located in the southern part of the San Francisco Bay Area, it corresponds roughly to the geographical areas San Mateo Count ...
vendor of storage systems and software. On January 15, 2011, LIO SCSI target engine was merged into the
Linux kernel mainline
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU oper ...
, in kernel version 2.6.38, which was released on March 14, 2011. Additional fabric modules have been merged into subsequent Linux releases.
A competing generic SCSI target module for Linux is
SCST
SCST is a GPL licensed SCSI target software stack.
The design goals of this software stack are high performance, high reliability, strict conformance to existing SCSI standards, being easy to extend and easy to use. SCST does not only support mul ...
. For the narrower purpose providing a Linux
iSCSI target
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 ...
, the older IET ("iSCSI Enterprise Target") and STGT ("SCSI Target Framework") modules also enjoy industry support.
Background
The
SCSI
Small Computer System Interface (SCSI, ) is a set of standards for physically connecting and transferring data between computers and peripheral devices. The SCSI standards define commands, protocols, electrical, optical and logical interface ...
standard provides an extensible semantic abstraction for
computer data storage
Computer data storage is a technology consisting of computer components and recording media that are used to retain digital data. It is a core function and fundamental component of computers.
The central processing unit (CPU) of a comput ...
devices, and as such has become a "
lingua franca" for data storage systems. The SCSI T10 standards define the
commands
Command may refer to:
Computing
* Command (computing), a statement in a computer language
* COMMAND.COM, the default operating system shell and command-line interpreter for DOS
* Command key, a modifier key on Apple Macintosh computer keyboards
* ...
and protocols of the SCSI command processor (sent in ''
SCSI CDB In SCSI standards for transferring data between computers and peripheral devices, often computer storage, commands are sent in a Command Descriptor Block (CDB).
Each CDB can be a total of 6, 10, 12, or 16 bytes, but later versions of the SCSI sta ...
s''), and the electrical and optical interfaces for various implementations.
A ''SCSI initiator'' is the 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. The SCSI standards define commands, protocols, electrical, optical and logical interface ...
session. A ''
SCSI target
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 that ...
'' is the endpoint that waits for initiator commands and executes the required
I/O data transfers. The SCSI target usually exports one or more
LUN LUN or Lun may refer to:
* Logical unit number
In computer storage, a logical unit number, or LUN, is a number used to identify a logical unit, which is a device addressed by the SCSI protocol or by Storage Area Network protocols that encapsulate ...
s 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. LIO provides a highly efficient, fabric-independent and fabric-transparent abstraction for the semantics of numerous data storage device types.
Architecture

LIO implements a modular and extensible architecture around a versatile and highly efficient, parallelized SCSI command processing engine. The SCSI target engine implements the semantics of a SCSI target.
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
VMware, Inc. is an American cloud computing and virtualization technology company with headquarters in Palo Alto, California. VMware was the first commercially successful company to virtualize the x86 architecture.
VMware's desktop software ru ...
''vSphere APIs for Array Integration'' (VAAI),
T10 DIF, etc.
LIO is configurable via a
configfs Configfs is a RAM-based virtual file system provided by the 2.6 Linux kernel.
Details
Configfs appears similar to sysfs but they are in fact different and complementary. Configfs is for creating, managing and destroying kernel objects from user-spa ...
-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 narrowly restricted to physical devices on a SCSI bus, but instead provides a generalized 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 functionality for other programs or devices, called clients
Role
* Waiting staff, those who work at a restaurant or a bar attending customers and su ...
in this scenario.
Backstores
Backstores provide the SCSI target with generalized access to data storage devices by importing them via corresponding device drivers. Backstores don't need to be physical SCSI devices.
The most important backstore media types are:
* Block: The block driver allows using raw Linux block devices as backstores for export via LIO. This includes physical devices, such as
HDDs,
SSD
A solid-state drive (SSD) is a solid-state storage device that uses integrated circuit assemblies to store data persistently, typically using flash memory, and functioning as secondary storage in the hierarchy of computer storage. It is ...
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 kin ...
s,
RAM disk
Ram, ram, or RAM may refer to:
Animals
* A male sheep
* Ram cichlid, a freshwater tropical fish
People
* Ram (given name)
* Ram (surname)
* Ram (director) (Ramsubramaniam), an Indian Tamil film director
* RAM (musician) (born 1974), Dutch
* ...
s, etc., and logical devices, such as software or hardware
RAID
Raid, RAID or Raids may refer to:
Attack
* Raid (military), a sudden attack behind the enemy's lines without the intention of holding ground
* Corporate raid, a type of hostile takeover in business
* Panty raid, a prankish raid by male colleg ...
volumes or
LVM volumes.
* File: The file driver allows using files that can reside in any Linux
file system
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one lar ...
or
clustered file system
A clustered file system is a file system which is shared by being simultaneously mounted on multiple servers. There are several approaches to clustering, most of which do not employ a clustered file system (only direct attached storage for ...
as backstores for export via LIO.
* Raw: The raw driver allows using unstructured memory as backstores for export via LIO.
As a result, LIO provides a generalized model to export block storage.
Fabric modules
Fabric modules implement the frontend 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 Channe ...
'' (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 servers in storage area networks (SAN) in commercial data c ...
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., commonly known as Cisco, is an American-based multinational corporation, multinational digital communications technology conglomerate (company), conglomerate corporation headquartered in San Jose, California. Cisco develo ...
and
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the devel ...
, 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 servers in storage area networks (SAN) in commercial data c ...
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 communications. 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 represent ...
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 ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
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 ...
, 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 an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ances ...
as "FireWire" in the late 1980s and early 1990s, and
Macintosh
The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
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/I ...
) 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 to 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/I ...
fabric module was released with Linux 3.1 on October 24, 2011.
iSER
Networks supporting remote direct memory access (RDMA) can use the iSCSI Extensions for RDMA
The iSCSI Extensions for RDMA (iSER) is a computer network protocol that extends the Internet Small Computer System Interface (iSCSI) protocol to use Remote Direct Memory Access ( RDMA). RDMA is provided by either the Transmission Control Protocol ...
(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/I ...
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 us ...
networks, on Ethernet with data center bridging
Data center bridging (DCB) is a set of enhancements to the Ethernet local area network communication protocol for use in data center environments, in particular for use with clustering and storage area networks.
Motivation
Ethernet is the primar ...
(DCB) networks via RDMA over Converged Ethernet
RDMA over Converged Ethernet (RoCE) or InfiniBand over Ethernet (IBoE) is a network protocol that allows remote direct memory access (RDMA) over an Ethernet network. It does this by encapsulating an InfiniBand (IB) transport packet over Ethernet. ...
(RoCE), and on standard Ethernet networks with iWARP
iWARP is a computer networking protocol that implements remote direct memory access (RDMA) for efficient data transfer over Internet Protocol networks. Contrary to some accounts, iWARP is not an acronym.
Because iWARP is layered on Internet E ...
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 1 ...
controllers.
The iSER fabric module was developed together by Datera and Mellanox Technologies
Mellanox Technologies Ltd. ( he, מלאנוקס טכנולוגיות בע"מ) was an Israeli-American multinational supplier of computer networking products based on InfiniBand and Ethernet technology. Mellanox offered adapters, switches, softwa ...
, and first released with Linux 3.10 on June 30, 2013.
SRP
The ''SCSI RDMA Protocol In computing the SCSI RDMA Protocol (SRP) is a protocol that allows one computer to access SCSI devices attached to another computer via remote direct memory access (RDMA).[host channel adapter
In computer hardware, a host controller, host adapter, or host bus adapter (HBA), connects a computer system bus, which acts as the host system, to other network and storage devices. The terms are primarily used to refer to devices for con ...]( ...<br></span></div>'' (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 <div class=)
s (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 German computer magazine, published by the Heinz Heise publishing house.
The 5.71 meter high tower from the 587 published c't editions up to the 30th anniversary has been in the foyer ...
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 codename for Intel's 32 nm microarchitecture used in the second generation of the Intel Core processors ( Core i7, i5, i3). The Sandy Bridge microarchitecture is the successor to Nehalem and Westmere microarchitecture ...
PCI Express
PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe or PCI-e, is a high-speed serial computer expansion bus standard, designed to replace the older PCI, PCI-X and AGP bus standards. It is the common m ...
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 that establishes specifications for cables, connectors and protocols for connection, communication and power supply ( interfacing) between computers, peripherals and other computers. A broa ...
(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 or peripheral device is an auxiliary device used to put information into and get information out of a computer. The term ''peripheral device'' refers to all hardware components that are attached to a computer and are controlled by th ...
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 interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
'' (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 over the most popular ones, together with the initial inclusion dates:
See also
* The SCST
SCST is a GPL licensed SCSI target software stack.
The design goals of this software stack are high performance, high reliability, strict conformance to existing SCSI standards, being easy to extend and easy to use. SCST does not only support mul ...
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 servers in storage area networks (SAN) in commercial data c ...
* 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 Channe ...
(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 ...
/ 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 us ...
* 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/I ...
* iSCSI Extensions for RDMA
The iSCSI Extensions for RDMA (iSER) is a computer network protocol that extends the Internet Small Computer System Interface (iSCSI) protocol to use Remote Direct Memory Access ( RDMA). RDMA is provided by either the Transmission Control Protocol ...
(iSER)
* SCSI RDMA Protocol In computing the SCSI RDMA Protocol (SRP) is a protocol that allows one computer to access SCSI devices attached to another computer via remote direct memory access (RDMA).[USB
Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply ( interfacing) between computers, peripherals and other computers. A broa ...]( ...<br></span></div> (SRP)
* <div class=)
Notes
References
External links
*
Datera
website
{{Linux kernel
SCSI
Linux
Free software