The Linux SCSI Target Wiki

(Redirected from Initiator)
Jump to: navigation, search
iSCSI Initiator
Original author(s) Nicholas Bellinger
Developer(s) Datera, Inc.
Initial release 2002 (2002)
Stable release / July 4, 2006;
16 years ago
Development status Production
Written in C
Operating system Linux
Type iSCSI Initiator
License Proprietary commercial software

Core-iSCSI is a high-performance iSCSI Initator[1] by Datera, Inc.. Core-iSCSI has a number of features that significantly improves the performance over Open-iSCSI.



Unfortunately, many Linux SAN installations are lacking performance, even with high-end arrays, because the default Linux initiator Open-iSCSI is lacking a number of features that are essential to achieve optimal throughput and IOPS. These features include, most notably, a lock-less multithreaded architecture and iSCSI MC/S.

Datera, Inc. has developed Core-iSCSI, a high-performanc iSCSI Initiator that alleviates the shortcomings of the standard Linux Initiator Open-iSCSI (see e.g., the KVM results).

In addition, Datera has put together a number of performance patches for the Linux kernel. For instance, one patchset that was developed together with Intel Labs and IBM significantly reduced lock-contention in the Linux storage subsystem, which reduced CPU utilization by up to 20% and can increase IOPS by up to 50%.[2] Datera provides these patches along with Core-iSCSI to optimize its SAN installations end-to-end.

Building and installing

KERNEL_DIR=/usr/src/linux && make install
make install
CHANNEL="0 2 eth0 3260 0"

and /etc/sysconfig/iscsi_device_maps:

DEVICE="0 0 1 diska"


The following third-party iSCSI target implementations have been validated, have pending TODO items, or are completely untested against Core-iSCSI. We'd be glad to hear feedback on your experiences with all Linux/iSCSI implementations! Note that this list relates to interoperability with Core-iSCSI, but feedback for Open-iSCSI is also encouraged.

Optional RFC-3720 Features



iSCSI Targets

Diskless boot


The logic required to run Linux iSCSI for your root device and be able to shutdown and reboot cleanly ("diskless boot") involves the following:

  1. Core-iSCSI kernel threads that are providing iSCSI services SHOULD NOT be shutdown. Note that killall5 leaves kernel threads alone, but may cause problems with user-level iscsi daemons.
  2. Considerations for session reinstatement during shutdown while iSCSI LUNs (not limited to the root device) are being unmounted.
  3. Miscellanous failures during shutdown caused by nopin_response_timeout, datain_timeout, cmdsn_timeout, transport layer resets, and communication path PHY loss.

Most of this logic is distribution agnostic, but sometimes shutdown scripts do the 'network backed root device' (think nfsroot shutdown) that is required to make iSCSI initiators perform diskless shutdown properly.

Domain Validation Tool


The Core-iSCSI Domain Validation Tool (DVT) is primarly targeted to iSCSI vendors and developers for testing data IO using a CLI program accepting a block device as an argument.

The DVT executes a pre-determined number of loop iterations, each time negotiating a different set of RFC-3720 parameter keys until the configuration space has been exhausted. DVT will perform iSCSI Login, a script defined test operation, and Logout on a defined network portal. The sequence of steps is determined by which keys are enabled for testing, type, minimum and maximum settings as defined by RFC-3720.

SCSI domain validation is goverened by a T10 Working Draft:


See also


  1. Nicholas Bellinger (2006-07-04). "Core-iSCSI v1.6.2.9 Released". Core-iSCSI mailing list. 
  2. Linus Torvalds (2011-01-07). "Quick merge window note..". Linux-kernel mailing list. 
  3. Nicholas Bellinger (2006-07-11). " and Core-iSCSI-tools v3.5 released". Core-iSCSI mailing list. 

External links

Personal tools
Google AdSense