Web pages updated

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@247 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Vladislav Bolkhovitin
2008-01-23 16:03:20 +00:00
parent 1964293ff1
commit 87013ddcde
8 changed files with 576 additions and 432 deletions

15
www/index.html Normal file
View File

@@ -0,0 +1,15 @@
<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>
<frameset rows=* cols=25%,*>
<frame src="menu.html" />
<frame src="main.html" name="showframe" />
</frameset>
</HTML>

199
www/main.html Normal file
View File

@@ -0,0 +1,199 @@
<!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>
<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, SAS, Fibre Channel or 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. <br>
</li>
<li>Device handlers, i.e. plugins, architecture provides extra
flexibility by allowing various I/O modes in backstorage handling. For
example, pass-through device handlers allows to use real SCSI hardware
and vdisk device
handler allows to use files as virtual disks.</li>
<li>Provides advanced per-initiator device visibility management (LUN
masking),
which allows different initiators to 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> Emulates necessary functionality of SCSI host adapter, because
from remote initiators point of view SCST acts as a SCSI host with
its
own devices. This is especially important in pass-through mode with one
to many relationship, i.e. when
multiple initiators can connect to the exported pass-through devices.
You can find more deep elaboration why it is needed in&nbsp;<a
href="http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg06911.html">this</a>
message in linux-scsi mailing list. Some of the emulated functions are
the following:
<ul>
<li> Generation of necessary UNIT ATTENTIONs, their storage and
delivery to all connected remote initiators. </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> Multithreaded design and complete SMP support, so all your
processors will participate in the commands processing.<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 (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.<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 was developed on <a
href="http://unh-iscsi.sourceforge.net/">SourceForge.net</a>.<br>
</p>
<p style="text-align: justify;">SCST supports the following I/O modes:<br>
</p>
<ul>
<li>Pass-through mode with one to many relationship, i.e. when
multiple initiators can connect to the exported pass-through devices,
for virtually all SCSI devices types: 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)</li>
<li>FILEIO mode, which allows to use files on file
systems or block devices as virtual remotely available SCSI disks or
CDROMs with benefits of the Linux page cache<br>
</li>
<li>BLOCKIO mode, which performs direct block IO with a block device,
bypassing page-cache for all operations. This mode works ideally with
high-end storage HBAs and for applications that either do not need
caching between application and disk or need the large block throughput.</li>
<li>User space mode using scst_user device handler, which allows to
implement in the user space virtual SCSI devices in the SCST environment<br>
</li>
<li>"Performance" device handlers, which provide in pseudo
pass-through mode a way for direct
performance measurements without overhead of actual data transferring
from/to underlying SCSI device<br>
</li>
</ul>
<p style="text-align: justify;">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.
</p>
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.
<p style="text-align: justify;">If you have any questions you can ask
them via&nbsp;<a
href="http://sourceforge.net/mailarchive/forum.php?forum_name=scst-devel">scst-devel
mailing list</a> or <a
href="http://sourceforge.net/forum/forum.php?forum_id=378683">forum</a>.
See main SCST page on SF.net for more info how to subscribe on
scst-devel mailing list.
</p>
Documentation: <a href="doc/scst_pg.html">HTML</a>,
<a href="doc/scst_pg.pdf">PDF</a>, <a href="doc/scst_user_spec.txt">scst_user
interface description</a><br>
Some nice SCST call graphs, created by Ming Zhang: <a
href="doc/init_scst.png">init_scst</a>, <a
href="doc/scst_cmd_thread.png">scst_cmd_thread</a>, <a
href="doc/scst_mgmt_cmd_thread.png">scst_mgmt_cmd_thread</a>, <a
href="doc/scst_mgmt_thread.png">scst_mgmt_thread</a><br>
<p>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 <a href="http://scst.svn.sourceforge.net/">web-based SVN
repository viewer</a> or using anonymous access: </p>
<p> <tt> svn co https://scst.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>
<p><a href="http://www.sourceforge.net/projects/scst">Main SCST project
page on </a><a href="http://www.sourceforge.net/projects/scst">SF.net</a><br>
<a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download
released versions</a><br>
<a href="ChangeLog.scst">Change Log</a><br>
<br>
</p>
</body>
</html>

