SCST is designed to provide unified, consistent interface between SCSI target drivers and Linux kernel and simplify target drivers development as much as possible. Detail description of SCST's features and internals could be found on its Internet page .
SCST 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 the following 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 IO 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 high performance virtual SCSI devices. Comparing with fully in-kernel dev handlers this mode has very low overhead (few %%)
* "Performance" device handlers, which provide in pseudo pass-through mode a way for direct performance measurements without overhead of actual data transferring from/to underlying SCSI device.
In addition, SCST supports advanced per-initiator access and devices visibility management, so different initiators could see different set of devices with different access permissions. See below for details.
Full list of SCST features and comparison with other Linux targets you can find on .