From fec41c57ab04e1d53f22a149e8023b94c3bc598b Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Sat, 4 Apr 2009 18:48:12 +0000 Subject: [PATCH] Comparison between various SCSI targets for Linux added git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@750 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- www/comparison.html | 344 +++++++++++++++++++++++++++++++++++ www/contributing.html | 2 +- www/downloads.html | 2 +- www/handler_fileio_tgt.html | 2 +- www/images/Orange.css | 4 +- www/index.html | 2 +- www/scst_admin.html | 2 +- www/scst_pg.html | 2 +- www/scstvsstgt.html | 10 +- www/sponsorship.html | 4 +- www/target_fcoe.html | 2 +- www/target_iscsi.html | 2 +- www/target_lsi.html | 2 +- www/target_old.html | 2 +- www/target_qla22xx_23xx.html | 2 +- www/target_qla_isp.html | 2 +- www/target_srp.html | 2 +- www/targets.html | 2 +- 18 files changed, 371 insertions(+), 19 deletions(-) create mode 100644 www/comparison.html diff --git a/www/comparison.html b/www/comparison.html new file mode 100644 index 000000000..488792050 --- /dev/null +++ b/www/comparison.html @@ -0,0 +1,344 @@ + + + + + + + + +SCST: Generic SCSI Target Middle Level for Linux + + + + +
+ + + + + +
+ + +
+

Features comparison between Linux SCSI targets

+ +

As on April 2009

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ SCST + STGT + IET + LIO v3.0 +
General +
Upstream kernel - Kernel part - -
Generic Target Engine + + iSCSI only Under development
Architecture Kernel only User space only + 1 + Split + 2 + Kernel only
Stability + + + Heavy development
Performance ***** *** **** **** + 3
Zero-Copy **** *** + 4 + **** ****
Support for transports without expecting +transfer values (parallel SCSI, SAS) + - - -
User Interface ProcFS Custom IOCTL/ProcFS ConfigFS/IOCTL
Major features +
Target drivers in kernel space + + - Under development
Target drivers in user space + + - -
Backstorage handlers in kernel space + - - +
Backstorage handlers in user space + + - -
Local access to emulated backstorage devices + - - -
Advanced devices visibility management + - - -
Support for Asynchronous Event Notifications +(AEN) + - - -
AEN for devices added/removed + - - -
AEN for devices resized + - - -
Bidirectional Commands + + 5 + + - -
Extended CDB (size >16 bytes) + + 5 + + - -
Descriptor sense support + + - -
RESERVE/RELEASE + (Windows 2003 clustering) + + + +
Safe RESERVE/RELEASE implementation according to +SCSI requirements 6 Safe Safe Not safe Not safe
Safe implementation of Task Management commands +7 Safe Not safe Not safe Not safe
Persistent Reservations
+ (Windows 2008 clustering)
- - - Under development
ALUA - - - Under development
Failover Clustering + ? + +
SCSI MIBs - - - +
Cluster Storage Integration - - - VHACS
Supported SCSI transports +
iSCSI + + + +
Fibre Channel + - - -
SRP + - - -
iSER - + - -
Parallel (Wide) SCSI + - - -
SAS Under + development - - -
FCoE Under + development Under + development - -
IBM pSeries Virtual SCSI - + - -
Supported backstorage +
Kernel side FILEIO + - + +
Kernel side BLOCKIO + - + +
User space side FILEIO + + - -
SCSI Pass-through + - - Single initiator only, not enforced + 8
4k sectors support in pass-through mode + - - ?
4k, 2k, 1k and 512 byte sectors emulation +in modes, other than pass-through + - - +
CDROM emulation from ISO files + + - -
iSCSI Target +
Architecture Split + 2 + User space + only Split + 2 + Kernel only
MC/S - - - +
Max ErrorRecoveryLevel 0 0 0 2
Bidirectional Commands + + 5 + + - -
Extended CDB (size >16 bytes) + + 5 + + - -
Support for Asynchronous Event Notifications +(AEN) + - - -
Safe implementation of connections and sessions +reinstatement 9 Safe Not safe Not safe Not safe
iSCSI MIBs - - - - + 10
+ +
+

REMARKS:

+ +

1. STGT has SCSI target engine in user space and small hooks in the kernel to interact with in-kernel target drivers.

+ +

2. All iSCSI management implemented in user space and actual data transfers in kernel space without user space involved.

+ +

3. The conclusion made by source code study only. LIO should have performance + on the IET level or slightly less, because of more processing overhead.

+ +

4. Some zero-copy functionality isn't available from user space. For instance, zero-copy send to a socket.

+ +

5. Not well tested, because at the moment there is no backend using this functionality.

+ +

6. SCSI requires that if an initiator clears reservation held by another initiator, the reservation holder must be notified + about the reservation clearance. Otherwise, several initiators can at the same time change supposed to be protected by the + reservation data, which can corrupt them.

+ +

7. After a task management command completed and corresponding response was sent to initiator, who sent that task management + command, all the affected SCSI commands must get into a state, where they can't affect following after + the tasks management response commands from this initiator. This is the safe implementation. + The unsafe implementation only marks all the affected + SCSI commands as aborted and then immediately send task management response to the initiator. This implementation only + guarantees that the initiator will never receive responses from those commands, but it doesn't + guarantee that none of those commands will get executed by backstorage *AFTER* any + 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.

+ +

