iSCSI - IP-basierte Speichernetze

iSCSI-Hardware

iSCSI mit TCP/IP in Software zu realisieren, wäre praktisch unbrauchbar: Die CPU-Last wäre für einen flüssigen Betrieb zu hoch. Daher wurde schon sehr früh der Einsatz der bereits erwähnten TOEs vorgeschlagen. Dabei handelt es sich praktisch um Netzwerkkarten, die einen Koprozessor für das De- und Reassemblieren der Speicherdatenblöcke mitbringen.

Das Sortieren der TCP-Pakete in die richtige Reihenfolge erfordert reichlich schnellen Halbleiterspeicher und bedingt zudem eine gewisse Verzögerung. Der Aufwand für die Konvertierung von SCSI in iSCSI und zurück erforderte bei den ersten Versionen der Spezialchips etwa vier Millionen Gatter. Ein Fibre-Channel-Chip benötigt etwa 500.000 Gatter für eine ähnliche Funktionalität. Die Gatter-Zahl ist also für TOEs um den Faktor acht höher als für Fibre-Channel-HBAs.

Um den TCP/IP-Flaschenhals aufzuweiten, existieren drei grundlegende Ansätze. Bei der Verwendung einer Netzwerkkarte als iSCSI-"HBA" muss schlicht der Host mit schnellen Prozessoren und optimierter Software die Zusatzlast auffangen. Im Fall echter TOEs unterscheidet man zwischen der Sparversion Data-Path Offload und dem Full Offload. Letzterer lagert die gesamte Netz- und Datenverarbeitung auf den Adapter aus. Das erhöht nicht nur die Kosten, sondern bringt auch gewisse Probleme mit sich: Der Host bleibt dadurch vom direkten Zugriff auf eine Reihe übergeordneter Funktionen (Routing, Failover, Load-Balancing, usw.) abgeschnitten. Data-Path Offload lagert dagegen nur die Datenübertragung aus. Die Entscheidungslogik bleibt in gewohnter Weise als Software im Rechner.

Es existiert bereits eine Vielzahl von Konvertern und Switches, mit denen sich Schnittstellen und Protokolle in jeder denkbaren Kombination umwandeln lassen. So wandelt etwa SANrad wahlweise zwischen SCSI, FC und iSCSI und gibt das Ergebnis über eine passende Schnittstelle aus. Daneben übernimmt die Box noch die Virtualisierung für ein ganzes SAN. Das alles wird von einem Echtzeit-Prozessor unter einem Echtzeit-Betriebssystem ausgeführt.