iSCSI - internet Small Computer System Interface

Die Abkürzung iSCSI steht für internet Small Computer System Interface. Damit wird im Allgemeinen ein spezielles standardisiertes Verfahren bezeichnet, das es dem Anwender ermöglicht, ein iSCSI-Protokoll über TCP zu nutzen. Das TCP - zu Deutsch Übertragungsprotokoll - legt einige Standards fest, auf welchen Wegen Daten zwischen verschiedenen Computern ausgetauscht werden sollen. Heute beherrschen nahezu alle Computer dieses Protokoll und es wird in den meisten Bereichen und Branchen aktiv genutzt.

iSCSI ermöglicht also die Nutzung von Netzwerkspeichern wie lokale Speicher. Im Gegensatz zu anderen Systemen ist das Dateisystem des Speichermediums dabei egal, weil iSCSI nur rohe Datenblöcke überträgt. Der Netzwerkspeicher kann eigentlich jeglicher Art sein – von Festplatten über Partitionen davon bis hin zu optischen Laufwerken. Auch Image-Dateien können als Speichermedium dienen, Ordner hingegen niemals.
Es unterscheidet sich insofern nicht vom klassischen SCSI, als dass es ebenfalls mithilfe eines Controllers, der auch Kommunikator genannt wird, die Kommunikation zwischen den einzelnen Endpunkten koordiniert und die Speichergeräte ebenfalls als Targets benannt werden.

iSCSI wurde von der Storage Networking Industry Association erstellt. Der derzeitige Standard ist im RFC 3720 durch die Internet Engineering Task Force niedergelegt worden.

Aufbau und Funktion eines iSCSI- Netzwerks

Das Betriebssystem beim iSCSI-Netzwerk setzt sich zusammen aus dem iSCSI-Treiber, d.h. der Software, dem TCP-Protokoll und der spezifischen Hardware. Es empfängt Befehle von einem IP-Netzwerk und sendet seinerseits Befehle an dieses zurück. Das IP-Netzwerk tauscht wiederrum Daten mit einem externen Server aus. Auf diesen externen Server ist ein iSCSI-Dienst implementiert. Dieser Server ist dann mit dem eigentlichen Speicherelement, dem SAN (Storage Area Network) verbunden. Außerdem befindet sich in der Komponente iSCSI-Storage des Netzwerks, genügend Speicherplatz, um aktuell nicht benötigte Daten zwischen zu speichern. iSCSI bietet also alle notwendigen Komponenten an, die zum Aufbau eines Speichernetzwerkes benötigt werden. Ein SAN ist ein Speichernetzwerk das speziell für die Übertragung großer Datenmengen ausgerichtet ist- durch eine kontinuierliche, serielle Hochgeschwindigkeitsübertragung. Bis jetzt haben diese Netzwerke überwiegend den Fibre-Channel-Standard genutzt. Mehr und mehr rückt aber auch iSCSI in den Blickpunkt und entwickelt sich zu einer echten Alternative.

Alternative Funktionen

iSCSI definiert also die Übertragung und den Betrieb direkter Speicherprotokolle über das TCP- Protokoll. Dabei werden die Daten in TCP-Pakete verpackt und über ein IP-Netzwerk transportiert. Dabei kann ein solches Paket zu einem oder mehreren Zielkomponenten geschickt werden. Die spezifischen Zielorte heißen Target. Sie empfangen ihre Daten vom Initiator. Allerdings können die Befehle auch erst zu einem SCSI-Router geschickt werden, welcher dann Parameter wie Netzwerkauslastung und Kosten auswertet und auf dieser Basis das bevorzugte Target ermittelt. Erst hier werden die Daten dann in Pakete verpackt, an den Netzwerkadapter weitergeleitet und von diesem dann über das Netzwerk an die ermittelte Zieladresse verschickt. Dieses Verfahren nennt sich Multipath iSCSI Routing. Somit können mit iSCSI virtuelle Punkt-zu-Punkt-Verbindungen aufgebaut werden, die den Zugriff auf das Speichernetz ermöglichen, ohne dass eigene Speichermedien zur Verfügung gestellt werden müssen.

Vor- und Nachteile des iSCSI