8. 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. This is safe only if there is only one initiator. This limitation + isn't enforced anyhow by LIO. You can find more technical information about that in + + http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg06911.html

+ +

9. Connections and sessions reinstatement is, basically, a kind of Task Management command. + For instance, open-iscsi uses it as such in eh_target_reset_handler() callback. So, similarly + to (7) above, a safe implementation + 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 the new commands.

+ +

10. SCSI-MIB (RFC 4455) - not supported; + SBE-SCSI-MIB - supported by LIO v2.6, not supported by LIO v3.0; + SBE-ISCSI-MIB - supported by LIO v2.6, not supported by LIO v3.0; + SBE-IPS-AUTH-MIB - supported by LIO v2.6, not supported by LIO v3.0 + +

+ +
+
+
+ +

P.S. LIO has similar comparison +page. It is very much +wrong about SCST. I asked that page author, Nicholas Bellinger, to +correct the wrong items (see my e-mail), +but Nicholas Bellinger refused to do it. Moreover, he blocked my access +to the LIO mailing list, preventing me from tell that to the interested +people myself. After all our previous discussions and with his skills +and experience I can't believe that Nicholas Bellinger doesn't know that +SCST is a lot more generic than LIO and has zero-copy in all the same +places, where LIO has. So, that comparison page looks like rather a +deliberate cheating attempt. Definitely, SCST in all major +technical areas is so much superior over LIO, so Nicholas Bellinger started +attacking people's perception about SCST trying to inspire them the +opposite.

+ +
+
+
+ + + + + + diff --git a/www/contributing.html b/www/contributing.html index adf70162b..9367cb3e2 100644 --- a/www/contributing.html +++ b/www/contributing.html @@ -23,7 +23,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/downloads.html b/www/downloads.html index 090160da0..518931991 100644 --- a/www/downloads.html +++ b/www/downloads.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/handler_fileio_tgt.html b/www/handler_fileio_tgt.html index 547ab2c9d..51b3d1253 100644 --- a/www/handler_fileio_tgt.html +++ b/www/handler_fileio_tgt.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/images/Orange.css b/www/images/Orange.css index 52ef03e0c..5e2bfcad3 100644 --- a/www/images/Orange.css +++ b/www/images/Orange.css @@ -196,8 +196,8 @@ div.logoimg { margin-left: 15px; padding: 0; /*width: 54%;*/ - width: 72%;* - border-left: 1px solid #f2f2f2; + width: 72%; + /*border-left: 1px solid #f2f2f2; */ } .post-footer { diff --git a/www/index.html b/www/index.html index 627db0b1c..dbb65753e 100644 --- a/www/index.html +++ b/www/index.html @@ -23,7 +23,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/scst_admin.html b/www/scst_admin.html index f949d1981..ca66f0f0e 100644 --- a/www/scst_admin.html +++ b/www/scst_admin.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/scst_pg.html b/www/scst_pg.html index a220470b6..48ff20d18 100644 --- a/www/scst_pg.html +++ b/www/scst_pg.html @@ -24,7 +24,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/scstvsstgt.html b/www/scstvsstgt.html index 1a4ea9ba9..8e16e15e6 100644 --- a/www/scstvsstgt.html +++ b/www/scstvsstgt.html @@ -25,12 +25,20 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • + +

    SCST vs STGT

    STGT is alternative, independent from SCST implementation diff --git a/www/sponsorship.html b/www/sponsorship.html index f17472406..fd3023454 100644 --- a/www/sponsorship.html +++ b/www/sponsorship.html @@ -23,7 +23,7 @@

  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • @@ -35,7 +35,7 @@ growing demand in a such subsystem. At the same time, SCST has reached mature and stable state and capable to satisfy all the requirements. See - SCST vs STGT page for more details.

    + Comparison page for more details.

    Also is has the widest choice of supported SCSI transports (iSCSI, Fibre Channel, Infiniband SRP, parallel SCSI, SAS), the diff --git a/www/target_fcoe.html b/www/target_fcoe.html index 6cc299d66..081605545 100644 --- a/www/target_fcoe.html +++ b/www/target_fcoe.html @@ -25,7 +25,7 @@

  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/target_iscsi.html b/www/target_iscsi.html index ae971484a..d8b6ca5b5 100644 --- a/www/target_iscsi.html +++ b/www/target_iscsi.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/target_lsi.html b/www/target_lsi.html index 0c913489c..23e3576bc 100644 --- a/www/target_lsi.html +++ b/www/target_lsi.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/target_old.html b/www/target_old.html index 188c90ffb..91122ef9a 100644 --- a/www/target_old.html +++ b/www/target_old.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/target_qla22xx_23xx.html b/www/target_qla22xx_23xx.html index 6736cc77d..3840ea0dd 100644 --- a/www/target_qla22xx_23xx.html +++ b/www/target_qla22xx_23xx.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/target_qla_isp.html b/www/target_qla_isp.html index 1f9f48275..3264a3784 100644 --- a/www/target_qla_isp.html +++ b/www/target_qla_isp.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/target_srp.html b/www/target_srp.html index 0dfad56e4..63a4a1722 100644 --- a/www/target_srp.html +++ b/www/target_srp.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison
  • diff --git a/www/targets.html b/www/targets.html index 78e1c6a0f..43c91955a 100644 --- a/www/targets.html +++ b/www/targets.html @@ -25,7 +25,7 @@
  • Drivers
  • Downloads
  • Contributing
  • -
  • SCST vs STGT
  • +
  • Comparison