ISCSI

From Free net encyclopedia

Template:Lowercase

Internet SCSI (iSCSI) is an official standard ratified on February 11 2003 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 common. Building iSCSI-based Storage Area Networks (SAN) has become a less costly but worthy alternative to creating Fibre Channel-based SANs.

Contents

Functionality

The iSCSI 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 protocol overhead TCP/IP adds 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. In fact, in modern high-performance servers, a plain NIC with efficient network driver code can outperform a TOE card because fewer interrupts and DMA memory transfers are required. Initial iSCSI solutions are based on a software stack. 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.

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 nasty 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 be simultaneously served by a single server (many-to-one), only one iSCSI initiator can talk to a given iSCSI target at a time (one-to-one).

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 devices are not shared by iSCSI 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 the initiator 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

Initiators

OS Support Overview

OS First release date Version
AIX 10/2002 AIX 5.2
Windows 06/2003 2000, XP Pro, 2003
NetWare 08/2003 NetWare 6.5
HP-UX 10/2003 HP 11i v1, HP 11i v2
Solaris 02/2005 Solaris 10
Linux kernel 06/2005 2.6.12

Initiator Implementations

Software Initiators
  • Cisco iSCSI Driver - one of the earliest software iSCSI initiator implementations. Drivers were available for HP-UX, AIX, Linux, Solaris, and Windows NT4/2000. It's use is now discouraged in favor of other newer initiators. External Link
  • IBM iSCSI Software Initiator for AIX - Available since version 5.2 (October 2002)
  • FreeBSD support is under development.
  • HP HP-UX iSCSI Software Initiator - External Link
  • 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. External Link
    • 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). External Link
    • 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. External Link
      • 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 implemenatation for Kernel 2.6.11 and up. Development of Linux-iSCSI has been halted in favor of this project. External Link
    • UNH-iSCSI - Initiator and target implementation from the University of New Hampshire. External Link
  • NetBSD has support is in latest development version.
  • Windows Initiators:
  • Novell iSCSI Initiator for NetWare - Available for Netware 6.5.
  • Sun Solaris iSCSI Initiator - Available as of the Solaris 10 1/06 update.
iSCSI Host Bus Adapters

iSCSI host bus adapters (HBAs) implement the iSCSI protocol on the adapter itself. They expose themselves as a SCSI HBA to the operating system. Some of the iSCSI HBAs have TOE NIC and some also offload iSCSI processing. Some adapters use NVRAM for configuring bootable iSCSI targets and abstract themselves as SCSI host bus adapters in the OS driver system.

The following vendors have developed iSCSI HBAs:

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.

Software-based Targets

  • 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). External Link
  • iSCSI Enterprise Target - An open source iSCSI target implementation for Linux
  • NetBSD target HOWTO
  • Netware 6.5 has an iSCSI target package
  • Linux - iSCSI target product offerings from 3rd party vendors for various flavors of Linux [1] [2]
  • Microsoft Windows
    • WinTarget - iSCSI target package for Windows [3]
    • RDS StarWind iSCSI target for Windows

See also

External links

RFCs

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

de:ISCSI es:ISCSI fr:ISCSI ja:ISCSI pl:ISCSI ru:ISCSI zh:ISCSI