34
www/menu.html Normal file
View File

@@ -0,0 +1,34 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>SCST menu</title>
</head>
<body>
<a href="http://sourceforge.net"> <img
src="http://sourceforge.net/sflogo.php?group_id=110471&amp;type=5"
alt="SourceForge.net Logo" border="0" height="62" width="210"></a>
<br>
<br>
<a href="main.html" target="showframe">Home</a><br>
<a href="scstadmin.html" target="showframe">SCST admin</a><br>
<a href="targets.html#iscsi-scst" target="showframe">iSCSI-SCST</a><br>
<a href="targets.html#qla2x00" target="showframe">Target driver for
QLogic
2200/2300 cards</a><br>
<a href="targets.html#qla_isp" target="showframe">Target driver for
QLogic ISP
chipsets</a><br>
<a href="targets.html#srpt" target="showframe">SCSI RDMA Protocol (SRP)
Target driver</a><br>
<a href="targets.html#lsi" target="showframe">Target driver for LSI/MPT
cards</a><br>
<a href="old-targets.html" target="showframe">Old unsupported target
drivers</a><br>
<hr style="width: 100%; height: 2px;"><a href="scst-stgt.html"
target="showframe">SCST vs
STGT</a><br>
<br>
</body>
</html>

81
www/old-targets.html Normal file
View File

@@ -0,0 +1,81 @@
<!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>
<h1><small>Old target driver for QLogic 2200/2300 cards for 2.4 kernels<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.<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>
Currently it is not supported and listed here for historical reasons
only.<br>
<br>
</div>
<a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br>
<a href="ChangeLog.qla">Change Log</a><br>
<br>
<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
&lt;hugang
% soulinfo.com&gt;. 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>
Currently it is not supported and listed here for historical reasons
only.<br>
<br>
<a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br>
<br>
</body>
</html>

50
www/scst-stgt.html Normal file
View File

@@ -0,0 +1,50 @@
<!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://stgt.berlios.de/">STGT</a> is alternative, independent
from SCST implementation of SCSI target framework for Linux. It has
different architecture, where SCSI target state machine is placed in
the user space, while in SCST all the processing done in the kernel.
Such architecture was acknowledged as a "right" one by the Linux SCSI
subsystem maintainers, so kernel's part of STGT quickly found its way
to the kernel. But such architecture has two inherent problems, namely
performance and complexity. See this thread: <a
href="http://sourceforge.net/mailarchive/forum.php?thread_name=472F7FA4.7040303%40wpkg.org&amp;forum_name=scst-devel">http://sourceforge.net/mailarchive/forum.php?thread_name=472F7FA4.7040303%40wpkg.org&amp;forum_name=scst-devel</a>
and this message:&nbsp; <a
href="http://thread.gmane.org/gmane.linux.scsi/36417/focus=37273">http://thread.gmane.org/gmane.linux.scsi/36417/focus=37273</a>
for more details.<br>
<br>
See also the following important discussions:<br>
<ul>
<li><a
href="http://news.gmane.org/find-root.php?message_id=%3c43987F75.2000301%40vlnb.net%3e">http://news.gmane.org/find-root.php?message_id=%3c43987F75.2000301%40vlnb.net%3e</a>,
especially pay attention to this message: <a
href="http://article.gmane.org/gmane.linux.scsi/21073">http://article.gmane.org/gmane.linux.scsi/21073</a>
for motivation behind considering STGT's architecture "right".</li>
<li><a
href="http://news.gmane.org/find-root.php?message_id=%3c463F36AC.3010207%40vlnb.net%3e">http://news.gmane.org/find-root.php?message_id=%3c463F36AC.3010207%40vlnb.net%3e</a></li>
<li><a
href="http://news.gmane.org/find-root.php?message_id=%3ce2e108260801170127w2937b2afg9bef324efa945e43%40mail.gmail.com%3e">http://news.gmane.org/find-root.php?message_id=%3ce2e108260801170127w2937b2afg9bef324efa945e43%40mail.gmail.com%3e</a>
for performance comparison.<br>
</li>
</ul>
Also you shouldn't be deceived by the fact
that some (small) part of STGT was accepted in the kernel. It doesn't
mean that STGT has the "kernel quality". In fact, STGT as a whole
similarly to any other out-of-tree project lives on its own, hence has
its own quality level, which isn't necessary better, than the quality
level of SCST. Actually, from such important aspect of quality as
simplicity, it might be quite contrary: e.g. SCST isn't required to
support HIGHMEM (nowadays it isn't necessary, but required for all
in-kernel components), which allowed to simplify memory management a
lot.<br>
<br>
</body>
</html>

