Generic SCSI Target Middle Level for Linux

The SCSI target mid-level subsystem for Linux (SCST) is a subsystem of the Linux kernel that provides a standard framework for SCSI target drivers development. It is designed to provide unified, consistent interface between SCSI target drivers and Linux kernel and simplify target drivers development as much as possible. A system with a SCSI target device is able to share its local or virtual devices with other systems on a network with SCSI protocol support, e.g. SCSI bus, SAS, Fibre Channel or iSCSI. This is commonly used for data storage virtualization.

SCST has the following features:

Interoperability between SCST and local SCSI initiators (i.e. sd, st, etc.) is the additional issue that SCST is going to address (it is not implemented yet). It is necessary, because local SCSI initiators can change the state of the device, for example RESERVE the device, or some of its parameters and that could be done behind SCST, which could lead to various problems, including data corruption. Thus, RESERVE/RELEASE commands, locally generated UNIT ATTENTIONs, etc. should be intercepted and processed as if local SCSI initiators act as remote SCSI initiators connected to SCST.

Interface between SCST and target drivers is based on work, done by University of New Hampshire Interoperability Labs (UNH IOL) for the UNH-iSCSI project, which was developed on SourceForge.net.

SCST supports the following I/O modes:

The latest stable version is 0.9.5. Requires Linux kernel 2.6.14 or higher. Tested mostly on i386 and x86_64, but should also work on any other supported by Linux platform. More detail information you could find in the SCST README file.

Starting from version 0.9.4 2.4 Linux kernels are not supported anymore. The latest stable version of SCST for 2.4 kernels is 0.9.3.1-24.

If you have any questions you can ask them via scst-devel mailing list. See main SCST SF.net page  for more info about SCST mailing lists.

Documentation: HTML, PDF, scst_user interface description
Some nice SCST call graphs, created by Ming Zhang: init_scst, scst_cmd_thread, scst_mgmt_cmd_thread, scst_mgmt_thread

The latest development version of SCST and target drivers is available directly from the project's SVN. The SCST release policy is to make stable releases once or twice a year, with the only exception if the current stable version contains a critical bug. But every commit in the SVN is carefully tested, so you can consider them as mini releases. Therefore on practice the development version in the SVN is usually more stable, than the "stable", i.e. released, one. You can access it using either web-based SVN repository viewer or using anonymous access:

svn co https://scst.svn.sourceforge.net/svnroot/scst

More information about accessing SVN repository may be found here.

History of the pre-SVN SCST development is available in SCST CVS repository, which is accessible using web-based CVS repository viewer or anonymous CVS access.

Main SCST project page on SF.net
Download released versions
Change Log


Index