iSCSI (internet Small Computer System Interface) [ˈaɪskʌzi] ist ein Verfahren, das die Nutzung des SCSI-Protokolls über TCP ermöglicht. Wie beim gewöhnlichen SCSI gibt es einen Controller (Initiator), der die Kommunikation steuert. Die Speichergeräte (Festplatten, Bandlaufwerke, optische Laufwerke etc.) heißen Target.
Die Spezifikation des iSCSI-Standards wurde durch die Storage Networking Industry Association erstellt und im RFC 3720[2] von der Internet Engineering Task Force festgehalten. Erweiterungen und Aktualisierungen wurden zuletzt in RFC 7143[1] zusammengefasst.
iSCSI spezifiziert die Übertragung und den Betrieb direkter Speicherprotokolle nativ über TCP. Bei diesem Verfahren werden SCSI-Daten in TCP/IP-Pakete verpackt und über IP-Netze transportiert (Ports 860, 3260). Beim Multipath iSCSI Routing werden die SCSI-Befehle zunächst zu einem SCSI-Router geleitet, der auf Basis vorhandener Mapping-Tabellen und Parameter wie Netzwerkauslastung und -kosten die bevorzugte Adresse des entsprechenden Zielsystems (Target) ermittelt und für die Kommunikation mit der SCSI-Datenquelle auswählt. Nach dieser Auswahl werden die Pakete in TCP/IP verpackt und zum Netzwerkadapter weitergeleitet, der die Pakete dann über das Netzwerk verschickt.
iSCSI wird eingesetzt, um über eine virtuelle Punkt-zu-Punkt-Verbindung den Zugriff auf das Speichernetz zu ermöglichen, ohne dass eigene Speichergeräte aufgestellt werden müssen. Vorhandene Netzwerkkomponenten (Switches) können genutzt werden, da keine spezielle neue Hardware für die Knotenverbindungen nötig ist, wie es z. B. bei Fibre Channel (FC) der Fall ist. Der Zugriff auf die Festplatten erfolgt blockbasiert, ist also auch für Datenbanken geeignet. Der Zugriff über iSCSI ist darüber hinaus transparent, erscheint auf Anwendungsebene also als Zugriff auf eine lokale Festplatte.
Zur Implementierung von iSCSI wird praktisch ausschließlich Ethernet eingesetzt. Gleichzeitig Vor- und Nachteil dieser Vorgehensweise ist die Kapselung von Datenpaketen in Ethernet und TCP/IP. Vorteil der Ethernetbasis ist, dass auf schon verbreitete Netzwerkstandards zurückgegriffen wird und im Storage-Netzwerk gleiche Technik und Komponenten (Verkabelung, Switches usw.) zum Einsatz kommen wie im restlichen Netzwerk. Ein weiterer Vorteil, der durch TCP/IP entsteht, ist die Routingfähigkeit und Eignung für komplexe, unternehmensweite Netzwerkstrukturen sowie für Weitverkehrsnetze. Nachteilig ist die etwas schlechtere Effizienz,[3] die durch die zusätzlichen Ethernet- und TCP/IP-Protokoll-Erfordernisse (zusätzlicher Overhead) und -Beschränkungen (wie Paketgrößen) zustande kommt und zu einer erhöhten CPU-Belastung sowie zu höheren I/O-Anforderungen (mehr Interrupts pro Datenmenge) und zu höheren Latenzen führen kann. Ethernet bietet auch keine preisgünstige Daisy-Chained Arbitrated Loop (FC-AL)-Topologie. Nachteilig für den Einsatz im Speichernetz können auch ungeeignete Ethernet-Switches sein, die zu wenig Pufferspeicher für den kurzfristigen Ausgleich von zu hohem Datenaufkommen bieten oder durch Store and Forward und ungeeigneten internen Aufbau höhere Latenzen als FC-Switches verursachen. Es sind aber bereits Hardwarelösungen wie z. B. Netzwerkkarten mit TCP/IP Offload Engine, iSCSI offload Engine[4] oder auch die I/OAT verfügbar, die zumindest das TCP/IP-Overhead-Problem der zusätzlichen CPU-Last minimieren. Auch gibt es optimierte Switches, die besonders geringe Latenzzeiten bieten. Die Geschwindigkeit von iSCSI, genau wie die von Fibre Channel (FC), wird von der Geschwindigkeit der verwendeten Netzwerktechnik begrenzt. Bei Verwendung eines Ethernetnetzwerks mit einzelnen 1-GBit/s-Links ist iSCSI somit deutlich langsamer als FC mit seinen heute üblichen 2, 4 oder 8 Gbit/s. Mit 10 Gigabit/s-Ethernet und den damit erreichbaren Durchsätzen bietet dann aber wieder iSCSI eine im Vergleich höhere Geschwindigkeit – bei etwa vergleichbaren Latenzen. Hieraus resultiert der Ansatz von Converged-Netzwerken.
FC-Pakete haben ein günstigeres Verhältnis zwischen Overhead und Payload (Nutzdaten) als iSCSI über Standard-Ethernet, allerdings können mit geeigneten Netzwerkkomponenten bei iSCSI auch Jumbo Frames verwendet werden, die ein günstigeres Verhältnis bieten können. Der Payload eines FC-Frames beträgt bis zu 2048 Byte, der Protokoll-Overhead liegt bei lediglich 36 Byte für den Frameheader sowie 24 Byte für den Interframe Gap. Das TCP/IP-basierte iSCSI ohne Jumbo Frames hat folgendes Verhältnis: 1460 Byte Payload bei 78 Byte Overhead; Jumbo Frames mit 9000 Byte MTU: 8960 Byte Payload bei 78 Byte. Die 48 Byte großen iSCSI-Header werden nur jeweils am Anfang einer bis zu 16 MiB großen Transaktion übertragen und fallen praktisch nicht ins Gewicht.
Converged 10 GbE ist ein Standard für Netzwerke, bei denen 10 GbE und 10 GbFC verschmolzen sind. Zum Converged-Ansatz gehört auch das neue FCoE (Fibre Channel over Ethernet). Dabei werden FC-Pakete in Ethernet gekapselt und für diese dann ebenfalls die Converged-Ethernettopologie genutzt – z. B. sind dann entsprechend aktualisierte Switches (Paketgrößen) transparent für FC- und iSCSI-Storage sowie für das LAN nutzbar.