View File

@@ -1,432 +0,0 @@
<!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&amp;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> Emulates necessary functionality of SCSI host adapter, because
from remote initiators point of view SCST acts as a SCSI host with
its
own devices. This is especially important in pass-through mode with one
to many relationship, i.e. when
multiple initiators can connect to the exported pass-through devices.
You can find more deep elaboration why it is needed in&nbsp;<a
href="http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg06911.html">this</a>
message in linux-scsi mailing list. Some of the emulated functions are
the following:
<ul>
<li> Generation of necessary UNIT ATTENTIONs, their storage and
delivery to all connected remote initiators. </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> Complete SMP support.<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 (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.<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;">SCST supports the following I/O modes:<br>
</p>
<ul>
<li>Pass-through mode with one to many relationship, i.e. when
multiple initiators can connect to the exported pass-through devices,
for virtually all SCSI devices types: 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)</li>
<li>FILEIO mode, which allows to use files on file
systems or block devices as virtual remotely available SCSI disks or
CDROMs with benefits of the Linux page cache<br>
</li>
<li>BLOCKIO mode, which performs direct block IO with a block device,
bypassing page-cache for all operations. This mode works ideally with
high-end storage HBAs and for applications that either do not need
caching between application and disk or need the large block throughput.</li>
<li>User space mode using scst_user device handler, which allows to
implement in the user space virtual SCSI devices in the SCST environment<br>
</li>
<li>"Performance" device handlers, which provide in pseudo
pass-through mode a way for direct
performance measurements without overhead of actual data transferring
from/to underlying SCSI device<br>
</li>
</ul>
<p style="text-align: justify;">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 project's README file.
</p>
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.
<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>, <a href="doc/scst_user_spec.txt">scst_user
interface description</a><br>
Some nice SCST call graphs, created by Ming Zhang: <a
href="doc/init_scst.png">init_scst</a>, <a
href="doc/scst_cmd_thread.png">scst_cmd_thread</a>, <a
href="doc/scst_mgmt_cmd_thread.png">scst_mgmt_cmd_thread</a>, <a
href="doc/scst_mgmt_thread.png">scst_mgmt_thread</a><br>
<p>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
twice a year, with the only exception if the current stable version
contains a critical bug. Therefore on practice the development version
in the SVN
is usually more stable, than the "stable" one. 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://scst.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>ISCSI target driver iSCSI-SCST<br>
</small></h1>
<div style="text-align: justify;">
<p>ISCSI-SCST is a forked (with all respects) version of <a
href="http://iscsitarget.sourceforge.net/">IET</a> with
updates to work over SCST as well as with many improvements and
bugfixes. The reason of fork is that the necessary changes are
intrusive and with the current IET merge policy, where only simple
bugfix-like patches, which doesn't touch the core code, could be
merged, it is very unlikely that they will be merged in the main IET
trunk.<br>
</p>
<p>ISCSI-SCST has the following major advantages over the mainline IET:<br>
</p>
<ul>
<li>It uses full SCST power without loosing any existing feature
(except, maybe, "illegal" from SCSI specifications point of view MPIO).
Namely, you can use with it:</li>
</ul>
<ul style="list-style-type: circle; margin-left: 40px;">
<li>Pass-through mode with one to many relationship, i.e. when
multiple initiators can connect to the exported pass-through devices
(see above). For instance, you can safely export your parallel SCSI
tape or tape library on your iSCSI net and multiple initiators can
share it without risk of data loss because of the shared usage.
Existing "rawio" patch for IET supports only non-enforced 1:1
relationship, so it is unsafe to use it in multiple initiators
environments.<br>
</li>
<li>More advances devices visibility management, when different
initiators can see different set of devices with different access
permissions from the same target.</li>
<li>O_DIRECT, i.e. "BLOCKIO on files", mode, which has all advantages
of BLOCKIO, but also supports files on file systems. Sometimes, in the
appropriate cases, this mode can make performance difference in 100% or
even more.</li>
<li>With 4KB blocks you can forget about abysmal write performance
caused by misaligned partitions. All modern OS'es, including Windows
starting from, at least, Windows 2000, work perfectly with 4KB block
devices without any additional storage or handling overhead.</li>
<li>Virtual CD/DVD-ROMs without necessity for manual patching.</li>
<li>Ability to create target devices emulators in the user space.</li>
<li>Ability to create multi-transport SCSI targets, which can export
(possibly, the same) devices over multiple transports.</li>
</ul>
<ul>
<li>It has many code improvements and cleanups, including stability
and iSCSI RFC violations fixes. If you are an IET user and consider IET
problemless, I'm sorry for the bad news. IET works well only on "fast"
paths and regularly used branches, in many other less used cases IET
has various problems, from simply ignoring error processing, as it is
with memory allocations, to crashing itself with BUG() macro, as it is
for malformed packets from initiators. ChangeLog file lists most
noticeable fixes, but there were a lot of many other smaller ones.</li>
</ul>
<ul>
<li>Due to its reworked IO architecture and SCST backend iSCSI-SCST
has better performance in many cases. In future with upcoming SCST
improvements, like zero-copy with Linux cache FILEIO, the performance
difference is going to be even bigger. Currently in tests from a single
initiator over a single connection on 1GbE hardware over FILEIO vdisk
iSCSI-SCST with default settings usually outperforms tuned IET a on
3-10% (by default IET has not too good settings, so it shows
considerably worse results) or has the similar performance. The bigger
difference is expected with 10GbE hardware or with higher number of
initiators, since iSCSI-SCST has less commands processing overhead per
command, hence put less load on CPU. If you find a case where
iSCSI-SCST has worse performance, than IET, please report it to SCST
mailing list scst-devel@lists.sourceforge.net, it will be greatly
appreciated.</li>
</ul>
<p>Also, in contrast to IET, iSCSI-SCST is open for any new
development, modifications and improvements, so people who want to fix
or implement something new will not have to keep and maintain separate
patches as it is currently necessary with IET. ISCSI-SCST is going to
be actively developed and gain in the future new features like support
for multiple connections per session, error recovery levels &gt;0,
etc., which eventually make it really "enterprise".<br>
</p>
<p>ISCSI-SCST is available for download from the <a
href="http://svn.sourceforge.net/scst">SCST SVN repository</a>. See
above how to setup access to it.<br>
</p>
<p>After some testing for month-two, iSCSI-SCST is going to be fully
released.<br>
</p>
<p>If you are an IET user, please, before installation carefully read
README files of both iSCSI-SCST and the SCST core. Especially pay
attention that now the LUN information for iSCSI-SCST is configured not
using iscsi-scstd.conf file in /etc, but using corresponding SCST
facilities. This is because now the responsibilities are divided (as it
should be) between the target driver (iSCSI-SCST) and the SCST core.
The target driver is responsible for handling targets and their
parameters, SCST core is responsible for handling backstorage.<br>
</p>
</div>
<hr
style="width: 100%; height: 2px; margin-left: 0px; margin-right: 0px;">
<h1><small>Target driver for QLogic 2200/2300 cards<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 for download 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>SCSI RDMA Protocol (SRP) Target driver</small></h1>
SCSI RDMA Protocol (SRP) Target driver is developed
independently from SCST team. You can find instructions how to download
and install it on this page: <a
href="http://lists.openfabrics.org/pipermail/iwg/2007-March/000378.html">http://lists.openfabrics.org/pipermail/iwg/2007-March/000378.html</a><br>
<br>
<hr style="width: 100%; height: 2px;">
<h1><small>Target driver for QLogic ISP chipsets<br>
</small></h1>
This is target driver for ISP QLogic chipsets commonly used in many
SCSI and FC host bus adapters. Supported chipsets are listed in README
file, incomplete list of supported HBA's is in doc/Hardware.txt. It is
based on Matthew Jacob's multiplatform driver for ISP chipsets, which
can be downloaded from <a
href="ftp://ftp.feral.com/pub/isp/isp_dist.tgz">ftp://ftp.feral.com/pub/isp/isp_dist.tgz</a>.
The update for SCST was made and supported by Stanislaw Gruszka.<br>
<br>
One major difference of this driver from the above target driver for
QLogic 2200/2300 cards is that it supports 24xx series of chipsets.<br>
<br>
This driver is unstable and on the
alpha stage. It is available for download 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 for 2.4 kernels<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>
Currently it is not supported and listed here for historical reasons
only.<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
&lt;hugang
% soulinfo.com&gt;. 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>
Currently it is not supported and listed here for historical reasons
only.<br>
<br>
<a href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download</a><br>
<br>
</body>
</html>