iSCSI befindet sich in seiner Anwendung in ständiger Konkurrenz zum Fibre Chanel. Gegenüber diesem Verfahren hat iSCSI einige bedeutende Vorteile: erstens können von iSCSI bereits vorhandene Netzwerkkomponenten genutzt werden – zum Beispiel Switches - und es muss keine neue Hardware zur Verfügung gestellt werden. Beim Fibre Chanel ist die Implementierung neuer Hardwarekomponenten Grundvoraussetzung für die Übertragung. Außerdem ist der Zugriff auf das Speichernetzwerk über iSCSI transparent. Das bedeutet für den Anwender, dass er auf das Speichernetzwerk zugreifen kann, wie auf eine gewöhnliche lokale Festplatte. Zweitens wird zur Implementierung von iSCSI ausschließlich Ethernet verwendet, d.h., dass auch Datenpakete nur in Ethernet und TCP gekapselt werden. Das hat den Vorteil, dass auf bereits verbreitete Netzwerkstandards aufgebaut werden kann und auch im Storage-Netzwerk die gleiche Technik wie im restlichen Netzwerk angewendet werden kann. Außerdem sind Daten, die in Ethernet gekapselt werden, routingfähig. Allerdings verschlechtert sich die Performance des Netzwerks geringfügig. Das kommt dadurch zustande, dass Ethernet zusätzliche Anforderungen stellt, wie zum Beispiel eine Beschränkung der Paketgröße. Dadurch wird die CPU stärker belastet und die I/O-Anforderungen an den Server steigen. Beides führt einer höheren Latenz, d.h. zu einer Erhöhung der Verzögerungszeit bei der Datenübertragung. Allerdings wird derzeit verstärkt in die Entwicklung neuer Hardwarelösungen investiert, die die zusätzliche CPU-Last mindern können. Eine dieser Lösungen sind Netzwerkkarten mit TCP Offload Engine. Ein weiterer Nachteil der Ethernet-Basis wird dadurch deutlich, dass Ethernet-Switches nicht die Hochverfügbarkeitsfunktionalität bieten, die durch die speziellen FC-Switches angeboten wird. Allerdings wird auch in diesem Bereich massiv in die Entwicklung von Switches investiert, die durch geringere Latenzzeiten die Performance des iSCSI erhöhen können. Derzeit bieten iSCSI-Pakete auch noch ein etwas ungünstigeres Verhältnis von Overhead und Payload an als FC-Pakete. Allerdings gibt es auch hier bereits eine Lösung: sogenannte Jumbo Frames, die ein noch günstigeres Verhältnis als FC-Pakete bieten, allerdings auch spezielle Netzwerkkomponenten voraussetzen. Bei beiden Systemen wird die Geschwindigkeit von der Geschwindigkeit der Technik begrenzt. Ein Ethernet-Netzwerk ist meist durch Geschwindigkeiten von 1 Gbit/s gekennzeichnet. Fibre Chanel laufen aber meistens mit 4 oder sogar 8 Gbit/s. Allerdings gibt es auch Ethernet-Netzwerke mit einem Durchsatz von 10 Gbit/s. Die Netzwerktechnik sollte also in ihrer Geschwindigkeit an die speziellen Anforderungen des Anwenders angepasst werden.

Komponenten des iSCSI

Grundsätzlich werden bei iSCSI zwei Gruppen von Teilnehmern unterschieden: der iSCSI Initiator und das ISCSI Target.

Der iSCSI Initiator

Der iSCSI Initiator ist der Client in einem Speichernetzwerk, das auf iSCSI beruht. In der Langfassung wird er auch als iSCSI Initiator Node bezeichnet. Der Initiator hat die Möglichkeit, sich aktiv mit dem Server des Netzwerkes zu verbinden.
Es werden folgende iSCSI Initiatoren aufgrund ihrer unterschiedlichen Eigenschaften voneinander unterschieden:

  • Der iSCSI Hardware Initiator – wird auch iSCSI HBA genannt und bezeichnet eine Karte auf der die gesamte Funktionalität des Initiators implementiert ist. Damit ist es möglich einen Server über iSCSI zu booten. Diese Netzwerkkarten unterscheiden sich ebenfalls voneinander: so gibt es spezielle WLAN-Netzwerkkarten und solche Netzwerkkarten die nur für lokale Datennetze geeignet sind.

  • Der iSCSI Software Initiator- ist ein in eine bestimmte Software implementierter iSCSI Initiator. Das bedeutet, dass die Operationen, die der Initiator ausführt, nicht von den Hardware Komponenten auf einer Karte geregelt werden, sondern von der CPU des angeschlossenen Servers. Diese Art des Initiators beruht vor allem auf der gestiegenen Performance der derzeit verfügbaren Server-CPU´s und war mit früheren CPU´s aufgrund einer zu geringen Leistung noch nicht denkbar. Als Hardware werden bei dieser Art von Initiatoren bekannte Netzwerkkarten wie zum Beispiel von Linux oder Microsoft verwendet. Der Nachteil dieses Initiators ist allerdings, dass das Booten von iSCSI nicht ohne weiteres möglich ist. Hier fällt zusätzlicher Konfigurationsaufwand an. Vorteile des Software Initiators liegen allerdings darin begründet, dass er stabiler und zudem kostengünstiger als ein Hardware Initiator ist. Dementsprechend ist er heute bereits weiter verbreitet als Hardware Initiatoren.

