Jump to content

ISCSI: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
SHayter (talk | contribs)
Big Edit) (Cleaned up the linkfarm, see talk. + Other minor modifications
Line 2: Line 2:
{{Citations missing|date=January 2007}}
{{Citations missing|date=January 2007}}
{{Cleanup|date=December 2006}}
{{Cleanup|date=December 2006}}
{{linkfarm}}
'''Internet SCSI''' ('''iSCSI''') is a [[Protocol (computing)|network protocol]] standard, officially ratified on [[2003-02-11]] by the [[Internet Engineering Task Force]], that allows the use of the [[SCSI]] protocol over [[TCP/IP]] [[computer network|networks]]. iSCSI is a transport layer protocol in the [[SCSI]]-3 specifications framework. Other protocols in the transport layer include [[SCSI Parallel Interface]] and [[Fibre Channel]].
'''Internet SCSI''' ('''iSCSI''') is a [[Protocol (computing)|network protocol]] standard, officially ratified on [[2003-02-11]] by the [[Internet Engineering Task Force]], that allows the use of the [[SCSI]] protocol over [[TCP/IP]] [[computer network|networks]]. iSCSI is a transport layer protocol in the [[SCSI]]-3 specifications framework. Other protocols in the transport layer include [[SCSI Parallel Interface]] and [[Fibre Channel]].


Line 23: Line 22:


==Industry support==
==Industry support==

=== Initiators ===
==== OS Support Overview ====
==== OS Support Overview ====
{| class="wikitable"
{| class="wikitable"
Line 30: Line 29:
! First release date
! First release date
! Version
! Version
! Features
! Limitations
|-
|-
! [[AIX operating system|AIX]]
! [[AIX operating system|AIX]]
| 2002-10
| 2002-10
| AIX 5.2
| AIX 5.2
| Initiator
|
|-
|-
! [[Microsoft Windows|Windows]]
! [[Microsoft Windows|Windows]]
| 2003-06
| 2003-06
| 2000, XP Pro, 2003, Vista, Server CodeName "Longhorn"
| 2000, XP Pro, 2003, Vista, Server CodeName "Longhorn"
| Initiator, Target, Multipath
| Limited command data length (256k)
|-
|-
! [[Novell NetWare|NetWare]]
! [[Novell NetWare|NetWare]]
| 2003-08
| 2003-08
| NetWare 5.1, 6.5, & OES
| NetWare 5.1, 6.5, & OES
| Initiator
|
|-
|-
! [[HP-UX]]
! [[HP-UX]]
| 2003-10
| 2003-10
| HP 11i v1, HP 11i v2
| HP 11i v1, HP 11i v2
| Initiator
|
|-
|-
! [[Solaris Operating System|Solaris]]
! [[Solaris Operating System|Solaris]]
| 2005-02
| 2005-02
| Solaris 10
| Solaris 10
| Initiator, Target
|
|-
|-
! [[Linux kernel]]
! [[Linux kernel]]
| 2005-06
| 2005-06
| 2.6.12
| 2.6.12
| Initiator, Target, [[ISCSI_Extensions_for_RDMA|iSER]]
|
|-
|-
! [[Mac OS X]]
! [[Mac OS X]]
| October 2007
| October 2007
| 10.5 (Leopard)
| 10.5 (Leopard)
| Initiator
|
|}
|}


==== Initiator Implementations ====
=== Host Bus Adapters ===
===== Software Initiators =====
* [[Cisco Systems|Cisco]] iSCSI Driver - one of the earliest software iSCSI initiator implementations. Drivers were available for [[HP-UX]], [[AIX operating system|AIX]], [[Linux]], [[Solaris Operating System|Solaris]], and [[Microsoft Windows|Windows]] NT4/2000. Its use is now discouraged in favor of other newer initiators. [http://www.cisco.com/univercd/cc/td/doc/product/sn5000/sn5400/iscsidrv/]
* [[IBM]] iSCSI Software Initiator for [[AIX operating system|AIX]] - Available since version 5.2 (2002-10)
* [[FreeBSD]] support is [ftp://ftp.cs.huji.ac.il/users/danny/freebsd/iscsi-17.tar.bz2 under development].
* [[Hewlett-Packard|HP]] [[HP-UX]] iSCSI Software Initiator - [http://www.hp.com/products1/serverconnectivity/storagesnf2/iSCSI_sw_ini.html]
* Linux Initiators
** Core-iSCSI - Based on GPLed portions of the commercial PyX initiator. This is a project revived for Linux Kernel 2.6 to bridge the gap left when maintenance of Linux-iSCSI stopped in favor of developing Open-iSCSI. [http://www.kernel.org/pub/linux/utils/storage/iscsi]
** Intel-iSCSI ([[Intel]]) - The earliest open source release of iSCSI (March 2001). The distribution includes initiator and target code for [[Linux]] 2.4 and 2.6 and support for Object-based Storage Devices (OSD). [http://www.sourceforge.net/projects/intel-iscsi]
** Linux-iSCSI - based on the [[Cisco]] Linux iSCSI driver. As of April 2005, the Linux-iSCSI and Open-iSCSI developers have combined their efforts for working on Open-iSCSI. [http://Linux-iSCSI.sf.net]
*** 3.xx series supports Linux Kernel 2.4
*** 4.xx series supports Linux Kernel 2.6 up to 2.6.9
** Open-iSCSI - Newest initiator implementation for Kernel 2.6.11 and up. Development of Linux-iSCSI has been halted in favor of this project. [http://www.open-iscsi.org/]
** UNH-iSCSI - Initiator and target implementation from the [[University of New Hampshire]]. [http://unh-iscsi.sourceforge.net/]
* An initiator for [[NetBSD]] is in development [http://mail-index.netbsd.org/netbsd-users/2007/02/22/0024.html].
* Windows Initiators:
** [[Microsoft]] iSCSI Software Initiator for Windows - Available for [[Windows 2000]], [[Windows XP Professional]], [[Windows Server 2003]] and [[Windows Vista]]. [http://www.microsoft.com/downloads/details.aspx?FamilyID=12cb3c1a-15d6-4585-b385-befd1319f825&DisplayLang=en]
** Rocket Division Software [http://www.rocketdivision.com/port.html StarPort Storage Controller] (iSCSI and [[ATA-over-Ethernet|AoE]] Software Initiator) - for Windows 2000/XP/2003.
* [[Novell]] iSCSI Initiator for [[Novell NetWare|NetWare]] - Available for Netware 6.5. (ver 5.0 and 6.0 supported via download)
* [[Sun Microsystems|Sun]] [[Solaris Operating System|Solaris]] iSCSI Initiator - Available as of the Solaris 10 1/06 update.
* Ardis Technologies iSCSI initiator for Mac OS X - [http://www.dynamicdrivepool.com]
* [[ATTO Technology|ATTO]] Xtend SAN iSCSI Initiator for Mac OS X - [http://www.attotech.com/xtend.html]
* Studio Network Solutions globalSAN iSCSI Initiator for Mac OS X - [http://www.studionetworksolutions.com/products/product_detail.php?pi=11]

===== iSCSI to Fibre Channel, SAS/SATA or SCSI =====

Many companies have made a large investment in Fibre Channel and SCSI storage. With the advent of SAS and SATA storage there is now an abundance of both storage technologies.

Conversion of these technologies to iSCSI is possible using a bridging appliance. Bridging appliances take one technology and convert it to another to easily adapt to a SAN, WAN or LAN.

For instance, the iPBridge 2700 from [[ATTO Technology]], Inc allows customers to attach Fibre Channel devices and then connect them to an IP network using iSCSI. There are also conversions available from SCSI to iSCSI as well as SAS/SATA to iSCSI.

This bridging technology allows customers to use their storage in heterogeneous environments while extending existing investments in storage infrastructures.

===== iSCSI Host Bus Adapters =====
iSCSI host bus adapters (HBAs) are [[Network card|network interface controllers]] that incorporate a [[TCP Offload Engine]] with onboard iSCSI processing. iSCSI HBAs are usually abstracted purely as SCSI controllers by the operating system driver system. In this case, the HBA is not a part of the system network stack. Recently there has been considerable effort in providing standard vendor-independent iSCSI management facilities via operating system driver interfaces. These standard interfaces also work with software initiators.
iSCSI host bus adapters (HBAs) are [[Network card|network interface controllers]] that incorporate a [[TCP Offload Engine]] with onboard iSCSI processing. iSCSI HBAs are usually abstracted purely as SCSI controllers by the operating system driver system. In this case, the HBA is not a part of the system network stack. Recently there has been considerable effort in providing standard vendor-independent iSCSI management facilities via operating system driver interfaces. These standard interfaces also work with software initiators.


Line 100: Line 81:


iSCSI HBAs have the advantage of including PCI option ROMS to allow booting from iSCSI targets. Alternative iSCSI boot methods with software initiators would require substantial work.
iSCSI HBAs have the advantage of including PCI option ROMS to allow booting from iSCSI targets. Alternative iSCSI boot methods with software initiators would require substantial work.

The following vendors have developed iSCSI HBAs:
*[[Adaptec]] (Product is discontinued.)
*[[Alacritech]]
*[[Intel]] (Product is discontinued.)
*[[Qlogic]]
*[[Brocade Communications Systems|Brocade (Silverback Systems)]] ([http://www.brocade.com/silverbackinformation.jsp Silverback purchased by Brocade])


=== Targets ===
=== Targets ===
Line 116: Line 90:
In the security products industry, some manufacturers use an iSCSI RAID as a target, with the initiator being either an IP-enabled encoder or camera.
In the security products industry, some manufacturers use an iSCSI RAID as a target, with the initiator being either an IP-enabled encoder or camera.


=== Converters/Bridges ===
==== Software-based iSCSI Targets ====
There are multiple systems which allow Fibre Channel, SCSI & SAS devices to be attached to an IP network for use via iSCSI. They can be used to allow migration from older storage technologies, access to SANs from remote servers and the linking of SANs over IP networks.

* Linux/Netware/Solaris/NetBSD/FreeBSD
** [http://www.openfiler.com/ Openfiler - iSCSI (SAN) and NAS Linux distribution] - An open source iSCSI target implementation for Linux
** Intel-iSCSI ([[Intel]]) - The earliest open source release of iSCSI (March 2001). The distribution includes initiator and target code for [[Linux]] 2.4 and 2.6 and support for Object-based Storage Devices (OSD). [http://www.sourceforge.net/projects/intel-iscsi]
** [http://iscsitarget.sourceforge.net/ iSCSI Enterprise Target] - An open source iSCSI target implementation for Linux
** [[Linux]] - iSCSI target product offerings from 3rd party vendors for various flavors of Linux.
*** [http://amgeon.com/ Amgeon iSCSI]
*** [http://www.sbei.com/index.php/products/iscsi/ SBEI iSCSI]
*** [http://www.pavitrasoft.com/products/mayastor.html MayaStor iSCSI]
*** [http://www.chelsio.com/products/iSCSI.php Chelsio iSCSI]
** [[NetBSD]] target [ftp://ftp.netbsd.org/pub/NetBSD/misc/agc/HOWTO-iSCSI-target.txt HOWTO]
** [[FreeBSD]] - the NetBSD target implementation also runs on FreeBSD, via the [http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/iscsi-target/ net/iscsi-target] [[Ports collection|port]]
** [[NetWare]] 6.5 includes an iSCSI target module
** [http://www.opensolaris.org/os/project/iscsitgt Solaris iSCSI Target] - iSCSI target package bundled with Solaris.
**[[FreeNAS]] includes an iSCSI target option
* Microsoft Windows
** DataCore Software's SANsymphony [http://www.datacore.com/products/prod_SANsymphony.asp] storage virtualization software for Windows 2000/XP/2003
** String Bean Software's WinTarget [http://stringbeansoftware.com] - acquired by Microsoft and renamed to Microsoft iSCSI Target, now offered as an option pack from OEM's for Windows Storage Server 2003 R2 [http://www.microsoft.com/windowsserversystem/wss2003/productinformation/newsreviews/stringbean.mspx]
** Rocket Division Software [http://www.rocketdivision.com/wind.html StarWind iSCSI Target] for Windows 2000/XP/2003
** FalconStor - iSCSI Storage Server [http://www.falconstor.com/en/solutions/?pg=Products&sb=iSCSI] for Windows 2003 and Windows 2003 Storage Server
** DataCore SANmelody [http://www.datacore.com/products/prod_SANmelody.asp] & SANmelody Lite [http://www.datacore.com/products/prod_SANmelodyLite.asp] iSCSI target and disk server software for Windows 2000/XP/2003
** Nimbus Data Systems - MySAN iSCSI Server [http://www.nimbusdata.com/products/mysan/mysan.htm] Free iSCSI target for Windows 2003 Server
** Virtual Infrastructure Foundation kit [http://www.datacore.com/pressroom/pr_061101.asp iSCSI target and thin provisioning software] for Windows systems
* Other
** [[Open-E]] iSCSI-R3 - iSCSI storage software is pre-installed on a USB-DOM
** [[Open-E]] DSS - [[Data Storage Server|data storage software]] (NAS + iSCSI ) on pre-installed USB-DOM
**Software target implementations are also available or included on storage devices from vendors such as EMC, Equallogic, [[Reldata]], LeftHand Networks, Network Appliance, Stonefly and StorageConnections.Net.
** [http://storagebuilder.com/products/iscsi.html Wasabi Systems Storage Builder for IP-SAN] comes pre-installed on a bootable Compact Flash IDE disk and runs on standard hardware platforms.

=== Native iSCSI Targets ===
* QuodCelior Series from [http://www.storageconnections.net StorageConnections.Net] supporting both Block Level Storage and Virtual Tape in a Single Appliance
* DataFRAME Series from [http://mpccorp.com/commercial/store/servers/overview_dataframe.html MPC Computers]
* LeftHand’s SAN/iQ Storage Clustering Software from [http://www.lefthandnetworks.com LeftHand Networks, Inc.]
* NetApp FAS Systems from [http://www.netapp.com/products/storage-systems/enterprise-storage/index.html Network Appliance, Inc.]
* StoreVault S500 from [http://www.storevault.com StoreVault, A NetApp Division]
* Dell EMC AX-150i from [http://www1.euro.dell.com/content/products/productdetails.aspx/pvaul_ax150 Dell]
* Infortrend EonStor Series from [http://www.infortrend.com Infortrend, Ltd]
* PS Series from [http://www.equallogic.com EqualLogic, Inc]
* Universal IP Storage Gateway Series from [http://www.reldata.com RELDATA Inc.]
* V-Switch Series from [http://www.sanrad.com SANRAD, Inc]
* GigaStorATX Series from [http://www.istor.com iStor Networks, Inc]
* PyX/SBEi Storage Engine from [http://www.sbei.com SBE, Inc]
* Intransa StorStac system from [http://www.intransa.com Intransa, Inc]
* DynamicDrivePool (DDP) media servers for Pro Video and Audio [http://www.dynamicdrivepool.com , Ardis Technologies]
* AV-STOR iSCSI RAID [http://www.av-digital.com Avante Digital Limited]
* Nexsan SATABeast, SATABoy & SATABlade from [http://www.nexsan.com Nexsan]


== Addressing and Name formats ==
== Addressing and Name formats ==
Line 182: Line 111:
Example:
Example:


iscsi.fake.com 3260 iqn.2003-01.com.ibm:00.fcd0ab21.shark128 "123ismysecretpassword"
iscsi.example.com 3260 iqn.2003-01.com.ibm:00.fcd0ab21.shark128 "123ismysecretpassword"


== Trivia ==
== Trivia ==
Line 189: Line 118:
== See also ==
== See also ==
* [[Fibre Channel over IP]] (FCIP)
* [[Fibre Channel over IP]] (FCIP)
* [[Internet Fibre Channel Protocol]] (iFCP)
* [[ISNS]]
* [[Internet Storage Name Service]] (iSNS)
* [[Service Location Protocol]]
* [[Service Location Protocol]]
* [[ATA over Ethernet|ATA-over-Ethernet]] (AoE)
* [[ATA over Ethernet|ATA-over-Ethernet]] (AoE)
Line 203: Line 133:
* [http://picquelle.blogspot.com Picquelle Report (iSCSI Standards & 10GbE Ratified)]
* [http://picquelle.blogspot.com Picquelle Report (iSCSI Standards & 10GbE Ratified)]
* [http://www.isecpartners.com/files/iSEC-iSCSI-Security.BlackHat.pdf "iSCSI: Insecure SCSI". A talk on iSCSI security given at the BlackHat Security Conference]
* [http://www.isecpartners.com/files/iSEC-iSCSI-Security.BlackHat.pdf "iSCSI: Insecure SCSI". A talk on iSCSI security given at the BlackHat Security Conference]
* [http://iscsitarget.sourceforge.net iSCSI Enterprise Target]
* [ftp://ftp.netbsd.org/pub/NetBSD/misc/agc/HOWTO-iSCSI-target.txt NetBSD iSCSI Target HOWTO]
* [ftp://ftp.netbsd.org/pub/NetBSD/misc/agc/HOWTO-iSCSI-target.txt NetBSD iSCSI Target HOWTO]
* [ftp://ftp.netbsd.org/pub/NetBSD/misc/agc/HOWTO-iSCSI-initiator.pdf NetBSD iSCSI Initiator HOWTO]
* [ftp://ftp.netbsd.org/pub/NetBSD/misc/agc/HOWTO-iSCSI-initiator.pdf NetBSD iSCSI Initiator HOWTO]

Revision as of 00:49, 28 April 2007

Internet SCSI (iSCSI) is a network protocol standard, officially ratified on 2003-02-11 by the Internet Engineering Task Force, that allows the use of the SCSI protocol over TCP/IP networks. iSCSI is a transport layer protocol in the SCSI-3 specifications framework. Other protocols in the transport layer include SCSI Parallel Interface and Fibre Channel.

Acceptance of iSCSI in corporate production environments has accelerated now that Gigabit Ethernet is becoming more common. Building iSCSI-based Storage Area Networks (SAN) has become a less costly but worthy alternative to creating Fibre Channel-based SANs.

Functionality

The iSCSI (IPA pronunciation: [aɪskʌzi]) protocol uses TCP/IP for its data transfer. Unlike other network storage protocols, such as Fibre Channel (which is the foundation of most SANs), it requires only the simple and ubiquitous Ethernet interface (or any other TCP/IP-capable network) to operate. This enables low-cost centralization of storage without all of the usual expense and incompatibility normally associated with Fibre Channel storage area networks.

Critics of iSCSI expect worse performance than Fibre Channel due to the overhead added by the TCP/IP protocol to the communication between client and storage. However new techniques like TCP Offload Engine (TOE) help in reducing this overhead. Tests have shown excellent performance of iSCSI SANs, whether TOEs or plain Gigabit Ethernet NICs were used. The iSCSI market is growing steadily, and should improve in performance and usability as more organizations deploy Gigabit and 10 Gigabit networks, and manufacturers integrate iSCSI support into their operating systems, SAN products and storage subsystems. iSCSI becomes even more appealing as Ethernet can now support higher speeds than Fibre Channel. Vendors are starting to come out with 10G cards.

Storage Devices

In the context of computer storage, iSCSI allows a machine to use an iSCSI initiator to connect to remote targets such as disks and tape drives on an IP network for block level I/O. From the point of view of the class drivers and application software, the devices appear as locally attached SCSI devices. More complex environments consisting of multiple hosts and/or devices are called Storage Area Networks (SAN).

iSCSI devices should not be confused with Network-Attached Storage (NAS) devices which include server software to handle the arbitration of simultaneous access requests from different hosts. Allowing multiple hosts to have simultaneous access to a single device is a difficult task common to all SCSI devices. Without host-to-host communication, each host is unaware of the state and intentions of the other hosts. This condition leads to data corruption and race conditions. In the realm of disk storage, cluster software solves this issue.

iSCSI terminology and how iSCSI can be used by an OS

An iSCSI initiator, in client/server terminology, is akin to a client device that connects to some service offered by the server (in this case an iSCSI target). An iSCSI target is akin to a server, in that it provides block level access to its storage media (usually a hard drive, but can be other types of SCSI devices if the iSCSI target software supports them.) The primary difference between a regular client/server system and an iSCSI initiator/target system is that while many clients can simultaneously access the same files served by a single server, iSCSI requires complex coordination between initiators to synchronize accesses to the same files.

iSCSI can be used to give an OS block-level access to a remote device (one attached to another computer likely on the same LAN). Depending on the types of devices supported by the iSCSI target, this block-level access can be used to build RAID volumes using remote disks, or to connect and use remote DVD/CD-writers and scanners, or to simply access additional storage space. iSCSI (like all SCSI protocols) does not mandate how devices are shared amongst multiple computers at the same time; instead the OS in control of the iSCSI device is responsible for controlling remote access to the device. The initiator and the OS that it is running on will determine how the iSCSI device appears, and whether it is a /dev entry or gets a drive letter or something else.

Industry support

OS Support Overview

OS First release date Version Features Limitations
AIX 2002-10 AIX 5.2 Initiator
Windows 2003-06 2000, XP Pro, 2003, Vista, Server CodeName "Longhorn" Initiator, Target, Multipath Limited command data length (256k)
NetWare 2003-08 NetWare 5.1, 6.5, & OES Initiator
HP-UX 2003-10 HP 11i v1, HP 11i v2 Initiator
Solaris 2005-02 Solaris 10 Initiator, Target
Linux kernel 2005-06 2.6.12 Initiator, Target, iSER
Mac OS X October 2007 10.5 (Leopard) Initiator

Host Bus Adapters

iSCSI host bus adapters (HBAs) are network interface controllers that incorporate a TCP Offload Engine with onboard iSCSI processing. iSCSI HBAs are usually abstracted purely as SCSI controllers by the operating system driver system. In this case, the HBA is not a part of the system network stack. Recently there has been considerable effort in providing standard vendor-independent iSCSI management facilities via operating system driver interfaces. These standard interfaces also work with software initiators.

Since iSCSI HBAs offload considerable processing in the iSCSI stack, interrupt generation is less than comparable software initiator setups. Applications leaving few spare CPU cycles should benefit from the use of a dedicated HBA.

iSCSI HBAs have the advantage of including PCI option ROMS to allow booting from iSCSI targets. Alternative iSCSI boot methods with software initiators would require substantial work.

Targets

Most industry focus has been placed on creating iSCSI disk targets though iSCSI tape and medium changer targets are popular as well. So far, physical devices have not featured native iSCSI interfaces on a component level. Instead, devices with SCSI Parallel Interface or Fibre Channel interfaces are bridged by using iSCSI target software, external bridges, or controllers internal to the device enclosure.

Alternatively, disk and tape targets can be virtualizations. Rather than representing an actual physical device, an emulated virtual device is presented. The underlying implementation can deviate drastically from the presented target as is done with Virtual Tape Library (VTL) solutions. VTLs use disk storage for storing data written to virtual tapes. As with actual physical devices, virtual targets are presented by using iSCSI target software, external bridges, or controllers internal to the device enclosure.

In the security products industry, some manufacturers use an iSCSI RAID as a target, with the initiator being either an IP-enabled encoder or camera.

Converters/Bridges

There are multiple systems which allow Fibre Channel, SCSI & SAS devices to be attached to an IP network for use via iSCSI. They can be used to allow migration from older storage technologies, access to SANs from remote servers and the linking of SANs over IP networks.

Addressing and Name formats

iSCSI provides three name formats for different types of naming authorities:

  • iSCSI Qualified Name (IQN), Format: iqn.yyyy-mm.{reversed domain name} (e.g. iqn.2001-04.com.acme:storage.tape.sys1.xyz)
  • Extended Unique Identifier (EUI), Format: eui.{EUI-64 bit address} (e.g. eui.02004567A425678D)
  • T11 Network Address Authority (NAA), Format: naa.{NAA 64 or 128 bit identifier} (e.g. naa.52004567BA64678D)

In the case of IQN the address is qualified by a date (yyyy-mm) since a domain name can expire or be acquired by another entity. EUI is provided by the IEEE Registration authority in accordance with EUI-64 standard. NAA is part OUI which is provided by the IEEE Registration Authority.

NAA name formats were added to iSCSI in RFC 3980, to provide compatibility with naming conventions used in Fibre Channel and SAS storage technologies.

Each target is defined by three or four fields:

HostNameOrAddress PortNumber iSCSIName CHAPSecret (optional)

Example:

iscsi.example.com 3260 iqn.2003-01.com.ibm:00.fcd0ab21.shark128 "123ismysecretpassword"

Trivia

See also

RFCs

  • RFC 3720 - Internet Small Computer Systems Interface (iSCSI)
  • RFC 3783 - Small Computer Systems Interface (SCSI) Command Ordering Considerations with iSCSI