Features comparison between Linux SCSI targets
-As on April 2009
+As on June 2009
| + | - | (Windows 2003 clustering) | + | + | + | + | Safe RESERVE/RELEASE implementation according to -SCSI requirements 12 | Safe | Safe | Not safe | Not safe | +SCSI requirements 12Safe | Safe | Not safe + + 13 | Not safe | Safe implementation of Task Management commands -13 | Safe | Not safe | Not safe | Not safe | +14Safe | Not safe | Not safe | Not safe |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Support for SCSI task attributes, including ORDERED commands | + | + | -, data corruption possible - - 21 | -, data + + 15 | -, data corruption possible - - 21 |
+
+ 15
|||||||
| Persistent Reservations @@ -172,7 +174,7 @@ ORDERED commands | + | + | -, data | |||||||||
| SCSI MIBs | - | - | - | - - 15 | + 16||||||||
| Cluster Storage Integration | - | - | - | VHACS | @@ -226,14 +228,14 @@ ORDERED commands+ | + | -, data | |||||
| SCSI pass-through - 16 | + | - | - | Single initiator only, not enforced - 17 | + 17+ | - | - | Single initiator only, not enforced + 18 | ||||
| Zero-copy data read/write to/from backstorage | BLOCKIO, user space FILEIO in O_DIRECT mode, pass-through - 18 + 19 | - 8 | BLOCKIO | BLOCKIO, pass- @@ -276,7 +278,7 @@ devices | - | Experimental | - | - | ||||
| Zero-copy data send/receive | Send only - 19 + 20 | None 8 | Send only | Send only | @@ -303,13 +305,13 @@ devices- | Experimental | - | - | + | - | - | - | Safe implementation of connections and sessions -reinstatement 20 | Safe | Not safe | Not safe | Not safe | +reinstatement 21Safe | Not safe | Not safe | Not safe | -Safe restart 21 | Safe | ? | Not safe | ? | +Safe restart 22 | Safe | ? | Not safe | ? |
| iSCSI MIBs | - | - | - | - - 15 | + 16
2. All iSCSI management implemented in user space and actual data transfers in kernel space without user space involved.
3. ISER target driver has long known (since Feb 2008) data corruption problem, which localization hasn't been determined yet and might be - in the STGT core. See - http://lists.berlios.de/pipermail/stgt-devel/2008-February/001367.html and - http://lists.wpkg.org/pipermail/stgt/2009-February/002630.html.
+ in the STGT core. See here and + here.4. The result "in average" is listed. One target can be better somewhere, another one somewhere else. Although manual tuning of target and system parameters tends the restore the difference listed in the comparison. You can find example measurements here, @@ -362,7 +363,11 @@ reinstatement 20
13. After a task management command completed and before the corresponding response was sent to the initiator, who sent that task management +
13. The problem in IET + + was confirmed in IET mailing list.
+ +14. After a task management command completed and before the corresponding response was sent to the 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 @@ -372,35 +377,34 @@ reinstatement 20
14. Both IET and LIO report in INQUIRY command response support for full task management model. But they process ORDERED +
15. 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. 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. 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 +
17. 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 +
18. 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
+ isn't enforced anyhow and LIO doesn't issue no warning about it, so an user will not be notified about it + and can quietly corrupt his/her data. You can find more technical information about it + here. - 18. You can find proposal how to implement zero-copy FILEIO in SCST on the
+ 19. You can find a proposal how to implement zero-copy FILEIO in SCST on the
Contributing page. 19. Doesn't need any kernel patch, except in case, when used with user space backend. 20. Doesn't need any kernel patch, except in the case, when used with user space backend. 20. Connections and sessions reinstatement is, basically, a kind of Task Management command, because it implies commands aborting.
+ 21. 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. 21. "Safe restart" means that after the iSCSI target restart, all the connected initiators will seamlessly restore all existing before
+ 22. "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.
When MC/S is better than MPIO
@@ -232,10 +232,8 @@ and backup applications one or both can be true. But on practice:Simply, MC/S is done on the wrong level. No surprise then that no Open Source OS'es neither support, nor going to implement it. Moreover, when back to 2005 there was an attempt to add MC/S in Linux, it was -rejected. See for more details http://article.gmane.org/gmane.linux.scsi/15769 -and http://article.gmane.org/gmane.linux.scsi/16301. +rejected. See for more details here +and here.
If in future SCSI standards gain possibility to group several I_T nexuses diff --git a/www/scstvsstgt.html b/www/scstvsstgt.html index 1c8c3619d..af8b2c59b 100644 --- a/www/scstvsstgt.html +++ b/www/scstvsstgt.html @@ -49,8 +49,8 @@ found its way to the kernel.
But such architecture has several inherent problems. Among them performance and complexity. - See description for the set of patches, submitted for the first iteration of in-kernel inclusion review and comments - http://lkml.org/lkml/2008/12/10/245
+ See description for the set of patches, submitted for + the first iteration of in-kernel inclusion review and comments in Linux kernel mailing list.See also the following important discussions:
-
@@ -63,8 +63,7 @@
- "Stgt a new version of iscsi target?", especially pay attention to - this message: - http://article.gmane.org/gmane.linux.scsi/21073 why STGT's architecture was considered "right". + this message why STGT's architecture was considered "right".
Target driver for QLogic 22xx/23xx cards
- This is target driver for QLogic 22xx/23xx Fibre Channel cards. It is stable and well tested.
The latest stable version is 1.0.1. Requires Linux kernel version 2.6.16.x or higher and SCST version 1.0.1 or higher.