Das iSCSI Target

Der Server eines iSCSI-Netzwerks wird als iSCSI Target – oder auch iSCSI Target Node – bezeichnet. Dieser empfängt nach einer geglückten Verbindung die Daten, bzw. Befehle, des Initiators. Diese Daten werden Kommandos genannt und zum effizienteren Transport in IP-Pakete verpackt. Jedes Target stellt ein oder mehrere LUs bereit. Als LU werden logical units bezeichnet, d.h. logische, virtuelle Ports, die dem Anwender den Zugriff auf die verschiedenen Netzwerkdienste ermöglichen. Auch bei Targets unterscheiden sich zwei verschiedene Formen:

  • Hardware als iSCSI Speicherplatz.

  • Software als iSCSI Target Software zur Installation auf einem normalen Server. Diese werden ebenfalls zum Beispiel von Linux oder Windows angeboten.

Die Funktionalität der Targets kann in einen iSCSI-Server auf verschiedene Arten implementiert werden: es können entweder mehrere Targets in eine logical unit implementiert werden oder nur ein Target pro LU. Es kann aber auch ein Target pro Interface implementiert werden.

Die iSCSI Kommunikation

Die Kommunikation zwischen Initiator und Target findet auf der Basis einzelner Nachrichtenabschnitte statt. Diese Fragmente werden ISCSI protocol data unit genannt. Dabei kann nur der Initiator die Kommunikation einleiten. Dazu baut der Initiator eine oder mehrere Verbindungen – auch Connections- auf. Ein jedes solches Gespräch zwischen Initiator und Target wird als eine ISCSI Session bezeichnet. Bei diesen Sessions werden ebenfalls zwei Varianten unterschieden, der jeweilige Typ wird aber bereits beim iSCSI Login festgelegt und kann nachher nicht mehr verändert werden:

  • Zeitlich nicht limitierte Sessions, sogenannte normal operational sessions
  • Sessions, die mit der aufgebauten Verbindung zu Target beendet werden. Sie dienen der Target Discovery und werden daher auch als Discovery-Sessions bezeichnet.

Die Verbindungen vom Initiator zum Target werden meist über gewöhnliche Ethernet Switches aufgebaut.

Vergleichbare Standards

Derzeit gibt es auf dem Markt viele mit der Funktionsweise des iSCSI vergleichbare Projekte, die aber meist weniger bekannt sind und dementsprechend auch viel weniger genutzt werden. Einige dieser Projekte sind zudem an spezielle Hardware gebunden. Außerdem unterscheiden diese Standards sich so weit vom iSCSI, dass sie in vielen Anwendungsbereichen nicht die geforderten Aufgaben erfüllen können. Somit bleibt iSCSI im Vergleich der derzeit am meisten genutzte Standard, auch wenn seine Performance oft bemängelt wird:

  • ATA: Bei ATA über Ethernet werden die speziellen ATA-Pakete in Ethernet gekapselt, allerdings nicht in TCP. Im Unterschied zu iSCSI ergeben sich durch diese Art der Kapselung geringfügige Vorteile bezüglich der Performance des Netzwerks. Allerdings ist ATA über Ethernet nicht routingfähig.

  • Fibre Chanel über Ethernet: Hierbei werden ebenfalls die vorhandenen Datenpakete nur im Ethernet gekapselt und nicht in TCP. Wie bei ATA ergeben sich hieraus zwar Performancevorteile, das Netzwerk büßt dafür aber seine Routingfähigkeit ein.

  • Fibre Chanel über IP: Dieser Standard ist im Unterschied zum Fibre Chanel über Ethernet und ebenso wie iSCSI Routingfähig. Diese Fähigkeit beruht auf der zusätzlichen Kapselung der Daten über IP und nicht nur über Ethernet.

  • HyperSCSI: Hierbei werden die SCSI-Pakete noch zusätzlich in Ethernet gekapselt, allerdings nicht mehr in TCP. Im Unterschied zum klassischen iSCSI ist dieser Standard damit ebenfalls nicht routingfähig, weißt aber eine höhere Performance auf.