What is iSCSI?

iSCSI (internet SCSI), is an Internet Protocol (IP)-based area storage networking standard for linking data storage facilities. It provides block-level access to storage devices by carrying SCSI commands over a TCP/IP network.[1]

Unlike FC SAN which requires dedicated hardware (FC HBA, FC switch, etc.), iSCSI SAN storage can be built on existing network infrastructure[2], reducing the CapEx overhead involved in purchasing additional FC hardware.

image2-6
Figure 1: iSCSI HighLevel. [3]

How does iSCSI work?

iSCSI operates via the sending of block-level data between an iSCSI initiator (upon a server) and an iSCSI target (the storage array). The initiator encapsulates the SCSI payload into a iSCSI PDU. This is then encapsulated into a TCP segment, an IP packet, and finally an Ethernet frame. The frame is then transmitted over the IP network to the iSCSI target.

Untitled-drawing--2--1
Figure 2: iSCSI Frame.

iSCSI Initiators

The client within an iSCSI SAN is known as the iSCSI Initiator. The iSCSI initiator connects and sends SCSI commands to the iSCSI Target. The iSCSI targets are learned via the iSCSI discovery session. The discovery session returns the set of targets that the Initiator can access on an iSCSI storage system.

There are 3 main types of iSCSI initiators - software, hardware and hardware assisted.

  • Software Initiators - The iSCSI Initiator is performed completely within the software, with all operations being performed by the server's CPU.
  • Hardware Assisted Initiators - Only part of the iSCSI stack is processed by the card, the remainder is still processed via the host.
  • Hardware Initiators - The entire iSCSI stack is implemented in hardware (using hardware resources on the adapter); also called an iSCSI HBA.[4]

vSphere

VMware uses the following terminology for iSCSI adapters (vmhbas),

  • Software Adapter (aka Software Initiator) - Uses standard NICs to connect your host to a remote iSCSI target on the IP network.[5]
  • Dependent Hardware iSCSI Adapter (aka Hardware Assisted Initiator) - Third-party adapter that depends on VMware networking and iSCSI configuration and management interfaces.[6]
  • Independent Hardware iSCSI Adapter (aka Hardware Initiator) - Third-party adapter that offloads the iSCSI and network processing and management from your host.[7] In other words, no VMkernel networking is required.

Addressing

iSCSI typically uses TCP ports 860 and 3260 for the protocol itself, with higher-level names used to address the objects within the protocol. These special names refer to both iSCSI initiators and targets. iSCSI provides three name-formats:[8] IQN, EUI and NAA. However, IQN is the most common.

A sample IQN format is iqn.yyyy-mm.naming-authority:unique name where:[9]

  • yyyy-mm is the year and month when the naming authority was established.
  • naming-authority is usually a reverse syntax of the Internet domain name of the naming authority.
  • unique name is any name you want to use, for example, the name of your host. The naming authority must make sure that any names assigned following the colon are unique.

iSCSI Multipathing

Multipathing is a technique that allows more than one physical path between the Initiator and the Target to be used. This provides both path redundancy and performance benefits.

Security

Security can be added to iSCSI via either CHAP, IPsec, or via the use of dedicated and isolated networks at both the logical and physical layers.

References


  1. "iSCSI - Wikipedia." https://en.wikipedia.org/wiki/ISCSI. Accessed 16 Oct. 2018. ↩︎

  2. "What's iSCSI Storage and How to Plan an iSCSI SAN?." 9 Aug. 2018, https://community.fs.com/blog/iscsi-storage-basics-plan-iscsi-san.html. Accessed 16 Oct. 2018. ↩︎

  3. "How to create an iSCSI Target in Centos7 | Unixmen." 15 Feb. 2016, https://www.unixmen.com/how-to-create-an-iscsi-target/. Accessed 16 Oct. 2018. ↩︎

  4. "vStorage - Software vs Hardware iSCSI? - vInfrastructure Blog." https://vinfrastructure.it/vdesign/vstorage-software-vs-hardware-iscsi/. Accessed 16 Oct. 2018. ↩︎

  5. "Configuring iSCSI Adapters and Storage - VMware Docs." 28 Jun. 2017, https://docs.vmware.com/en/VMware-vSphere/5.5/com.vmware.vsphere.storage.doc/GUID-C476065E-C02F-47FA-A5F7-3B3F2FD40EA8.html. Accessed 16 Oct. 2018. ↩︎

  6. "Configuring iSCSI Adapters and Storage - VMware Docs." 28 Jun. 2017, https://docs.vmware.com/en/VMware-vSphere/5.5/com.vmware.vsphere.storage.doc/GUID-C476065E-C02F-47FA-A5F7-3B3F2FD40EA8.html. Accessed 16 Oct. 2018. ↩︎

  7. "Configuring iSCSI Adapters and Storage - VMware Docs." 28 Jun. 2017, https://docs.vmware.com/en/VMware-vSphere/5.5/com.vmware.vsphere.storage.doc/GUID-C476065E-C02F-47FA-A5F7-3B3F2FD40EA8.html. Accessed 16 Oct. 2018. ↩︎

  8. "iSCSI - Wikipedia." https://en.wikipedia.org/wiki/ISCSI. Accessed 16 Oct. 2018. ↩︎

  9. "About the iSCSI Qualified Name (IQN) - Veritas." 29 Jun. 2017, https://www.veritas.com/support/en_US/doc/122285129-126579592-0/v122374525-126579592. Accessed 16 Oct. 2018. ↩︎