mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-23 13:41:27 +00:00
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@52 d57e44dd-8a1f-0410-8b47-8ef2f437770f
272 lines
12 KiB
HTML
272 lines
12 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type"
|
|
content="text/html; charset=ISO-8859-1">
|
|
<title>SCST: Generic SCSI Target Middle Level for Linux</title>
|
|
<meta name="Keywords"
|
|
content="SCST, Linux, SCSI target, Qlogic, QLA2200, QLA2300, iSCSI, SCSI">
|
|
</head>
|
|
<body>
|
|
<a href="http://sourceforge.net"> <img
|
|
src="http://sourceforge.net/sflogo.php?group_id=110471&type=5"
|
|
alt="SourceForge.net Logo" border="0" height="62" width="210"></a>
|
|
<h1><small>Generic SCSI Target Middle Level for Linux</small><br>
|
|
</h1>
|
|
<p style="text-align: justify;">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, Fibre Channel, TCP/IP with iSCSI. This is
|
|
commonly used for data storage virtualization.<br>
|
|
</p>
|
|
<p style="text-align: justify;">SCST has the following features:</p>
|
|
<div style="text-align: justify;">
|
|
</div>
|
|
<p style="text-align: justify;">
|
|
</p>
|
|
<div style="text-align: justify;">
|
|
</div>
|
|
<ul style="text-align: justify;">
|
|
<li>Simple, easy to use interface with target drivers. Particularly,
|
|
SCST performs all required pre- and post- processing of incoming
|
|
requests and all necessary error recovery.</li>
|
|
<li>Undertakes most problems, related to execution contexts, thus
|
|
practically eliminating one of the most complicated problem in the
|
|
kernel drivers development. For example, a target driver for Qlogic
|
|
2200/2300 cards, which has all necessary features, is only ~2000 lines
|
|
of code long.</li>
|
|
<li> Very low overhead, fine-grained locks and simplest commands
|
|
processing path, which allow to reach maximum possible performance and
|
|
scalability. Particularly, incoming
|
|
requests can be processed in the caller's context or in
|
|
one of the internal SCST's tasklets, therefore no extra context
|
|
switches
|
|
required.</li>
|
|
<li>Provides advanced per-initiator device visibility management (LUN
|
|
masking),
|
|
which allows different initiators see different set of devices
|
|
with different access permissions. For instance, initiator A could see
|
|
exported from
|
|
target T devices Da and Db read-writable, and initiator B from the same
|
|
target T could see devices Db read-only and Dc read-writable.<br>
|
|
</li>
|
|
<li> Complete SMP support.<br>
|
|
</li>
|
|
<li> Emulates necessary functionality of SCSI host adapter, because
|
|
from a remote initiator's point of view SCST acts as a SCSI host with
|
|
its
|
|
own devices. Some of the emulated functions are the following:
|
|
<ul>
|
|
<li> Generation of necessary UNIT ATTENTIONs, their storage and
|
|
delivery to all connected remote initiators (sessions). </li>
|
|
<li> RESERVE/RELEASE functionality. </li>
|
|
<li> CA/ACA conditions (not implemented yet). </li>
|
|
<li> All types of RESETs and other task management functions. </li>
|
|
<li> REPORT LUNS command as well as SCSI address space management
|
|
in order to have consistent address space on all remote initiators,
|
|
since local SCSI devices could not know about each other to report
|
|
via REPORT LUNS command. Additionally, SCST responds with error on
|
|
all commands to non-existing devices and provides access control, so
|
|
different remote initiators could see
|
|
different set of devices. </li>
|
|
<li> Other necessary functionality (task attributes, etc.) as
|
|
specified in SAM-2, SPC-2, SAM-3, SPC-3 and other SCSI standards. </li>
|
|
</ul>
|
|
</li>
|
|
<li> Device handlers (i.e. plugins) architecture provides extra
|
|
flexibility by allowing to make any additional
|
|
requests processing, which is completely independent from target
|
|
drivers and SCST core, like, for instance, device dependent exceptional
|
|
conditions treatment, data caching or passing commands in the user
|
|
space for device emulation. Example of such plugin is FILEIO device
|
|
handler (see below) .<br>
|
|
</li>
|
|
<li>Well documented.<br>
|
|
</li>
|
|
</ul>
|
|
<div style="text-align: justify;">
|
|
</div>
|
|
<p style="text-align: justify;">Interoperability between SCST and local
|
|
SCSI initiators (like sd, st) 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 would be done behind SCST, which could lead
|
|
to various problems. 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. This
|
|
feature requires some the kernel modification. Since in the current
|
|
version it is not implemented, SCST and target drivers are
|
|
able to work with any version of Linux 2.6 kernel.<br>
|
|
</p>
|
|
<p style="text-align: justify;">Interface between SCST and target
|
|
drivers is based on work, done by <a href="http://www.iol.unh.edu/">University
|
|
of New Hampshire Interoperability Labs (UNH IOL)</a> for the <a
|
|
href="http://www.iol.unh.edu/consortiums/iscsi/index.html">UNH-iSCSI
|
|
project</a>, which is currently developed on <a
|
|
href="http://unh-iscsi.sourceforge.net/">SourceForge.net</a>.<br>
|
|
</p>
|
|
<p style="text-align: justify;">The latest stable version is 0.9.5. It
|
|
supports SCSI disks (type 0), tapes (type 1), processors (type
|
|
3), CDROMs (type 5), MO disks (type 7), medium changers (type 8) and
|
|
RAID controllers (type 0xC). Also it supports FILEIO and "performance"
|
|
device handlers. FILEIO device handler allows to use files on file
|
|
systems or block devices as virtual remotely available SCSI disks or
|
|
CDROMs. "Performance" device handlers provide a way for direct
|
|
performance measurements without overhead of actual data transferring
|
|
from/to underlying SCSI device. 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 project's README file.<br>
|
|
</p>
|
|
<p style="text-align: justify;">Starting from version 0.9.4 2.4 Linux
|
|
kernels are not supported anymore, although there could be new SCST
|
|
releases for those kernels with very important bug fixes. The latest
|
|
stable
|
|
version of SCST with 2.4 kernels support is 0.9.3.1-24.</p>
|
|
<p style="text-align: justify;">If you have any questions you can ask
|
|
them on the SCST SF.net page either using forum, or scst-devel mailing
|
|
list.<br>
|
|
</p>
|
|
<a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br>
|
|
<a href="http://www.sourceforge.net/projects/scst">SCST SF.net project
|
|
page</a><br>
|
|
<a href="ChangeLog.scst">Change Log</a><br>
|
|
Documentation: <a href="doc/scst_pg.html">HTML</a>, <a
|
|
href="doc/scst_pg.pdf">PDF</a><br>
|
|
<p>The latest development versions of SCST and its drivers are
|
|
available directly from the
|
|
project's SVN. You can access it using either <a
|
|
href="http://svn.sourceforge.net/scst">web-based SVN
|
|
repository viewer</a> or using anonymous access: </p>
|
|
<p> <tt> svn co https://svn.sourceforge.net/svnroot/scst<br>
|
|
</tt></p>
|
|
<p>More information about accessing SVN repository may be found <a
|
|
href="http://sourceforge.net/docs/E09">here</a>.<br>
|
|
</p>
|
|
<p>History of the pre-SVN SCST development is available in SCST CVS
|
|
repository, which is accessible using <a
|
|
href="http://cvs.sourceforge.net/viewcvs.py/scst">web-based CVS
|
|
repository viewer</a> or anonymous CVS access.<br>
|
|
</p>
|
|
<hr
|
|
style="width: 100%; height: 2px; margin-left: 0px; margin-right: 0px;">
|
|
<h1><small>SCST administration utility<br>
|
|
</small></h1>
|
|
<p>SCST administration utility "scstadmin" is developed by Mark
|
|
Buechler. With it you can manually or automatically using either plain
|
|
text config file, or MySQL database configure every aspect of SCST, for
|
|
instance as part of the system startup/shutdown, including
|
|
enabling/disabling target mode on your target SCSI controller.<br>
|
|
</p>
|
|
<p><a
|
|
href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a>
|
|
</p>
|
|
<hr
|
|
style="width: 100%; height: 2px; margin-left: 0px; margin-right: 0px;">
|
|
<h1><small>Target driver for Qlogic 2200/2300 cards for 2.6 kernels<br>
|
|
</small></h1>
|
|
<div style="text-align: justify;">
|
|
<p>This is ported and improved version of the "old" target driver for
|
|
2.4 kernels (see below) to the in-tree 2.6
|
|
Qlogic 2x00 initiator
|
|
driver. The port was done by Nathaniel Clark. This is stable and
|
|
functional driver with
|
|
the larger feature set, than the parent driver has.</p>
|
|
<p style="text-align: justify;">The latest version is 0.9.5. Requires
|
|
Linux kernel version 2.6.16.x or higher and SCST version 0.9.5 or
|
|
higher.
|
|
Tested mostly on i386 and
|
|
x86_64, but
|
|
should work on any other supported by Linux platform.
|
|
</p>
|
|
<p style="text-align: justify;">You can find the latest development
|
|
version of this driver in the SCST SVN. See above how to setup access
|
|
to it.<br>
|
|
</p>
|
|
<p style="text-align: justify;"><a
|
|
href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br>
|
|
<a href="ChangeLog.qla26">Change Log</a><br>
|
|
</p>
|
|
</div>
|
|
<hr style="width: 100%; height: 2px;">
|
|
<h1><small>Target driver for LSI/MPT cards</small></h1>
|
|
Target driver LSI/MPT cards was originally developed by Hu Gang, then
|
|
Erik Habbinga has continued the development. This driver is on the
|
|
alpha stage and available from the <a
|
|
href="http://svn.sourceforge.net/scst">SCST SVN repository</a>. See
|
|
above how to setup access to it.<br>
|
|
<br>
|
|
<hr style="width: 100%; height: 2px;">
|
|
<h1><small>Old target driver for Qlogic 2200/2300 cards<br>
|
|
</small></h1>
|
|
<div style="text-align: justify;">Old target driver for Qlogic
|
|
2200/2300
|
|
cards is capable to work on 2.4 kernels. It has all required features
|
|
and
|
|
looks to be quite stable. It is designed to work in conjunction with
|
|
the initiator
|
|
driver, which is intended to perform all the initialization and
|
|
shutdown tasks. In the current release as a base for the initiator
|
|
driver was taken Red Hat's driver from the stock 2.4.20 kernel. Then it
|
|
was patched to enable the target mode and provide all
|
|
necessary callbacks, and it's still able to work as initiator only.
|
|
Mode, when a host acts as the initiator and the target simultaneously,
|
|
is also supported. This driver is obsoleted in favor of
|
|
2.6-based driver (see above).<br>
|
|
<br>
|
|
The latest version is 0.9.3.4. Requires Linux kernel versions 2.4.20 or
|
|
higher and SCST version 0.9.3-pre4 or higher. If you are lucky, it
|
|
works also on 2.6 kernels, see README file
|
|
for details. Tested on i386 only, but
|
|
should work on any other supported by Linux platform.<br>
|
|
<br>
|
|
</div>
|
|
<a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br>
|
|
<a href="ChangeLog.qla">Change Log</a>
|
|
<hr style="width: 100%; height: 2px;"><span style="font-weight: bold;"></span>
|
|
<h1><small>Target drivers for Adaptec 7xxx and Qlogic QLA12xx
|
|
cards</small></h1>
|
|
Target drivers for Adaptec 7xxx and Qlogic QLA12xx cards have
|
|
been developed by Hu Gang and they available for download from <a
|
|
href="http://bj.soulinfo.com/%7Ehugang/scst/tgt/">http://bj.soulinfo.com/~hugang/scst/tgt/</a>.
|
|
These drivers are not completed, but looks to be a good starting point
|
|
if you are going to use one of these cards.
|
|
SCST team don't have the appropriate hardware, therefore have not
|
|
tested and don't support these drivers. Send all questions to Hu Gang
|
|
<hugang
|
|
% soulinfo.com>. If some of these drivers don't compile for you, try
|
|
again with SCST version 0.9.3-pre2.<br>
|
|
<br>
|
|
<a href="http://bj.soulinfo.com/%7Ehugang/scst/tgt/">Download</a><br>
|
|
<br>
|
|
<hr style="width: 100%; height: 2px;">
|
|
<h1><small>Patches for UNH-iSCSI Target 1.5.03 and 1.6.00 to work over
|
|
SCST</small></h1>
|
|
SCST is much more advanced, than the internal mid-level of <a
|
|
href="http://sourceforge.net/projects/unh-iscsi">UNH-iSCSI target
|
|
driver</a>.
|
|
With SCST the iSCSI target benefits from all its features and gets
|
|
ability to use all its advantages, like high performance and
|
|
scalability, SMP support, required SCSI functionality emulation, etc.<br>
|
|
<br>
|
|
Since the interface between SCST and the target drivers is based on
|
|
work, done by UNH IOL, it was relatively simple to update UNH-iSCSI
|
|
target to work over SCST. Mostly it was "search and replace" job. The
|
|
built-in scsi_target remains available as a compile-time option.<br>
|
|
<br>
|
|
Requires Linux kernel versions 2.4.20 or
|
|
higher or 2.6.7 or higher and SCST version 0.9.2 or higher.<br>
|
|
<br>
|
|
<a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br>
|
|
<br>
|
|
</body>
|
|
</html>
|