diff --git a/www/comparison.html b/www/comparison.html
index 5c6ca5ffc..7d6068204 100644
--- a/www/comparison.html
+++ b/www/comparison.html
@@ -117,7 +117,7 @@ transfer values (parallel SCSI, SAS)
+ | - | -
9 | + | - | - | - |
-| Advanced LUNs access control
+ | Advanced devices access control
10 | + | - | - | - |
@@ -154,11 +154,11 @@ SCSI requirements 12 | Safe | S
| Support for SCSI task attributes, including
ORDERED commands | + | + | -, data
corruption possible
-
- 20 | -, data
+
+ 21 | -, data
corruption possible
-
- 20 |
+
+ 21
Persistent Reservations
@@ -172,7 +172,7 @@ ORDERED commands | + | + | -, data
|
| SCSI MIBs | - | - | - | -
- 14 |
+ 15
| Cluster Storage Integration | - | - | - | VHACS |
@@ -225,14 +225,15 @@ ORDERED commands + | + | -, data
| User space FILEIO | + | + | - | - |
-| SCSI pass-through | + | - | - | Single initiator only, not enforced
- 15 |
+ SCSI pass-through
+ 16 | + | - | - | Single initiator only, not enforced
+ 17 |
| Zero-copy data read/write to/from backstorage | BLOCKIO, user space
FILEIO in O_DIRECT mode,
pass-through
- 16
+ 18
| -
8
| BLOCKIO | BLOCKIO, pass-
@@ -275,7 +276,7 @@ devices | - | Experimental | - | -
|
| Zero-copy data send/receive | Send only
- 17
+ 19
| None
8
| Send only | Send only |
@@ -302,13 +303,13 @@ devices - | Experimental | - | - | + | - | - | - |
Safe implementation of connections and sessions
-reinstatement 18 | Safe | Not safe | Not safe | Not safe |
+reinstatement 20 Safe | Not safe | Not safe | Not safe |
- Safe restart 19 | Safe | ? | Not safe | ? |
+ Safe restart 21 | Safe | ? | Not safe | ? |
| iSCSI MIBs | - | - | - | -
- 14 |
+ 15
@@ -349,7 +350,7 @@ reinstatement 18 Safe | Not s
locally on the target host. For instance, you can mount your ISO image from emulated by the target
CDROM device locally on the target host.
- 10. "Advanced devices LUNs control" means that different initiators can see different sets
+ 10. "Advanced devices access control" means that different initiators can see different sets
of devices from the same target. This feature is required for hardware targets, which don't have ability
to create virtual targets.
@@ -371,33 +372,37 @@ reinstatement 18 | Safe | Not s
SCSI command, which initiator will send after it received the task management response thinking
that all the aborted commands actually fully aborted. This could lead to a data corruption.
- 14. The IETF SCSI-MIB (RFC 4455) is not supported by LIO, only proprietary MIBs SBE-SCSI-MIB, SBE-ISCSI-MIB and SBE-IPS-AUTH-MIB are supported.
+ 14. Both IET and LIO report in INQUIRY command response support for full task management model. But they process ORDERED
+ commands the same way as SIMPLE commands, i.e. allow free reorder of them before they get executed. That violates SCSI standard
+ and can lead to a data corruption to any application relying on commands order provided by ORDERED attribute.
- 15. LIO doesn't emulate all the necessary SCSI host functionality to allow to share a SCSI device
- in pass-through mode to several initiators. It can only pass SCSI commands from initiator to
- the SCSI device and response back. This is safe only with a single initiator. This limitation
- isn't enforced anyhow, so you can accidentally corrupt your data. You can find more technical information about that in
+ 15. The IETF SCSI-MIB (RFC 4455) is not supported by LIO, only proprietary MIBs SBE-SCSI-MIB, SBE-ISCSI-MIB and SBE-IPS-AUTH-MIB are supported.
+
+ 16. SCSI pass-through mode allows to export your local SCSI-capable device. For instance with it you can share your parallel
+ SCSI tape or SATA DVD-RW device to your iSCSI network.
+
+ 17. LIO doesn't emulate all the necessary SCSI host functionality to allow to share SCSI devices
+ in pass-through mode to several initiators. It can only pass SCSI commands from initiators to
+ SCSI devices and responses back. This is safe only with a single initiator. This limitation
+ isn't enforced anyhow and LIO doesn't issue no warning about it, so you can quietly corrupt your data.
+ You can find more technical information about that in
http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg06911.html
- 16. You can find proposal how to implement zero-copy FILEIO in SCST on the
+ 18. You can find proposal how to implement zero-copy FILEIO in SCST on the
Contributing page.
- 17. Doesn't need any kernel patch, except in case, when used with user space backend.
+ 19. Doesn't need any kernel patch, except in case, when used with user space backend.
- 18. Connections and sessions reinstatement is, basically, a kind of Task Management command, because it implies commands aborting.
+ 20. Connections and sessions reinstatement is, basically, a kind of Task Management command, because it implies commands aborting.
For instance, open-iscsi uses it as a less intrusive substistute for target reset in eh_target_reset_handler() callback. So, similarly
to the safe task management above, a safe implementation of connections and sessions reinstatement
must not accept SCSI commands from new connection/session until all the SCSI commands in
being reinstated connection/session get into a state, where they can't affect new commands.
- 19. "Safe restart" means that after the iSCSI target restart, all the connected initiators will seamlessly restore all existing before
+ 21. "Safe restart" means that after the iSCSI target restart, all the connected initiators will seamlessly restore all existing before
the restart connections. "Not safe" means that, most likely, the connected initiators will fail to restore
existing connections with some errors.
-
- 20. Both IET and LIO report in INQUIRY command response support for full task management model. But they process ORDERED
- commands the same way as SIMPLE commands, i.e. allow free reorder of them before they get executed. That violates SCSI standard
- and can lead to a data curruption to any application relying on commands order provided by ORDERED attribute.
diff --git a/www/index.html b/www/index.html
index be8f4b376..830ef6de6 100644
--- a/www/index.html
+++ b/www/index.html
@@ -43,7 +43,7 @@
automatic backup, etc. Another class of such devices
are Virtual Tape Libraries (VTL)
as well as other disk-based backup solutions. SCST created devices not
- limited by IP network interface only. They can use any link supporting
+ limited by IP networking only. They can use any link which supports
SCSI-style data exchange, including Fibre Channel,
iSCSI, SAS,
InfiniBand and parallel (Wide) SCSI. It might
@@ -55,10 +55,10 @@
Features of SCST Core
- - Simple, easy to use interface with target drivers.
+
- SCST core has simple, easy to use interface with target drivers.
SCST core performs all required pre- and post- processing of incoming requests as well as
necessary error recovery.
- - Undertakes most problems, related to execution contexts, thus practically eliminating one of the most
+
- SCST core undertakes most problems, related to execution contexts, thus practically eliminating one of the most
complicated problem in the kernel drivers development. For example, target drivers for QLogic
22xx/23xx cards and for InfiniBand SRP are only about 2300 lines of code long.
- Very low overhead, fine-grained locks and simplest commands processing path allow to reach
@@ -68,14 +68,14 @@
- Device handlers, i.e. plugins, architecture allows 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.
- - Provides advanced per-initiator devices visibility management (LUN masking) allows different
+
- Advanced per-initiator devices visibility management (LUN masking) allows different
initiators to see different set of devices with different access permissions. For instance,
initiator A could see exported from target T devices X and Y read-writable, and initiator B from
the same target T could see devices Y read-only and Z read-writable.
This feature is required for hardware targets, which don't have ability to create
virtual targets (SAS adapters, for instance).
- - 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
+
- SCST core emulates necessary functionality of SCSI host adapter, because from remote initiators' point of view
+ a SCSI target 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 this
message in thread "Question for pass-through target design" in linux-scsi mailing list. Some of the emulated functions are the following:
@@ -98,25 +98,26 @@
- Multithreaded design and complete SMP support, so, if necessary, all your CPU cores will participate in the commands
+ SCST core has multithreaded design and complete SMP support, so, if necessary, all your CPU cores will participate in the commands
processing.
Well documented.
- Interoperability between SCST core and local SCSI initiators (i.e. sd, st, etc.) is the additional issue that SCST is going to
+ Interoperability between remote 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
+ device, for example RESERVE the device, or some of its parameters and that could be done behind SCST, i.e. remote initiators
+ will not know about it, 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.
+ UNIT ATTENTIONs, etc. should be intercepted and passed through SCST core.
SCST core supports the following I/O modes
- 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).
+ controllers (type 0xC). In this mode you can, for instance, share your parallel SCSI tape or SATA
+ DVD-RW device to your iSCSI network.
- 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.
+ remotely available SCSI disks or CDROMs with benefits of the Linux cache.
- BLOCKIO mode, which performs direct block IO with a block device, bypassing
page-cache for all operations. This mode works well with high-end storage HBAs and for applications that
either do not need caching between application and disk or need the large block throughput.
diff --git a/www/scst_pg.html b/www/scst_pg.html
index 2c65eca96..58131c908 100644
--- a/www/scst_pg.html
+++ b/www/scst_pg.html
@@ -89,9 +89,20 @@
SCSI initiator device
A SCSI device that originates service and task management requests to be processed by a SCSI target device and
receives device service and task management responses from SCSI target devices.
+
+ Think of the 'SCSI LLDD' as a BE (Back End) driver.
+
SCSI target device
A SCSI device that receives device service and task management requests for processing and sends device service
and task management responses to SCSI initiator devices or drivers.
+
+ Think of the 'Target Driver' as an FE (Front End) driver.
+
+ The FE driver interfaces to the initiators (via the
+ storage-fabric-cloud) and also to the upper edge of the SCST. Whereas
+ the BE driver interfaces to the targets, i.e. disk-enclosures/JBODs/tapes etc.
+ and also to the bottom edge of the SCST.
+
SCST session
SCST session is the object that describes relationship between a remote initiator and SCST via a target driver.
All the commands from the remote initiator is passed to SCST in the session. For example, for connection oriented
@@ -348,10 +359,10 @@
function. Then:
- If the command required no data transfer, it will be passed to SCSI mid-level directly or
via device handler's exec() call.
- - If the command is READ command (data to the target), necessary space will be
+
- If the command is a READ command (data to the remote/local initiator), necessary space will be
allocated and then the command will be passed to SCSI mid-level directly or via device handler's
exec() call.
- - If the command is WRITE command (data from the target), necessary space will be
+
- If the command is a WRITE command (data from the remote/local initiator), necessary space will be
allocated, then the target's rdy_to_xfer() function will be called, telling the target that
the space is ready and it can start data transferring. When all the data are read from the target, it will call
scst_rx_data(), and the command will be passed to SCSI mid-level directly or via device
diff --git a/www/scst_pg.pdf b/www/scst_pg.pdf
index 0879f74a5..9f5fb01a2 100644
--- a/www/scst_pg.pdf
+++ b/www/scst_pg.pdf
@@ -1,4 +1,5 @@
%PDF-1.4
+%
5 0 obj
<< /S /GoTo /D (section.1) >>
endobj
@@ -428,3258 +429,3282 @@ endobj
289 0 obj
<< /S /GoTo /D [290 0 R /Fit ] >>
endobj
-292 0 obj <<
-/Length 2602
+315 0 obj <<
+/Length 1595
/Filter /FlateDecode
>>
stream
-x[K-2s~d,k{tY??ŗL(`m,?~*R`s9wa-8.?lnb$%*F"J0+6_ձ՚V]I۬)+*jo?)+7ޝph:e槛mZHh EqYUqwȮSa7]d$q4R##+旇:=0,Ng@X?7@Cs8Ĕ4+|8(F H1}ɟ]}w?܂kxkl{msbA1~ar2hccHXwSvbHymv:lڗ6 &̦xدn؝c/0ſ*7h鰿 }<4N#T{CqV>@@oӣi>^ )xyvuYCjx\COΞOnŒ}gy))G`i4050SN<,[UxnRD3&E}Zkĩ3bJV
-Xd6T?k@ex5>{8`#{hzA"GT1Ep>|Q?HG;::<
~ERĘw0wحڳ1<,lۑp>nᎻԕB)I5( }1Bw/4CeӖ˗䗄V*o$L}2)PmIU8Y5$U6?7;*rEQT`A6Kl5AR
-@&MRJ
-CURfj8L,%sl2d{CLR1Ł'r'稣`u(GB-KEm^cbhs1Txr#5lK`cħá?Uޔm9R
-HQ"d ,E8d+$Ռ$yz*>25m`uv;~[p 5HbɺC4FY[8(8#LLd Lr33T @ps0$wFɬEtt%t9KnPg63`W5Uq[3VcV`M
3bD$.96"H 6r&Q(GPY&
-{eDGm'ŭ#GFmM:$
[`à^[ʃhlw-e" *\oo` bX\N_+d!A }lĸWD5Π1i_|hpjeeԘGiK@e˽K5\,1˚]~0fE W^q)wr|eR7%N dRq-Kkť,6.s ^,69I6w=B/yIss1T_7?H8{~|-F|t
-78&,S
-il}6!-$O9[pZ/P'q)I5qf$LS
/|a?Hoe|p/ӹt)Bo^VcWʅAJGGT~(`r&&t,c|]yfjvQ(o[g{.>w3S]6Q%ޝfFIJE)3 ZMmЋ\g3db! endstream
+xYKs6WVjxؤm&f589($dsKR~(z[V$Ŕ@÷5M|5]
+*a(d2'%* U\Yd^|?t&JkWwEO\s0<7x1[2&ЀF$P&ap.j
UXɃ'&hIU |wBwE]p1+b>)D"e`~FYM0õYNF+bb8M\ee{xST S7㐫YY|w:uTwϨ."LBD}߅7 ?z/hQGS¢MQ;ttuZcVYaq9[}}'}K?T!V»!tw'1t6AP,N Wƭ1pQ5
+*#zaMXd@J|括ӂd!h!6Ɖ'ΰonC`D2gڋ+n$+"Tf&&VEm@/=!<+ .m
+Oq3ν\)&hM @\DzvU?KU? KHDXE#Mr|&ܚ侙:EQIrM@sYzфȝR¤^t[/@5?9?krI6;n-DkBexRuE@l=L-D,dh{ˌcp%$D+]uhy'N Rɗ6I % $-[N,З4#X̲-5;KaON -͗$xF!
+0W8&S7Ak>bT۔LgeL5AƄUP|V3>ҟ(! jx*KpKA_\ wv
+m_Nd7 谖6)qb=O®DPXpgնmO5+)kֻ
+컬TDsY|h8bPN eXNmW<,}|>VDhمޙu||6,xw|
@5BO'.pф#jR*
h
+B@z/AY,q$ |