[ANNOUNCE]: Generic SCSI Target Mid-level For Linux (SCST), target drivers for iSCSI and QLogic Fibre Channel cards released



I'm glad to announce that version 1.0.0 of Generic SCSI Target Middle Level for Linux (SCST) was released and available for download from http://scst.sourceforge.net/downloads.html

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. It has the following main features:

* Simple, easy to use interface with target drivers. Particularly, SCST core performs 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 complicated problem in the kernel drivers development. For example, a target driver for QLogic 22xx/23xx cards, which has all necessary features, is only about 2000 lines of code long.

* 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 core's tasklets, therefore no extra context switches required.

* Device handlers, i.e. plugins, architecture provides extra flexibility by allowing various I/O modes in backstorage handling. For example, pass-through device handlers allow 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), 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 X and Y read-writable, and initiator B from the same target T could see devices Y read-only and Z read-writable.

* Emulates necessary functionality of SCSI host adapter, because from remote initiators point of view SCST acts as a SCSI host with its own devices.

The following I/O modes are supported by SCST:

* 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)

* 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

* BLOCKIO mode, which performs direct block I/O 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.

* User space mode using scst_user device handler, which allows to implement in the user space virtual SCSI devices in the SCST environment.

Detail description of SCST, its drivers and utilities you can find on SCST home page http://scst.sourceforge.net.

Comparison with the mainstream target middle level STGT you can find on the SCST vs STGT page http://scst.sourceforge.net/scstvsstgt.html. In short, SCST has the following main advantages over STGT:

- Better performance (in many cases tens of %% and more) with potential for further improvement, for example, by implementing zero-copy cache I/O.

- Monolithic in-kernel architecture, which follows standard Linux kernel paradigm to eliminate distributed processing. It is simpler, hence more reliable and maintainable.

SCST is being prepared in form of patch for review and inclusion to the kernel.

Vlad
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • [PATCH][RFC 3/23]: SCST core docs
    ... This patch contains documentation for SCST core. ... +SCST is designed to provide unified, consistent interface between SCSI ... +target drivers and Linux kernel and simplify target drivers development ... so different initiators could see different set ...
    (Linux-Kernel)
  • Re: Integration of SCST in the mainstream Linux kernel
    ... I don't think there's a way for a dedicated iSCSI target in the mainline, because of a lot of code duplication. ... Nicholas could decide to move to either existing framework (although, frankly, I don't think there's a possibility for in-kernel iSCSI target and user space SCSI target framework) and if he decide to go with SCST, I'll be glad to offer my help and support and wouldn't care if LIO-SCST eventually replaced iSCSI-SCST. ...
    (Linux-Kernel)
  • Re: [ANNOUNCE]: Generic SCSI Target Mid-level For Linux (SCST), target drivers for iSCSI and QLo
    ... Level for Linux (SCST) was released and available for download from ... consistent interface between SCSI target drivers and Linux ...
    (Linux-Kernel)
  • Re: Integration of SCST in the mainstream Linux kernel
    ... the mainstream Linux kernel. ... Add one of the existing in-kernel iSCSI target implementations to ... some standard SCSI target framework. ...
    (Linux-Kernel)
  • Re: [ANNOUNCE]: Generic SCSI Target Mid-level For Linux (SCST), target drivers for iSCSI and QLo
    ... Level for Linux (SCST) was released and available for download from http://scst.sourceforge.net/downloads.html ... SCST has the following main advantages over STGT: ... For SCST you wrote "Only project to support PSCSI, FC and SAS Target mode ". ... ISCSI is a very special transport, so looks like when you decide to add in LIO drivers for other transports, especially for parallel SCSI and SAS, you are going to have big troubles and major redesign. ...
    (Linux-Kernel)