26
www/scstadmin.html Normal file
View File

@@ -0,0 +1,26 @@
<!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"> </a>
<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
released versions</a><br>
<br>
</p>
</body>
</html>

171
www/targets.html Normal file
View File

@@ -0,0 +1,171 @@
<!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>
<h1><small><a name="iscsi-scst"></a>ISCSI target driver iSCSI-SCST<br>
</small></h1>
<div style="text-align: justify;">
<p>ISCSI-SCST is a forked (with all respects) version of <a
href="http://iscsitarget.sourceforge.net/">IET</a> with
updates to work over SCST as well as with many improvements and
bugfixes. The reason of fork is that the necessary changes are
intrusive and with the current IET merge policy, where only simple
bugfix-like patches, which doesn't touch the core code, could be
merged, it is very unlikely that they will be merged in the main IET
trunk.<br>
</p>
<p>ISCSI-SCST has the following major advantages over the mainline IET:<br>
</p>
<ul>
<li>It uses full SCST power without loosing any existing feature
(except, maybe, "illegal" from SCSI specifications point of view MPIO).
Namely, you can use with it:</li>
</ul>
<ul style="list-style-type: circle; margin-left: 40px;">
<li>Pass-through mode with one to many relationship, i.e. when
multiple initiators can connect to the exported pass-through devices.
For instance, you can safely export your parallel SCSI
tape or tape library on your iSCSI net and multiple initiators can
share it without risk of data loss because of the shared usage.
Existing "rawio" patch for IET supports only non-enforced 1:1
relationship, so it is unsafe to use it in multiple initiators
environments.<br>
</li>
<li>More advances devices visibility management, when different
initiators can see different set of devices with different access
permissions from the same target.</li>
<li>O_DIRECT, i.e. "BLOCKIO on files", mode, which has all advantages
of BLOCKIO, but also supports files on file systems. Sometimes, in the
appropriate cases, this mode can make performance difference in 100% or
even more.</li>
<li>With 4KB blocks you can forget about abysmal write performance
caused by misaligned partitions. All modern OS'es, including Windows
starting from, at least, Windows 2000, work perfectly with 4KB block
devices without any additional storage or handling overhead.</li>
<li>Virtual CD/DVD-ROMs without necessity for manual patching.</li>
<li>Ability to create target devices emulators in the user space.</li>
<li>Ability to create multi-transport SCSI targets, which can export
(possibly, the same) devices over multiple transports.</li>
</ul>
<ul>
<li>It has many code improvements and cleanups, including stability
and iSCSI RFC violations fixes. If you are an IET user and consider IET
problemless, I'm sorry for the bad news. IET works well only on "fast"
paths and regularly used branches, in many other less used cases IET
has various problems, from simply ignoring error processing, as it is
with memory allocations, to crashing itself with BUG() macro, as it is
for malformed packets from initiators. ChangeLog file lists most
noticeable fixes, but there were a lot of many other smaller ones.</li>
</ul>
<ul>
<li>Due to its reworked IO architecture and SCST backend iSCSI-SCST
has better performance in many cases. In future with upcoming SCST
improvements, like zero-copy with Linux cache FILEIO, the performance
difference is going to be even bigger. Currently in tests from a single
initiator over a single connection on 1GbE hardware over FILEIO vdisk
iSCSI-SCST with default settings usually outperforms tuned IET a on
3-10% (by default IET has not too good settings, so it shows
considerably worse results) or has the similar performance. The bigger
difference is expected with 10GbE hardware or with higher number of
initiators, since iSCSI-SCST has less commands processing overhead per
command, hence has smaller processing latency and puts less load on
CPU. If you find a case where
iSCSI-SCST has worse performance, than IET, please report it to SCST
mailing list, it will be greatly
appreciated.</li>
</ul>
<p>Also, in contrast to IET, iSCSI-SCST is open for any new
development, modifications and improvements, so people who want to fix
or implement something new will not have to keep and maintain separate
patches as it is currently necessary with IET. ISCSI-SCST is going to
be actively developed and gain in the future new features like support
for multiple connections per session, error recovery levels &gt;0,
etc., which eventually make it really "enterprise".<br>
</p>
<p>ISCSI-SCST is available for download from the <a
href="http://scst.svn.sourceforge.net/">SCST SVN repository</a>. See
the&nbsp;<a href="main.html">main page</a> how to setup access to it.<br>
</p>
<p>If you are an IET user before installation carefully read
README files of both iSCSI-SCST and the SCST core. Especially pay
attention that now the LUN information for iSCSI-SCST is configured not
using iscsi-scstd.conf file in /etc, but using corresponding SCST
facilities. This is because now the responsibilities are divided (as it
should be) between the target driver (iSCSI-SCST) and the SCST core:
target driver is responsible for handling targets and their
parameters, SCST core is responsible for handling backstorage.<br>
</p>
</div>
<hr
style="width: 100%; height: 2px; margin-left: 0px; margin-right: 0px;">
<h1><small><a name="qla2x00"></a>Target driver for QLogic 22xx/23xx
cards<br>
</small></h1>
<div style="text-align: justify;">
<p>This is target driver for QLogic 22xx/23xx Fibre Channel cards, but
24xx and later cards are not supported by it.<br>
</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 the&nbsp;<a href="main.html">main
page</a> how to setup access to it.
</p>
<p style="text-align: justify;"><a
href="http://sourceforge.net/project/showfiles.php?group_id=110471">Download
released versions</a><br>
<a href="ChangeLog.qla26">Change Log</a><br>
</p>
</div>
<hr style="width: 100%; height: 2px;">
<h1><small><a name="qla_isp"></a>Target driver for QLogic ISP chipsets<br>
</small></h1>
This is target driver for ISP QLogic chipsets commonly used in many
SCSI and FC host bus adapters. Supported chipsets are listed in README
file, incomplete list of supported HBA's is in doc/Hardware.txt. It is
based on Matthew Jacob's multiplatform driver for ISP chipsets, which
can be downloaded from <a
href="ftp://ftp.feral.com/pub/isp/isp_dist.tgz">ftp://ftp.feral.com/pub/isp/isp_dist.tgz</a>.
The update for SCST was made and supported by Stanislaw Gruszka.<br>
<br>
One major difference of this driver from the above target driver for
QLogic 2200/2300 cards is that it supports 24xx series of chipsets.<br>
<br>
This driver is unstable and on the
alpha stage. It is available for download from the <a
href="http://scst.svn.sourceforge.net/">SCST SVN repository</a>. See
the&nbsp;<a href="main.html">main page</a> how to setup access to it.<br>
<br>
<hr style="width: 100%; height: 2px;">
<h1><small><a name="srpt"></a>Infiniband SCSI RDMA Protocol (SRP)
Target driver</small></h1>
SCSI RDMA Protocol (SRP) target driver is developed
independently from SCST team. You can find instructions how to download
and install it on its <a
href="https://wiki.openfabrics.org/tiki-index.php?page=SRPT+Installation">wiki
page</a><br>
<br>
<hr style="width: 100%; height: 2px;">
<h1><small><a name="lsi"></a>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. It supports parallel SCSI
(SPI), but also should work with SAS and Fibre Channel transports. This
driver is
on the
alpha stage and available for download from the <a
href="http://scst.svn.sourceforge.net/">SCST SVN repository</a>. See
the&nbsp;<a href="main.html">main page</a> how to setup access to it.<br>
<br>
</body>
</html>