Core-iSCSI

The Linux SCSI Target Wiki

(Difference between revisions)
Jump to: navigation, search
m
m (See also)
 
(39 intermediate revisions not shown)
Line 1: Line 1:
{{Infobox software
{{Infobox software
-
|name                       = Open-iSCSI
+
| name                   = Core-iSCSI
-
|logo                       = [[Image:RisingTide_Logo_small.png|180px|Logo]]
+
| logo                   = [[Image:Corp_Logo.png|180px|Logo]]
-
|screenshot                 = RisingTide Systems
+
| screenshot             = iSCSI Initiator
-
|caption                   =  
+
| caption               =  
-
|collapsible               =
+
| collapsible           =
-
|author                     = Nicholas Bellinger
+
| author                 = {{Nicholas Bellinger}}
-
|developer                 = RisingTide Systems LLC
+
| developer             = {{RTS legal}}
-
|released                   = {{RTS releases|Core-iSCSI|initial_date}}
+
| released               = {{RTS releases|Core-iSCSI|initial_date}}
-
|discontinued               =
+
| discontinued           =
-
|latest release version     = {{RTS releases|Core-iSCSI|release_ver}}
+
| latest release version = {{RTS releases|Core-iSCSI|release_ver}}
-
|latest release date       = {{RTS releases|Core-iSCSI|release_date}}
+
| latest release date   = {{RTS releases|Core-iSCSI|release_date}}
-
|latest preview version     = {{RTS releases|Core-iSCSI|preview_ver}}
+
| latest preview version = {{RTS releases|Core-iSCSI|preview_ver}}
-
|latest preview date       = {{RTS releases|Core-iSCSI|preview_date}}
+
| latest preview date   = {{RTS releases|Core-iSCSI|preview_date}}
-
|frequently updated         =
+
| status                = {{RTS releases|Core-iSCSI|status}}
-
|programming language       = C
+
| frequently updated     =
-
|operating system           = Linux
+
| programming language   = C
-
|platform                   =
+
| operating system       = Linux
-
|size                       =
+
| platform               =
-
|language                   =
+
| size                   =
-
|status                    = Production
+
| language               =
-
|genre                     = iSCSI Initiator
+
| genre                 = iSCSI Initiator
-
|license                   = Proprietary
+
| license               = Proprietary commercial software
-
|website                   = {{RTS website}}
+
| website               = {{RTS website}}
}}
}}
-
'''Core-iSCSI''' is a high-performance iSCSI Initator<ref>{{cite web |url=http://groups.google.com/group/Core-iSCSI/browse_frm/thread/20f458bde0883e61/# |title=Core-iSCSI v1.6.2.9 Released |first=Nicholas |last=Bellinger |work=Core-iSCSI mailing list |date=7/4/2006}}</ref> by [[RisingTide Systems]].
+
'''Core-iSCSI''' is a high-performance iSCSI Initator<ref>{{cite web| url=http://groups.google.com/group/Core-iSCSI/browse_frm/thread/20f458bde0883e61/#| title=Core-iSCSI v1.6.2.9 Released| author=Nicholas Bellinger| work=Core-iSCSI mailing list| date=2006-07-04}}</ref> by {{RTS full}}. Core-iSCSI has a number of features that significantly improves the performance over [[Open-iSCSI]].  
-
RisingTide Systems is an IP SAN systems and software company located in the Silicon Valley. RisingTide is complementing Core-iSCSI with a storage management UI and API.
+
== Performance ==
-
By the end of December 2010, RisingTide will be releasing the RTS Director, a distributed, highly available storage management tool with a unified namespace for entire storage infrastructures.
+
{{Review | date=2010-11-05}}
-
== {{anchor|building_and_installing}}Building and installing ==
+
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 [[Multiple Connections per Session|MC/S]].
-
{{Review | date=11/5/2010}}
+
{{RTS full}} has developed Core-iSCSI, a high-performanc iSCSI Initiator that alleviates the shortcomings of the standard Linux Initiator [[Open-iSCSI]] (see e.g., the [[Kernel-based Virtual Machine#Benchmarking|KVM]] results).
 +
 
 +
In addition, {{RTS short}} 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%.<ref>{{cite web| |title=Quick merge window note..| url=http://marc.info/?l=linux-kernel&m=129445043102014&w=2| author=Linus Torvalds| work=Linux-kernel mailing list| date=2011-01-07}}</ref> {{RTS short}} provides these patches along with Core-iSCSI to optimize its SAN installations end-to-end.
 +
 
 +
== {{anchor|building_and_installing}}Building and installing ==
* Compile Core-iSCSI
* Compile Core-iSCSI
Line 39: Line 43:
<pre>
<pre>
-
  KERNEL_DIR=/usr/src/linux && make install
+
KERNEL_DIR=/usr/src/linux && make install
</pre>
</pre>
Line 46: Line 50:
<pre>
<pre>
-
  make install
+
make install
</pre>
</pre>
Line 52: Line 56:
<pre>
<pre>
-
  CHANNEL="0 2 eth0 192.168.55.6 3260 0"
+
CHANNEL="0 2 eth0 192.168.55.6 3260 0"
</pre>
</pre>
Line 58: Line 62:
<pre>
<pre>
-
  DEVICE="0 0 1 diska"
+
DEVICE="0 0 1 diska"
</pre>
</pre>
== Interoperability ==
== Interoperability ==
-
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.
+
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 ===
=== Optional RFC-3720 Features ===
-
* [[MC/S]]: Tested: OK
+
* [[Multiple Connections per Session]] (MC/S): Tested: OK
=== Transports ===
=== Transports ===
Line 82: Line 86:
* [[Core-iSCSI/Cisco MDS 9216i|Cisco MDS 9216i]]: Tested : OK
* [[Core-iSCSI/Cisco MDS 9216i|Cisco MDS 9216i]]: Tested : OK
-
* Adaptec/SNAP: Untested (SHOULD WORK) | [[MC/S]]
+
* Adaptec/SNAP: Untested (SHOULD WORK) | ([[Multiple Connections per Session|MC/S]])
* Eurologic: Tested : OK
* Eurologic: Tested : OK
* Falconstor: Tested : PENDING (problems with I/O)
* Falconstor: Tested : PENDING (problems with I/O)
Line 90: Line 94:
* Netapp: Tested : OK
* Netapp: Tested : OK
* Promise: Tested : OK
* Promise: Tested : OK
-
* PyX/[http://www.sbei.com SBEi]: Tested : OK | [[MC/S]]
+
* PyX/[http://www.sbei.com SBEi]: Tested : OK | ([[Multiple Connections per Session|MC/S]])
-
** MC/S : STABLE
+
** [[Multiple Connections per Session|MC/S]] : STABLE
*** Login of connections on the fly
*** Login of connections on the fly
*** Logout of connections on the fly
*** Logout of connections on the fly
Line 105: Line 109:
*** iSCSI Index: /sbin/isns_iscsi_index
*** iSCSI Index: /sbin/isns_iscsi_index
* Sanrad: Tested : OK | [[MC/S]]
* Sanrad: Tested : OK | [[MC/S]]
-
** MC/S : STABLE  
+
** [[Multiple Connections per Session|MC/S]] : STABLE  
-
** MC/S on a V-Switch 3000 running 3.1.14 (?) software appears to work for only one of multiple advertised targets. All others fail to add the secondary connection.  
+
** [[Multiple Connections per Session|MC/S]] on a V-Switch 3000 running 3.1.14 (?) software appears to work for only one of multiple advertised targets. All others fail to add the secondary connection.  
** Interrupting the original connection did not appear to fail-over to the added connection.  
** Interrupting the original connection did not appear to fail-over to the added connection.  
** Interrupting the added connection instead has not yet been tested.  
** Interrupting the added connection instead has not yet been tested.  
** Attempting to get non-production V-Switch 3000 to help core-iSCSI determine whether initiator or target is at fault. [NO UPDATE]
** Attempting to get non-production V-Switch 3000 to help core-iSCSI determine whether initiator or target is at fault. [NO UPDATE]
-
** Sanrad V-Switch 3000 ERL=2 supported with PyX/SBEi iSCSI Initiator (11/2006)
+
** Sanrad V-Switch 3000 [[ERL=2]] supported with PyX/SBEi iSCSI Initiator (11/2006)
* Stringbean: Untested (should work)
* Stringbean: Untested (should work)
* UNH: Tested : OK
* UNH: Tested : OK
Line 126: Line 130:
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.
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.
-
 
-
=== Distributions ===
 
-
 
-
Boot via Core-iSCSI tests:
 
-
 
-
* [http://www.debian.org Debian]: TESTED: BETA
 
-
** Versions tested: v3.x
 
-
** Boot via PXE: TESTED: STABLE
 
-
** Shutdown: TESTED: BETA
 
-
** Shutdown with active IO: UNTESTED
 
-
* Gentoo: UNTESTED
 
-
** Boot via PXE: UNTESTED
 
-
** Shutdown: UNTESTED
 
-
** Shutdown with active IO: UNTESTED
 
-
* [http://www.slackware.com Slackware] TESTED: BETA
 
-
** Versions tested: v10.x?
 
-
** Boot via PXE: TESTED: STABLE
 
-
** Shutdown: TESTED: ??
 
-
** Shutdown with active IO: TESTED??
 
-
* Redhat: UNTESTED
 
-
** Boot via PXE: UNTESTED
 
-
** Shutdown: UNTESTED
 
-
** Shutdown with active IO: UNTESTED
 
-
* SuSE: UNTESTED
 
-
** Boot via PXE: UNTESTED
 
-
** Shutdown: UNTESTED
 
-
** Shutdown with active IO: UNTESTED
 
== {{anchor|DVT}} Domain Validation Tool ==
== {{anchor|DVT}} Domain Validation Tool ==
Line 169: Line 146:
* DVT sources and binaries: [http://www.linux-iscsi.org/builds/core-iscsi-dv/core-iscsi-dv-v1.0.tar.bz2 <code>core-iscsi-dv-v1.0.tar.bz2</code>] (requires [[#Core-iSCSI Tools|Core-iSCSI Tools]] 3.5) and [http://www.linux-iscsi.org/builds/core-iscsi-dv/core-iscsi-dv-v1.0/README README].
* DVT sources and binaries: [http://www.linux-iscsi.org/builds/core-iscsi-dv/core-iscsi-dv-v1.0.tar.bz2 <code>core-iscsi-dv-v1.0.tar.bz2</code>] (requires [[#Core-iSCSI Tools|Core-iSCSI Tools]] 3.5) and [http://www.linux-iscsi.org/builds/core-iscsi-dv/core-iscsi-dv-v1.0/README README].
-
* {{anchor|Core-iSCSI Tools}} Core-iSCSI Tools v3.5 (iSNS client, scripts, manual pages, example configuration files and documentation): [http://www.kernel.org/pub/linux/utils/storage/iscsi/core-iscsi-tools-v3.5.tar.bz2 <code>core-iscsi-tools-v3.5.tar.bz2</code>].<ref>{{cite web| url=http://groups.google.com/group/Core-iSCSI/browse_frm/thread/c530886d5247e913/# |title=core-iscsi-dv.sh and Core-iSCSI-tools v3.5 released |first=Nicholas |last=Bellinger |work=Core-iSCSI mailing list |date=7/11/2006}}</ref>
+
* {{anchor|Core-iSCSI Tools}} Core-iSCSI Tools v3.5 (iSNS client, scripts, manual pages, example configuration files and documentation): [http://www.kernel.org/pub/linux/utils/storage/iscsi/core-iscsi-tools-v3.5.tar.bz2 <code>core-iscsi-tools-v3.5.tar.bz2</code>].<ref>{{cite web| url=http://groups.google.com/group/Core-iSCSI/browse_frm/thread/c530886d5247e913/#| title=core-iscsi-dv.sh and Core-iSCSI-tools v3.5 released| author=Nicholas Bellinger| work=Core-iSCSI mailing list| date=2006-07-11}}</ref>
== See also ==
== See also ==
Line 175: Line 152:
* [[Diskless boot]]
* [[Diskless boot]]
* [[Platforms]]
* [[Platforms]]
-
* [[Target]]
+
* {{Target}}
-
{{AdSense See also}}
+
* [[Kernel-based Virtual Machine|KVM]]
== Notes ==
== Notes ==

Latest revision as of 16:09, 23 May 2014

Core-iSCSI
Logo
iSCSI Initiator
Original author(s) Nicholas Bellinger
Developer(s) Datera, Inc.
Initial release 2002 (2002)
Stable release 1.6.2.9 / July 4, 2006;
15 years ago
 (2006-07-04)
Development status Production
Written in C
Operating system Linux
Type iSCSI Initiator
License Proprietary commercial software
Website datera.io

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.

Contents

Performance

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 192.168.55.6 3260 0"

and /etc/sysconfig/iscsi_device_maps:

DEVICE="0 0 1 diska"

Interoperability

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

Transports

iSNS

iSCSI Targets

Diskless boot

Overview

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

Overview

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:

Download

See also

Notes

  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). "core-iscsi-dv.sh and Core-iSCSI-tools v3.5 released". Core-iSCSI mailing list. 

External links

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Google AdSense