Features
The Linux SCSI Target Wiki
(Difference between revisions)
m (→Mainstream) |
m (→Mainstream) |
||
Line 9: | Line 9: | ||
* '''{{T}}''' ('''{{LIO servername}}''') is the standard open-source SCSI target in Linux by {{RTS full}} It went upstream with Linux kernel version 2.6.38.<ref name=h-online>{{cite web| url=http://www.h-online.com/open/features/Kernel-Log-Coming-in-2-6-38-Part-4-Storage-1199926.html| title=Kernel Log: Coming in 2.6.38 (Part 4) - Storage| author=Thorsten Leemhuis| publisher=Heise Online| date=3/2/2011}}</ref><ref name=lkml>{{cite web| url=http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=38567333a6dabd0f2b4150e9fb6dd8e3ba2985e5| title=Trivial merge| author=Linus Torvalds| date=1/14/2011| publisher=lkml.org}}</ref><ref name=lwn>{{cite web| url=http://lwn.net/SubscriberLink/420691/eb6ae8a12222aac6/| title=Shooting at SCSI targets| author=Jonathan Corbet| date=12/22/2010| publisher=lnw.net}}</ref> | * '''{{T}}''' ('''{{LIO servername}}''') is the standard open-source SCSI target in Linux by {{RTS full}} It went upstream with Linux kernel version 2.6.38.<ref name=h-online>{{cite web| url=http://www.h-online.com/open/features/Kernel-Log-Coming-in-2-6-38-Part-4-Storage-1199926.html| title=Kernel Log: Coming in 2.6.38 (Part 4) - Storage| author=Thorsten Leemhuis| publisher=Heise Online| date=3/2/2011}}</ref><ref name=lkml>{{cite web| url=http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=38567333a6dabd0f2b4150e9fb6dd8e3ba2985e5| title=Trivial merge| author=Linus Torvalds| date=1/14/2011| publisher=lkml.org}}</ref><ref name=lwn>{{cite web| url=http://lwn.net/SubscriberLink/420691/eb6ae8a12222aac6/| title=Shooting at SCSI targets| author=Jonathan Corbet| date=12/22/2010| publisher=lnw.net}}</ref> | ||
- | * {{anchor|COMSTAR}} ''' | + | * {{anchor|COMSTAR}} '''COMSTAR''' ('''Common Multiprotocol SCSI Target''') is a software framework that enables any [http://www.oracle.com/us/sun/index.html Sun] OpenSolaris host to serve as a SCSI target that can be accessed over the network. |
==== Linux out-of-tree and legacy ==== | ==== Linux out-of-tree and legacy ==== |
Revision as of 21:12, 4 May 2016
This Features overview compares LinuxIO with Sun COMSTAR and other Linux open-source SCSI targets.
Contents |
Open-source SCSI targets
Mainstream
The two main open-source multiprotocol SCSI targets in the industry are:
- LIO (Linux-IO) is the standard open-source SCSI target in Linux by Datera, Inc. It went upstream with Linux kernel version 2.6.38.[1][2][3]
- COMSTAR (Common Multiprotocol SCSI Target) is a software framework that enables any Sun OpenSolaris host to serve as a SCSI target that can be accessed over the network.
Linux out-of-tree and legacy
In Linux, there are also three out-of-tree or legacy SCSI targets:
- IET (iSCSI Enterprise Target) is an iSCSI only target that is now unsupported. Its aim was to develop an open source iSCSI target with professional features that works well in enterprise environment under real workload, and is scalable and versatile enough to meet the challenge of future storage needs and developments. This target was quite popular, but its user base has been deteriorating, because of its lack of support and modern features.
- SCST (SCSI Target Subsystem) is a generic SCSI target engine for Linux that has been developed by a team in Russia. Its iSCSI implementation is an improved version of IET. SCST has made Linux usable as a SAN operating system, but lost momentum and was acquired by Fusion-IO in March 2013.
- STGT (SCSI Target Framework) has been the standard multiprotocol SCSI target in Linux. It aimed to simplify SCSI target driver creation and maintenance. Its key goals were the clean integration into the scsi-mid layer and implementing a great portion of the target in user space. STGT was superseded by LIO with Linux kernel 2.6.38.[1][2][3]
Comparison
General
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
OS inclusion | Linux 2.6.38 | OpenSolaris | - | - | 2.6.12 Obsolete | |
OpenStack integration | Juno (upstream) Grizzly (setup, code) | - | - | - | - | |
Generic SCSI Target engine | + | + | - | + | + | |
Architecture | Kernel | Kernel | Kernel | Kernel | User | |
Configuration interface | ConfigFS | IOCTL | - | SysFS | Custom | |
Dynamic session teardowns While processing active I/O | + | - | - | -[4] | - | |
iSNS support | + | + | - | + | - | |
Parallel command processing Concurrency-Managed Workqueues (CMWQ) | + | - | - | - | - | |
Processor architectures | x86, IA64, Cell, PPC, ARM, MIPS | x86, SPARC | x86, IA64, PPC | |||
Zero-copy | + | + | - | +[5] | + |
User interface
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
CLI | targetcli | itadm, smtfadm, sbdadm | + | scstadm | + | |
Library | RTSlib | - | - | - | - | |
API | RTSapi | - | - | - | - | |
Dynamic configuration changes While processing active I/O | + | + | - | -[4] | - | |
Transactional configuration | Tag, Commit, Rollback | Persistent | Persistent | Persistent | Persistent | |
Remote management | RTSapi | + | - | - | - | |
Storage object IDs | Auto-generated T10 WWN Unit Serial with local aliasing | Auto-generated GUID | - | - | - |
SCSI Target
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
4k sector support | + | + | - | + | - | |
Advanced LUN access control | + (ACLs) | + (Views) | - | + | - | |
AEN[6] Asynchronous Event Notifications | ERL=2 only | - | - | + | - | |
ALUA[7] Asymmetric Logical Unit Assignment | + | - | - | + | - | |
Backstore drivers | Kernel/User | Kernel | - | Kernel/User | User | |
Bidirectional commands | + | - | - | + | + | |
CDB split-up in pass-through mode | + | + | - | - | - | |
CPU affinity control | + | - | - | + | - | |
Extended CDBs (>16 bytes) | + | - | - | + | + | |
Failover clustering | + | + | + | + | + | |
Host (Initiator) groups | - | + | - | - | - | |
MPIO | + | + | + | + | + | |
OS inclusion | Linux 2.6.38 | OpenSolaris | - | - | - | |
SCSI MIBs | Enterprise Edition | - | - | - | - | |
SCSI-2 RESERVE/RELEASE[8][9] | + | + | + | + | + | |
SCSI-3 PR[7][10][11] Persistent Reservations | + | - | - | + | - | |
T10 DIF Data Integrity Format | Linux 3.14 | - | - | - | - | |
T10 Referrals | Linux 3.14 | - | - | - | - | |
Target drivers | Kernel/User | Kernel | iSCSI only | Kernel/User | Kernel/User | |
TPG-specific LUN mappings | + | - | - | - | - | |
User-space backend Data and exception handling in user space | Linux 3.18 | - | - | + | + | |
Unit Attentions (UAs) | + | + | - | + | - | |
VAAI vStorage APIs for Array Integration | + | - | - | - | - |
Backstores
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
BLOCKIO | + | + | + | + | - | |
BLOCKIO (cache safe) | + | + | - | + | - | |
FILEIO | + | + | + | + | + | |
FILEIO (O_SYNC) | + | + | - | + | + | |
LUN provisioning | + | - | - | + | - | |
RAID | MD/LVM2/HW | ZFS | MD/LVM2/HW | |||
RAW | + | + | - | - | - | |
RAMDISK | + | - | - | - | - | |
SCSI pass-through | + | - | - | + | + |
Fabric modules
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
16 GFC (HBA) | + | - | - | +[12][13] | - | |
Fibre Channel (HBA) | + | + | - | QLogic[12] | - | |
FCoE | + | + | - | Beta | - | |
IBM vSCSI | out of tree | - | - | + | + | |
IEEE 1394 | + | - | - | - | - | |
iSCSI | + | + | + | + | + | |
iSER (iWARP) | - | - | - | - | - | |
iSER (IB/RoCE) | + | + | - | +[13] | + | |
Loopback SCSI LLD | tcm_loop[14] | - | - | scst_local | - | |
NTB Non-Transparent Bridging | - | - | - | - | - | |
NVMe-OF NVMe Over Fabrics | Planned | - | - | - | - | |
Parallel (Wide) SCSI | - | - | - | Alpha | - | |
SAS | - | + | - | Marvell (Beta) | - | |
SRP InfiniBand SCSI RDMA Protocol | + | + | - | + | - | |
USB Gadget | + | - | - | - | - | |
vHost QEMU virtio and virtio-scsi PV guests | +[15] | - | - | - | - |
Fibre Channel
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
16 GFC support | Linux 3.9 | - | - | +[12][13] | - | |
NPIV NPort ID Virtualization | Linux 3.14 | Emulex | - | + | - | |
OS inclusion | Linux 3.5 | OpenSolaris | - | - | - | |
T10 DIF | Linux 3.16 | - | - | - | - |
FCoE
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
DDP Direct Data Placement | + | - | - | - | - | |
OS inclusion | Linux 3.0 | OpenSolaris | - | - | - |
IEEE 1394
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
OS inclusion | Linux 3.5 | - | - | - | - |
iSCSI
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
AHS Additional Header Segment | - | - | - | + | + | |
AEN Asynchronous Event Notification | For ERL=2 | - | - | + | - | |
Bidirectional commands | + | - | - | + | + | |
Extended CDBs (>16 bytes) | + | - | - | + | + | |
iSCSI MIBs | Enterprise Edition | - | - | - | - | |
Maximum ERL Error Recovery Level | 2 | 0 | 0 | 0 | 0 | |
MC/S Multiple Connections per Session | + | - | - | - | - | |
OS inclusion | Linux 3.1 | OpenSolaris | - | - | - | |
SSE4.2 hardware assist[16] | + | - | - | - | - |
iSER
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
OS inclusion | Linux 3.10 | OpenSolaris | - | - | - | |
T10 DIF | Linux 3.15 | - | - | - | - |
Loopback
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
OS inclusion | Linux 2.6.39 | OpenSolaris | - | - | - |
SRP
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
OS inclusion | Linux 3.3 | OpenSolaris | - | - | - |
USB Gadget
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
OS inclusion | Linux 3.5 | - | - | - | - |
vHost
Linux LIO | Sun COMSTAR | Other Linux | ||||
---|---|---|---|---|---|---|
IET | SCST | STGT | ||||
OS inclusion | Linux 3.6 | - | - | - | - | |
T10 DIF | Linux 3.16 | - | - | - | - |
See also
- LinuxIO
- Backstore devices: IBLOCK, FILEIO, RAMDISK and Loopback
- Fabric modules: FCoE, Fibre Channel, iSCSI, iSER, SRP, tcm_loop, vHost
Notes
- ↑ a b Thorsten Leemhuis (3/2/2011). "Kernel Log: Coming in 2.6.38 (Part 4) - Storage". Heise Online.
- ↑ a b Linus Torvalds (1/14/2011). "Trivial merge". lkml.org.
- ↑ a b Jonathan Corbet (12/22/2010). "Shooting at SCSI targets". lnw.net.
- ↑ a b Brian Auld (5/12/2012). "How to reliably force_close scst iscsi_sessions that are processing IO". sourceforge.net.
- ↑ Bart Van Assche (9/24/2012). "Re: Can't build SCST for CentOS 6.2x64". http://sourceforge.net.
- ↑ Deprecated with SCSI-3.
- ↑ a b Required for VMware vSphere certification.
- ↑ Required for VMware ESX certification.
- ↑ Required for Windows 2003 Clustering.
- ↑ Required for RHEL5 I/O Fencing and Clustering.
- ↑ Required for Windows 2008/R2 Failover Clustering.
- ↑ a b c Emulex discontinued support on 5/3/2012 (see Emulex and SCST).
- ↑ a b c Using the corresponding LIO fabric module.
- ↑ Throughput: >12 GB/s (native) and >2 GB/s (virtualized, KVM: per VM without hardware assist).
- ↑ Throughput: >20 GB/s (virtualized without hardware assist).
- ↑ E.g., for payload digest acceleration.
External links
Timeline of the LinuxIO | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Release | Details | 2011 | 2012 | 2013 | 2014 | 2015 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ||
4.x | Version | 4.0 | 4.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Feature | LIO Core | Loop back | FCoE | iSCSI | Perf | SRP | CM WQ | FC USB 1394 | vHost | Perf | Misc | 16 GFC | iSER | Misc | VAAI | Misc | DIF Core NPIV | DIF iSER | DIF FC vhost | TCMU Xen | Misc | Misc | virtio 1.0 | Misc | NVMe OF | ||||||||||||||||||||||||||||||||||||
Linux | 2.6.38 | 2.6.39 | 3.0 | 3.1 | 3.2 | 3.3 | 3.4 | 3.5 | 3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 | 3.15 | 3.16 | 3.17 | 3.18 | 3.19 | 3.20 | 3.21 | 3.22 |