ISCSI target driver iSCSI-SCST
-ISCSI-SCST is a forked (with all respects) version of IET 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.
- -ISCSI-SCST has the following major advantages over IET. They are summarized on the - Comparison page.
+ISCSI-SCST is a forked (with all respects) version of IET. Reasons of the fork were:
+-
-
- ISCSI-SCST uses full power of SCST core, hence has the following additional features:
-
-
-
- Pass-through mode with one to many relationship, i.e. when multiple initiators can connect to - exported pass-through devices. For instance, in this mode 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 outdated "rawio" patch for IET supports only non-enforced 1:1 - relationship, so it is unsafe to use it in multiple initiators environments. +
- To be able to use full power of SCST core. +
- To fix all the problems, corner cases issues and iSCSI standard violations IET which has. +
- More advanced devices visibility management, when different initiators can see different set of - devices with different access permissions from the same target. +
- 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. +
- Pass-through mode with one to many relationship, i.e. when multiple initiators can connect to + exported pass-through devices. For instance, in this mode you can safely export your parallel + SCSI tape or tape library (or VTL) on + your iSCSI net and multiple initiators can share it without risk of data loss because of the + shared usage. Existing outdated "rawio" patch for IET supports only non-enforced 1:1 + relationship, so it is unsafe to use it in multiple initiators environments. -
- 4KB blocks eliminate abysmal write performance caused by misaligned partitions. - +
- More advanced devices visibility management, when different initiators can see different set of + devices with different access permissions from the same target. -
- Virtual CD/DVD-ROMs. +
- 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. -
- Ability to create target devices emulators in the user space. +
- 4KB blocks eliminate abysmal write performance caused by misaligned partitions. + -
- Ability to create multi-transport SCSI targets, which can export (possibly, the same) - devices over multiple transports. -
- Virtual CD/DVD-ROMs. -
- ISCSI-SCST has many code improvements and cleanups, including stability - and iSCSI RFC violations fixes. - IET works well on "fast" paths and regularly used code branches, but in many corner - cases it has various problems, from simply ignoring error processing, as it is for memory - allocations, and crashing itself with BUG() macro, as it is for malformed packets from initiators, to possible data - corruptions, because of, for instance, unsafe task management or sessions reinstatement implementations. +
- Ability to create target devices emulators in the user space. -
- Due to reworked I/O architecture and SCST backend iSCSI-SCST has much - better performance in many cases and has potential for future improvements, like zero-copy - with Linux cache FILEIO. In many tests iSCSI-SCST outperforms tuned for best - performance IET on more than 100%. -
IET is a well recognized and widely used iSCSI target, but, frankly speaking, it works more or less well + on fast paths and regularly used code branches only, however in many corner + cases it has a lot of problems, like ignoring error processing, as it is for memory allocations, + crashing itself with BUG() macro, as it is for malformed packets from initiators, possible data + corruptions, because of, for instance, unsafe task management or sessions reinstatement implementations, etc. + There was no way to fix all them without a fork. As the result of this effort nearly 90% of the IET kernel code was fully + rewritten.
+ +Since ISCSI-SCST uses SCST core, it has the following additional features:
--
+
Also, due to reworked I/O architecture and SCST backend iSCSI-SCST has much + better performance in many cases and has potential for future improvements, like zero-copy + with Linux cache FILEIO. In many tests iSCSI-SCST outperforms tuned for best + performance IET on more than 100%.
+ +Advantages of iSCSI-SCST over IET are summarized on the Comparison page.
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