The Linux-iSCSI.org Target Storage Engine has been run on a number of different Linux environments. It allows access to storage objects from the Linux/SCSI, Block and VFS subsystems. It supports advanced iSCSI features, such as MC/S and ERL=2.
Note that LIO-Target is the name for the iSCSI Fabric module that runs on top of the TCM v3.x and v4.x infrastructure. For more information on TCM see Target_Core_Mod/ConfigFS.
Also as of May 21st, lio-core-2.6.git/lio-4.0 is tagged as v4.0.0-rc1 containing the new TCM ConfigFS generic fabric module infrastructure!
As of May 21st, lio-core-2.6.git/lio-3.4 is tagged as v3.4.0 stable!
As of March 19th, lio-core-2.6.git/master is tagged as v3.4.0-rc1 and the Openfcoe fabric module has been merged!
As of March 7th, lio-core-2.6.git/lio-3.3 is tagged as v3.3.0 stable!
As of early August 2009, complete SCSI-3/SCSI-4 functionality for Persistent Reservations including APTPL=1, SPEC_I_PT=1 and PROUT SA REGISTER_AND_MOVE have been commited into lio-core-2.6.git running v2.6.31-rc5 on 32-bit x86 HVM and ppc64 architectures.
As of mid August 2009, complete SCSI-3/SCSI-4 functionality for implict and explict ALUA including all primary and secondary access states has been commited into lio-core-2.6.git running v2.6.31-rc5. The current development version is v3.1.0 and and available from lio-core-2.6.git LIO-Target#Building_Generic_Target_Engine_and_LIO-Target_v3.x.0_from_kernel.org_git
Also, v3.1.0 has been backported to lio-core-2.6.30.git and lio-core-2.6.29.git, HEAD and the lio-3.0 stable branch is available in branch origin/lio-3.0 from the the backport.
The lio-3.0 branch is available in lio-core-2.6.30.git and lio-core-2.6.29.git and lio-utils code.
For the v2.6.30 kernel released in mid June 2009, lio-utils v3.0 source has been released including a new python CLI for target_core_mod and iscsi_target_mod. The LIO modules located in drivers/target and drivers/lio-core are also available from lio-core-2.6.29.git for the kernel pieces atm, however at some point the v2.9 LINUX_VERSION wrappers can be added for running on pre v2.6.29 kernels. Also the v3.0 LIO-Target howto is now online!
For v3.0 in lio-core-2.6.git, development has been underway since early Sept 2008 to enable a generic target engine running configfs between our Linux-iSCSI.org Target (LIO-Target) Stack also running configfs.
As of the Mid October release of Linux Kernel v2.6.27, all main functionality is up using ConfigFS symbolic links between target_core_mod Storage Objects and <-> LIO-Target iSCSI Target Portal Group Port LUNs. As of Jan 2009, both Target_Core_Mod/ConfigFS and LIO-Target v3.0 are up and running on v2.6.28.
ConfigFS is now the preferred control method for all future upstream kernel work. Code from drivers/lio-core/iscsi_target_ioctl.c is being disabled and will eventually be removed once the conversion is complete. For now,the SCSI and ISCSI MIBS for SNMP will remain under procfs in /proc/scsi_target/mib/ and /proc/iscsi_target/mib/ using seq_file() respectively. These two different MIBS, SCSI and iSCSI are owned by target_core_mod and iscsi_target_mod respectively. Currently, the SCSI MIBs is only a partial implementation, but the goal will be to complete SCSI MIBs as other $FABRIC modules are ports to use target_core_mod/configfs.
As of April 2009 and Linux v2.6.29, SPC-3 compliant Persistent reservation is up and running against multiple SCSI subsystems using independent developed RFC-3720 compatible iSCSI Initiator implementations. This also includes target mode infrastructure support for implict Asymmetric Logical Unit Assignment ALUA Logical Unit and Target Port groups in /sys/kernel/config/target/core/alua/[lu_gps,tg_pt_gps] against distribution supported Linux/SCSI scsi_dh_alua.
Please see LIO-Target/ConfigFS for more information on the LIO-Target v3.0 implementation
Please see Persistent Reservations and RHEL/Linux_Persistent_Reservations for SPC-3 specific details for Linux/iSCSI Initiator client support using LIO-Target v3.0
LIO-Core and LIO-Target is one of the projects that make up the VHACS and VHACS-VM cloud. v2.9-STABLE is used in drbd_target cluster resource allocation within the VHACS environment.
The LIO-Target has also been run on Alpha, ia64, Sparc64, MIPS, 32-bit PPC, and other ARM architectures.
The LIO-Target can also export storage from a Linux Guest on hypervisor running both Linux and non-Linux hosts!
There are beta PV-OPS builds available for Ubuntu, and Stable builds for Debian Etch. Please see LIO-VM for more information.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-core-2.6.git lio-core-2.6.git
git checkout origin/lio-4.0
The v3.x.0 LIO source lives in a GIT tree (lio-core-2.6.git) that tracks the famous linux-2.6.git (Linus development tree) which becomes the next offical release for the kernel.org project. v3.x.0 LIO code for stable kernel.org releases (v2.6.x.y) are made available after Linus tags his first stable release of v2.6.x, and then (after a short break) begins the next development cycle (v2.6.x+1-rc1).
The 3.x userspace code is available from lio-utils.
To clone a source tree of your own, use:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-core-2.6.git lio-core-2.6.git
git checkout origin/lio-3.4
To clone a source tree of your own, use:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-core-2.6.git lio-core-2.6.git
git checkout origin/lio-3.3
To clone a source tree of your own, use:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-core-2.6.git lio-core-2.6.git
git checkout origin/lio-3.2
To clone a source tree of your own, use:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-core-2.6.30.git lio-core-2.6.30.git
git checkout origin/lio-3.0
and to switch back to HEAD:
git checkout origin/master
The v3.1.0 on v2.6.29.x tree is available from:
http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.29.git;a=summary
To clone a source tree of your own, use:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-core-2.6.29.git lio-core-2.6.29.git
To access the v3.0.0 branch:
git checkout origin/lio-3.0
and to switch back to HEAD:
git checkout origin/master
v2.9-STABLE current release: v2.9.0.423 (r415) for <= v2.6.28.*
This is the legacy v2.9 tree, that has been in maintence mode since 2008. It does not contain the support for Persistent Reservations, ALUA or the ConfigFS interface.
To learn how to build LIO-Target 2.9 from source for your distribution from BUILD-README