iSCSI
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Internet Small Computer Systems Interface or iSCSI (
The
Concepts
In essence, iSCSI allows two hosts to negotiate and then exchange
Although iSCSI can communicate with arbitrary types of SCSI devices, system administrators almost always use it to allow servers (such as database servers) to access disk volumes on storage arrays. iSCSI SANs often have one of two objectives:
- Storage consolidation
- Organizations move disparate storage resources from servers around their network to central locations, often in data centers; this allows for more efficiency in the allocation of storage, as the storage itself is no longer tied to a particular server. In a SAN environment, a server can be allocated a new disk volume without any changes to hardware or cabling.
- Disaster recovery
- Organizations mirror storage resources from one data center to a remote data center, which can serve as a hot / standby in the event of a prolonged outage. In particular, iSCSI SANs allow entire disk arrays to be migrated across a WAN with minimal configuration changes, in effect making storage "routable" in the same manner as network traffic.
Initiator
An initiator functions as an iSCSI client. An initiator typically serves the same purpose to a computer as a SCSI bus adapter would, except that, instead of physically cabling SCSI devices (like hard drives and tape changers), an iSCSI initiator sends SCSI commands over an IP network. An initiator falls into two broad types:
A software initiator uses code to implement iSCSI. Typically, this happens in a
A hardware initiator uses dedicated hardware, typically in combination with firmware running on that hardware, to implement iSCSI. A hardware initiator mitigates the overhead of iSCSI and TCP processing and Ethernet interrupts, and therefore may improve the performance of servers that use iSCSI. An iSCSI
An iSCSI offload engine, or iSOE card, offers an alternative to a full iSCSI HBA. An iSOE "offloads" the iSCSI initiator operations for this particular network interface from the host processor, freeing up CPU cycles for the main host applications. iSCSI HBAs or iSOEs are used when the additional performance enhancement justifies the additional expense of using an HBA for iSCSI,[4] rather than using a software-based iSCSI client (initiator). iSOE may be implemented with additional services such as TCP offload engine (TOE) to further reduce host server CPU usage.
Target
The iSCSI specification refers to a storage resource located on an iSCSI server (more generally, one of potentially many instances of iSCSI storage nodes running on that server) as a target.
An iSCSI target is often a dedicated network-connected hard disk storage device, but may also be a general-purpose computer, since as with initiators, software to provide an iSCSI target is available for most mainstream operating systems.
Common deployment scenarios for an iSCSI target include:
Storage array
In a data center or enterprise environment, an iSCSI target often resides in a large storage array. These arrays can be in the form of commodity hardware with
A storage array usually provides distinct iSCSI targets for numerous clients.[5]
Software target
Nearly all modern mainstream server operating systems (such as
Logical unit number
In
In enterprise deployments, LUNs usually represent subsets of large RAID disk arrays, often allocated one per client. iSCSI imposes no rules or restrictions on multiple computers sharing individual LUNs; it leaves shared access to a single underlying filesystem as a task for the operating system.
Network booting
For general data storage on an already-booted computer, any type of generic network interface may be used to access iSCSI devices.[
A separate
Most Intel Ethernet controllers for servers support iSCSI boot.[9]
Addressing
iSCSI uses TCP (typically
- iSCSI Qualified Name (IQN)
- Format: The iSCSI Qualified Name is documented in RFC 3720, with further examples of names in RFC 3721. Briefly, the fields are:
- literal iqn (iSCSI Qualified Name)
- date (yyyy-mm) that the naming authority took ownership of the domain
- reversed domain name of the authority (e.g. org.alpinelinux, com.example, to.yp.cr)
- Optional ":" prefixing a storage target name specified by the naming authority.
- From the RFC:[10]
Type | . | Date | . | Naming Auth | : | String defined by example.com Naming Authority |
---|---|---|---|---|---|---|
iqn | . | 1992-01 | . | com.example | : | storage:diskarrays-sn-a8675309 |
iqn | . | 1992-01 | . | com.example | ||
iqn | . | 1992-01 | . | com.example | : | storage.tape1.sys1.xyz |
iqn | . | 1992-01 | . | com.example | : | storage.disk2.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
)
IQN format addresses occur most commonly. They are qualified by a date (yyyy-mm) because domain names can expire or be acquired by another entity.
The IEEE Registration authority provides EUI in accordance with the 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 Serial Attached SCSI (SAS) storage technologies.
Usually, an iSCSI participant can be defined by three or four fields:
- Hostname or IP Address (e.g., "iscsi.example.com")
- Port Number (e.g., 3260)
- iSCSI Name (e.g., the IQN "iqn.2003-01.com.ibm:00.fcd0ab21.shark128")
- An optional CHAPSecret (e.g., "secretsarefun")
iSNS
iSCSI initiators can locate appropriate storage resources using the Internet Storage Name Service (iSNS) protocol. In theory, iSNS provides iSCSI SANs with the same management model as dedicated Fibre Channel SANs. In practice, administrators can satisfy many deployment goals for iSCSI without using iSNS.
Security
Authentication
iSCSI initiators and targets prove their identity to each other using
Additionally, as with all IP-based protocols, IPsec can operate at the network layer. The iSCSI negotiation protocol is designed to accommodate other authentication schemes, though interoperability issues limit their deployment.
Logical network isolation
To ensure that only valid initiators connect to storage arrays, administrators most commonly run iSCSI only over logically isolated backchannel networks. In this deployment architecture, only the management ports of storage arrays are exposed to the general-purpose internal network, and the iSCSI protocol itself is run over dedicated network segments or
Physical network isolation
While iSCSI can be logically isolated from the general network using VLANs only, it is still no different from any other network equipment and may use any cable or port as long as there is a completed signal path between source and target. Just a single cabling mistake by a network technician can compromise the barrier of logical separation, and an accidental bridging may not be immediately detected because it does not cause network errors.
In order to further differentiate iSCSI from the regular network and prevent cabling mistakes when changing connections, administrators may implement self-defined color-coding and labeling standards, such as only using yellow-colored cables for the iSCSI connections and only blue cables for the regular network, and clearly labeling ports and switches used only for iSCSI.
While iSCSI could be implemented as just a VLAN cluster of ports on a large multi-port switch that is also used for general network usage, the administrator may instead choose to use physically separate switches dedicated to iSCSI VLANs only, to further prevent the possibility of an incorrectly connected cable plugged into the wrong port bridging the logical barrier.
Authorization
Because iSCSI aims to consolidate storage for many servers into a single storage array, iSCSI deployments require strategies to prevent unrelated initiators from accessing storage resources. As a pathological example, a single enterprise storage array could hold data for servers variously regulated by the
Typically, iSCSI storage arrays explicitly map initiators to specific target LUNs; an initiator authenticates not to the storage array, but to the specific storage asset it intends to use. However, because the target LUNs for SCSI commands are expressed both in the iSCSI negotiation protocol and in the underlying SCSI protocol, care must be taken to ensure that access control is provided consistently.
Confidentiality and integrity
For the most part, iSCSI operates as a cleartext protocol that provides no cryptographic protection for data in motion during SCSI transactions. As a result, an attacker who can listen in on iSCSI Ethernet traffic can:[12]
- Reconstruct and copy the files and filesystems being transferred on the wire
- Alter the contents of files by injecting fake iSCSI frames
- Corrupt filesystems being accessed by initiators, exposing servers to software flaws in poorly tested filesystem code.
These problems do not occur only with iSCSI, but rather apply to any SAN protocol without cryptographic security. IP-based security protocols, such as IPsec, can provide standards-based cryptographic protection to this traffic.
Implementations
Operating systems
The dates in the following table denote the first appearance of a native driver in each operating system. Third-party drivers for Windows and Linux were available as early as 2001, specifically for attaching IBM's IP Storage 200i appliance.[13]
OS | First release date | Version | Features |
---|---|---|---|
IBM i | 2006-10 | V5R4M0 (as i5/OS) | Target, Multipath |
VMware ESX
|
2006-06 | ESX 3.0, ESX 4.0, ESXi 5.x, ESXi 6.x | Initiator, Multipath |
AIX | 2002-10 | AIX 5.3 TL10, AIX 6.1 TL3 | Initiator, Target |
Windows | 2003-06 | 2000, XP Pro, 2003, Vista, 2008, 2008 R2, 7, 8, Server 2012, 8.1, Server 2012 R2, 10, Server 2016, 11, Server 2019 | Initiator, Target,[b] Multipath |
NetWare
|
2003-08 | NetWare 5.1, 6.5, & OES | Initiator, Target |
HP-UX | 2003-10 | HP 11i v1, HP 11i v2, HP 11i v3 | Initiator |
Solaris
|
2002-05 | Solaris 10, OpenSolaris | Initiator, Target, Multipath, iSER |
Linux | 2005-06 | 2.6.12, 3.1 | Initiator (2.6.12), |
OpenBSD | 2009-10 | 4.9 | Initiator |
NetBSD | 2002-06 | 4.0, 5.0 | Initiator (5.0), Target (4.0) |
FreeBSD | 2008-02 | 7.0 | Initiator (7.0), Target (10.0), Multipath, iSER, VAAI[c] |
OpenVMS | 2002-08 | 8.3-1H1 | Initiator, Multipath |
macOS | 2008-07 | 10.4— | N/A[d] |
Targets
Most iSCSI targets involve disk, 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 Parallel SCSI or Fibre Channel interfaces are bridged by using iSCSI target software, external bridges, or controllers internal to the device enclosure.
Alternatively, it is possible to virtualize disk and tape targets. 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) products. 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 and bridges
Multiple systems exist that allow Fibre Channel, SCSI and 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. An iSCSI gateway bridges IP servers to Fibre Channel SANs. The TCP connection is terminated at the gateway, which is implemented on a Fibre Channel switch or as a standalone appliance.
See also
- ATA-over-Ethernet (AoE)
- Fibre Channel over Ethernet (FCoE)
- Fibre Channel over IP (FCIP)
- HyperSCSI SCSI over Ethernet frames instead of IP (as iSCSI is)
- ISCSI Conformance Testing and Testing Tool Requirement
- iSCSI Extensions for RDMA (iSER)
- Internet Fibre Channel Protocol (iFCP)
- Internet Storage Name Service (iSNS)
- LIO Linux SCSI Target
- Network block device (NBD)
- The SCST Linux SCSI target software stack
- Service Location Protocol
Notes
- ^ Unless tunneled, such as in Fibre Channel over Ethernet or Fibre Channel over IP.
- Windows Unified Data Storage Server. Target available in Storage Server 2008 (excepted Basic edition).[14]Target available for Windows Server 2008 R2 as a separate download. Windows Server 2012, 2012 R2 and 2016 have built-in Microsoft iSCSI target version 3.3.
- ^ a b vStorage APIs Array Integration
- ^ macOS has neither initiator nor target coming from vendor directly. [citation needed]
References
- ^ Rouse, Margaret (May 2011). "iSCSI (Internet Small Computer System Interface)". SearchStorage. Retrieved 21 January 2019.
- ^ "ISCSI SAN: Key Benefits, Solutions & Top Providers Of Storage Area Networking". Tredent Network Solutions. Archived from the original on 12 August 2014. Retrieved 3 November 2012.
- ^ "iSCSI proof-of-concept at IBM Research Haifa". IBM. Retrieved 13 September 2013.
- ^ "Chelsio Demonstrates Next Generation 40G iSCSI at SNW Spring". chelsio.com. 2013-04-03. Retrieved 2014-06-28.
- ^ Architecture and Dependability of Large-Scale Internet Services David Oppenheimer and David A. Patterson, Berkeley, IEEE Internet Computing, September–October 2002.
- ^ "Chainloading iPXE". ipxe.org. Retrieved 2013-11-11.
- ^ "Burning iPXE into ROM". ipxe.org. Retrieved 2013-11-11.
- ^ "iPXE - Open Source Boot Firmware". ipxe.org. Retrieved 2013-11-11.
- ^ "Intel Ethernet Controllers". Intel.com. Retrieved 2012-09-18.
- .
Type "iqn." (iSCSI Qualified Name)
- .
- ^ "Protecting an iSCSI SAN". VMware. Archived from the original on 3 March 2016. Retrieved 3 November 2012.
- ^ "IBM IP storage 200i general availability". IBM. Retrieved 13 September 2013.
- ^ "Windows Storage Server | NAS | File Management". Microsoft. Retrieved 2012-09-18.
Further reading
- RFC 3720 - Internet Small Computer Systems Interface (iSCSI) (obsolete)
- RFC 3721 - Internet Small Computer Systems Interface (iSCSI) Naming and Discovery (updated)
- RFC 3722 - String Profile for Internet Small Computer Systems Interface (iSCSI) Names
- RFC 3723 - Securing Block Storage Protocols over IP (Scope: The use of IPsec and IKE to secure iSCSI, iFCP, FCIP, iSNS and SLPv2.)
- RFC 3347 - Small Computer Systems Interface protocol over the Internet (iSCSI) Requirements and Design Considerations
- RFC 3783 - Small Computer Systems Interface (SCSI) Command Ordering Considerations with iSCSI
- RFC 3980 - T11 Network Address Authority (NAA) Naming Format for iSCSI Node Names (obsolete)
- RFC 4018 - Finding Internet Small Computer Systems Interface (iSCSI) Targets and Name Servers by Using Service Location Protocol version 2 (SLPv2)
- RFC 4173 - Bootstrapping Clients using the Internet Small Computer System Interface (iSCSI) Protocol
- RFC 4544 - Definitions of Managed Objects for Internet Small Computer System Interface (iSCSI)
- RFC 4850 - Declarative Public Extension Key for Internet Small Computer Systems Interface (iSCSI) Node Architecture (obsolete)
- RFC 4939 - Definitions of Managed Objects for iSNS (Internet Storage Name Service)
- RFC 5048 - Internet Small Computer System Interface (iSCSI) Corrections and Clarifications (obsolete)
- RFC 5047 - DA: Datamover Architecture for the Internet Small Computer System Interface (iSCSI)
- RFC 5046 - Internet Small Computer System Interface (iSCSI) Extensions for Remote Direct Memory Access (RDMA)
- RFC 7143 – Internet Small Computer System Interface (iSCSI) Protocol (consolidated)