iSCSI im ersten Praxistest

SAN-Alternative

26. September 2007, 10:19 Uhr | Andreas Stolzenberger

Günstige SAN-Inftrastrukturen mit iSCSI sollen an die Stelle teurer Fibre-Channel-Installationen treten. In ersten Tests der Real-World Labs zeigt iSCSI seine Stärken, aber auch Schwächen.

Mit der richtigen Hardware- und Netzwerkkonfiguration kann iSCSI in kleineren SANs als Alternative zu Fibrechannel auftreten..

Keine Frage, Fibre-Channel-SANs gehen ins Geld. Jeder Server braucht einen oder mehrere FC-Host-Bus-Adapter, das SAN einen teuren FC-Switch, und das Ganze fordert auch noch optische Kabel. Wie verlockend günstig scheint dagegen doch iSCSI: keine besonderen HBAs, bestehende Ethernet-Switche und reguläre CAT-5-Verkabelung genügen. Ganz so einfach sieht es in der Praxis dann doch nicht aus. Die nutzbare Bandbreite eines iSCSI-SANs liegt unter der einer FC-Infrastruktur, und zudem kann das Protokoll sowohl Server als auch bestehende LAN-Infrastrukturen über Gebühr belasten. Network Computing hat für erste Praxistests der günstigen Infrastruktur in den Real-World Labs ein kleines iSCSI-SAN mit verschiedenen iSCSI-Initiatoren, einem iSCSI-Target und unterschiedlichen Switch-Szenarios aufgebaut und über mehrere Wochen getestet.

iSCSI verheiratet das Massenspeicherprotokoll SCSI mit dem Transport TCP/IP. Ursprünglich zielt SCSI auf eine Busarchitektur mit vergleichsweise wenigen Geräten ab. Daher verfügt das Protokoll über recht geringe Adressinformationen und keine Routingdaten. Ein Gerät wird schlicht über eine ID, die Logical-Unit-Number (LUN) identifiziert. Dagegen kann SCSI auf einer Busarchitektur große Blöcke versenden. SCSI-Kommandos lassen theoretisch zu, Datenblöcke bis 32 MByte am Stück zu übermitteln. TCP/IP als Transport erweitert die Adressierbarkeit und erlaubt Routing. Allerdings schränkt es die Blockgröße rapide ein. Ein TCP/IP-Paket kann gerade mal 1500 Byte Nutz-daten aufnehmen, und diesen Block müssen sich SCSI-Daten und iSCSI-Protokollinformationen auch noch teilen. Beim Fibre-Channel stehen im geswitchen SAN Datenblöcke mit 2048 Byte Nutzlast zur Verfügung. Im Gigabit-Ethernet kann iSCSI, mit den richtigen Adaptern und Switches Jumbo-Frames verwenden und damit die Payload pro Paket von 1500 auf 9000 Byte erhöhen – wie sich im Verlauf des Tests zeigt, erreicht das iSCSI-SAN mit Jumbo-Frames spürbar bessere Leistungen. iSCSI verfügt über eine aufwändige Namensidentifikation von Geräten. Ähnlich dem DNS-Server einer IP-Infrastruktur, der logische Namen zu IP-Adressen auflöst, offeriert iSCSI einen iSNS-Namensserver, der Gerätenamen zu IP-Adressen und Ports zuweist. Damit sind einzelne IP-Adressen nicht fest an iSCSI-Geräte gebunden. So kann eine Maschine mit einer einzelnen IP-Adresse mehrere logische iSCSI-Geräte im SAN bereitstellen.

iSCSI-Initiatoren und -Targets

Eine Maschine, die auf ein iSCSI-Laufwerk zugreift, heißt Initiator. Als physischer Initiator kann dabei eine reguläre Netzwerkkarte mit einem iSCSI-Softwaretreiber oder ein spezieller iSCSI-Adapter auftreten. Seit einigen Monaten offeriert Microsoft einen Software-Initiator für die Server-Betriebssysteme Windows-2000- und -2003-Server. Diesen Treiber können Anwender kostenfrei von der Microsoft-Webseite herunterladen (über www.microsoft.com/downloads und dann Stichwortsuche iSCSI – die deutsche Microsoft-Site findet den Treiber nicht). Dazu gibt es ein ebenfalls kostenfreies Paket mit einem iSNS-Namensserver. Gleich mehrere Anbieter stellen kostenfrei iSCSI-Initiator/Target-Treiber und iSNS-Server für Linux bereit (über http://sourceforge.net und dann iSCSI suchen). Eine Softwarelösung verursacht auf den ersten Blick keine oder nur geringe Kosten. Über ein bis zwei 1-GBit/s-Ethernet-Interfaces verfügen moderne Server ohnehin, und den Treiber gibt es gratis. Allerdings erzeugen der TCP/IP- und iSCSI-Protokollstack auf dem Server eine recht hohe CPU-Last. Alternativ offerieren Hersteller wie Intel oder Adaptec komplette iSCSI-Adapter. Diese integrieren eine 1-GBit/s-Ethernet-Karte mit einer IP- und iSCSI-Offload-Engine. Damit nehmen diese Adapter die komplette SAN-Last von der CPU, liegen dabei aber in Preisklassen von FC-HBAs.

Geräte, die logische Units für Initiatoren bereitstellen, heißen Targets. Als Target können iSCSI-taugliche SAN-Komponenten wie der in den Real-World Labs getestete FAS-250 von Network Appliances auftreten. Immer mehr Storage-Unternehmen rüsten ihre Speichersysteme mit iSCSI nach. Unternehmen, die iSCSI erst einmal ohne teure Speicherhardware evaluieren möchten, können sich mit Hilfe freier iSCSI-Target-Treiber für Linux erst einmal einen Linux-Server aufbauen, der LUNs im iSCSI-SAN bereitstellt. In Kürze wird Microsoft auch einen iSCSI-Target-Treiber fertig stellen. Dieser soll auf NAS-Geräten mit dem Windows-Storage-Server-2003 einzelne LUNS im SAN bereitstellen. Ob Microsoft den Treiber Herstellern vorbehält oder zum freien Download anbietet, steht aktuell noch nicht fest.

Theoretisch erfordert ein iSCSI-SAN keine getrennte Netzwerkinfra-struktur. Es läuft neben dem regulären LAN-Traffic über die bestehenden Switches. Dabei kann aber eine enorm hohe Netzwerklast entstehen, die andere Protokolle und Anwendungen behindert. Auch kaskadierte Switche behindern den Transport. Daher empfiehlt es sich, für das SAN einen eigenen Switch oder zumindest ein abgeschlossenes VLAN und getrennte LAN-Adapter zu verwenden. Im Test betreibt Network Computing das SAN zunächst in der bestehenden LAN-Infrastruktur und koppelt es später auf eigene Karten und Switches ab – und erreicht damit wesentlich höhere Transferraten.

Filer als Target

Network Appliances stellt in erster Linie NAS-Geräte her. Seit längerem implementiert das Unternehmen auch SAN-Funktionalität in die Filer. Anders als bei klassischen SAN-Speichergeräten stellt Network Appliances dabei keine physischen Platten als LUNs ins SAN. Vielmehr arbeiten die Laufwerke des Netapp-Filers in einem RAID-4-Verband mit dem Hersteller-eigenen WAFL-Dateisystem. Der Administrator kann innerhalb dieses Dateisystems virtuelle Laufwerke erzeugen und diese LUNs dann über FC oder iSCSI im SAN bereitstellen. Den Tests der Real-World Labs kommt dieses Konzept entgegen, da sich zügig und ohne große Mühe verschiedene LUNs erstellen lassen.

Für unseren Test stellte Network Appliances mit dem FAS-250 eines der kleineren Modelle zur Verfügung. Das 2-HE-große Gerät fasst bis zu 14 FC-Laufwerke. Das System arbeitet mit zwei Prozessoren (nicht Intel), 512 MByte Arbeitsspeicher und dem Netapp-eigenen Filer-Betriebssystem »Data Ontap 6.5«, welches auf BSD basiert. Zwei 1-GBit/s-Ethernet-Adapter verbinden den Filer mit dem LAN und/oder iSCSI-SAN. Um Tape-Libraries direkt anzubinden, offeriert das Gerät darüber hinaus einen FC-Anschluss. Die Konfiguration des Filers erfolgt über Web-Menüs. Erfahrene Netapp-Verwalter ziehen die seriell oder per Telnet erreichbare Kommandozeile vor. In der Grundkonfiguration gibt das System Verzeichnisse über NFS frei. Weitere Protokolle wie iSCSI oder CIFS/SMB und diverse Zusatzfunktionen erfordern Lizenzschlüssel. Der FAS-250 der Real-World Labs arbeitete mit sieben 140-GByte-Laufwerken und Lizenzschlüsseln für iSCSI, CIFS/SMB und Web-Administration. Für die Tests fügte Network Computing alle sieben Drives zu einem Volumen zusammen – was den permanenten Unmut des Filers erregte, weil dabei keine Spare-Disk für Notfälle und kein Platz für Volume-Snapshots übrig blieben. Da nur Testdaten geschrieben und gelesen wurden, konnte man jedoch ausnahmsweise auf diese Sicherheitsfeatures verzichten. Auf dem Volume des Filers platzierten die Real-World Labs dann fünf 140 GByte große LUNs zur Freigabe über iSCSI. Welcher Initiator dabei auf welches LUN zugreifen darf, regeln die Initiator Groups des Filers. Jede dieser Gruppen erhält einen Namen und eine gültige Namensliste der zugelassenen Initiatoren sowie die Liste der zur Gruppe gehörenden LUNs. Alles Weitere müssen dann die Initiatoren erledigen.

Microsoft-iSCSI-Initiator

Der Software-Initiator von Microsoft richtet sich als System-Dienst auf einem Windows-2000- oder -2003-Server ein. Damit setzt das Protokoll auf alle Netzwerkadapter des Systems auf. Die Konfiguration erfolgt über eine übersichtliche Konfigurationsbox aus der Systemsteuerung heraus. Der Initiator benennt sich gemäß der iSCSI-Spezifikation als »iqn.1991-05.com.microsoft:« plus den DNS-Namen des aktuellen Systems. Die Konfiguration enthält ein Fenster für eine Liste von iSNS-Servern. Für gesicherte Target-Verbindungen steht ein Dialog bereit, der ein CHAP-Passwort enthält, mit welchem sich ein Target am Initiator anmeldet. Die Targets verwaltet der Administrator zunächst über eine Liste so genannter Target-Portals. Ein Portal steht für ein physisches Speichergerät mit einer IP-Adresse und dem Port (Vorgabe 3260). Hier kann der Administrator auch festlegen, ob die Verbin-dung zum Portal über eine beliebige oder eine spezielle Netzwerkkarte des Systems erfolgen soll. Verbindungen zu Targets arbeiten ungesichert oder mit CHAP-Passwortverifikation. Dabei kann sich sowohl das Target am Initiator als auch der Initiator am Target anmelden. Für zusätzliche Sicherheit erlaubt der iSCSI-Initiator IPSec-Verschlüsselung auf der Verbindung. Steht der Kontakt zum Portal, listet der iSCSI-Initiator die verfügbaren Targets auf. Im Test mit dem FAS-250 erscheinen hier bereits nur noch die Targets, welche die Gruppenzuordnung des Netapp-Filers für den jeweiligen Intitiator zulässt. Vor der ersten Verbindung zum Target muss der Verwalter festlegen, ob der Initiator diese Verbindung als permanent behandelt. Nur permanente Verbindungen stellt der Initiator beim Systemstart automatisch her. Nach dem Login erscheint das gewählte Laufwerk in der Datenträgerverwaltung des Systems als »Netapp SCSI LUN«. Jetzt kann der Administrator das Laufwerk wie eine lokale Platte partitionieren und formatieren.

Intel-Pro/1000-T-IP-Storage-Adapter

Noch bevor die IEFT den iSCSI-Standard offiziell freigab, bot Intel einen iSCSI-Adapter an. Dank des integrierten Flash-Speichers lässt sich der 64-Bit-PCI-Adapter mit dem neuesten Firmwarecode versehen, der dem endgültigen Standard entspricht. Obwohl Network Computing für den Test noch mehrere ältere Modelle des Pro/1000-T-Adapters vorlagen, ließen sich die Codes auf den aktuellen Firmware-Stand 2.20 heben und die Adapter im Test einsetzen. Intel liefert für den Adapter einen Windows-2000-, -2003-Server und einen Linux-Treiber aus. Im Test beachteten wir in erster Linie die Windows-Implementierung. Diese Software richtet den Adapter als SCSI-Gerät unter Windows ein und fügt dem Control-Panel eine spezielle Software namens »Intel PRO-Set for IP-Storage« hinzu. Das Tool ähnelt – wie der Namen bereits vermuten lässt – dem Proset für reguläre Netzwerkadapter. Das Proset nutzt eine hierarchische, grafische Ansicht, um bestehende Verbindungen und Targets darzustellen. Über simple Dialoge konfiguriert der Administrator die lokalen Adaptereinstellungen sowie die Verbindungen zu Geräten und Targets. Das Proset erlaubt, nahezu alle Parameter und Einstellungen des Adapters im laufenden Betrieb umzustellen. Intel unterstützt CHAP-Authentisierung, lässt allerdings die IP-Sec-Verschlüsselung vermissen. Dafür beherrscht der Adapter die großen Jumbo-Frames. Ein bootfähiges BIOS bietet Intel (noch) nicht für den Adapter an, so dass ein Server mit dem PRO/1000 T nicht aus dem SAN startet.

Adaptec-ASA-7211-C

Adaptecs erster iSCSI-Adapter traf zum Test zunächst mit einer sehr frühen Firmware und einem spartanischen, auf Text basierendes Konfigurationstool ein. Kurz vor dem Ende der Tests erhielt Network Computing eine Beta-Version der neuen Firmware nebst grafischem Setup-Tool und passenden Treibern. Mit dieser kommenden Version führt Adaptec ein bootfähiges Adapter-ROM ein. Während des Rechnerstarts kann der Administrator über <Strg>-<A> in ein Adapter-internes Setup-Tool verzweigen und die iSCSI-Konfiguration auch ohne ein installiertes Betriebssystem vornehmen. Leider verwirrt die Menüführung des Setups noch ein wenig, da Adaptec sich nicht ganz an die iSCSI-Namensstandards hält. So findet man die Portalkonfiguration unter »Target«. Das iSCSI-BIOS des Adapters lässt startfähige iSCSI-LUNs zu. Aus der Liste der Portale wählt der Verwalter zunächst eines als bootfähig aus. Eine LUN dieses Portals lässt sich dann als Startlaufwerk deklarieren. Somit ermöglicht Adaptec, plattenlose Server direkt aus dem SAN zu booten.

Für größere Installationen bieten sich damit komfortable Möglichkeiten. Mit einem Netapp-Filer kann der Administrator ein LUN erstellen, dieses als bootfähig deklarieren und von einem Server aus das Betriebssystem einrichten. Im nächsten Schritt klont der Verwalter dieses LUN über die Snapshot-Tools des Netapp-Filers und hat in der Folge mehrere startfähige LUNs mit dem fertig eingerichteten System parat.

Alle Einstellungen des BIOS-Setups offeriert auch das neue grafische Setup-Programm unter Windows. Sollte auf der Maschine bereits der Software-Initiator von Microsoft laufen, fügt Adaptec den eigenen Adapter hinzu. Anwender, die bereits mit dem Microsoft-Initiator vertraut sind, können dann über das bekannte Microsoft-Tool auch iSCSI-Verbindungen des Adaptec-Controllers erstellen. Im erweiterten Menü der Portalverbindungen taucht dann neben dem Software-Initiatior als Interface auch der Adaptec-Controller auf.

Wie der Intel-Controller beherrscht auch der Adaptec-HBA die Authentisierung via CHAP, lässt aber die IPSec-Verschlüsselung vermissen. Ein in unseren Augen wesentlicher Minuspunkt des 7211 C ist hingegen, dass der Adapter keine Jumbo-Frames offeriert. Wenn man berücksichtigt, dass iSCSI wie kaum ein anderes IP-Protokoll von Jumbo-Frames profitiert, muss man Adaptecs Entschluss, den Adapter in erster Version mit einer festen MTU von 1500 zu bauen, klar als Fehlentscheidung werten. Gegenüber Network Computing bestätigt Adaptec aber, dass die nächste HBA-Generation mit Jumbo-Unterstützung aufwartet.

Das Web-Setup des Netapp-Filers verwaltet die LUNs und weist diese vorgegebenen iSCSI-Inititatoren zu.Microsofts Software-Initiator stellt iSCSI-Verbindungen über reguäre Ethernet-Schnittstellen her.Der Adaptec 7211 C lässt sich über das BIOS-Setup oder das grafische Setup-Tool einrichten.Intels PRO/1000-T-Adapter liefert ein komfortables Setup-Programm für Windows mit, das den Adapter und die Target-Links verwaltet.

Reale iSCSI-Performance

Der ein oder andere iSCSI-Hersteller prahlt auf seiner Website mit Durchsatzraten von 219 MByte/s. Dabei handelt es sich natürlich um Brutto-Transferraten nackter iSCSI-Pakete im Duplexbetrieb (109,5 MByte/s lesen und 109,5 MByte/s schreiben). In der Praxis liegen die Werte deutlich niedriger. Ein bestmöglich konfiguriertes iSCSI-SAN schafft bis zu 60 MByte/s realen Netto-Transfer in eine Richtung. Für die Performance-Tests in den Real-World Labs kopierte Network Computing zunächst mehrere Gigabyte Daten in großen Dateien auf die LUNs. Die eigentliche Durchsatzmessung kopiert die Daten von der LUN auf den PC direkt ins NUL-Device (copy /B *.* NUL). Somit schließt die Messung die Platten- und Cache-Performance des Filers, nicht aber die Geschwindigkeit eines lokalen Laufwerks ein. Für die Performance-Messungen trennte Network Computing das SAN-Netzwerk komplett von der LAN-Infrastruktur. Während LAN-Daten im Netzwerk 192.168.1.x über einen 1-GBit/s-schnellen Netgear-Switch liefen, arbeitete das SAN im Netzwerk 192.168.100.x auf einem Jumbo-Frame-fähigen Switch »BayStack 5510« von Nortel Networks, den uns Compu Shack zur Verfügung stellte.

Während der Performance-Messungen meldet der Netapp-Filer eine CPU-Last von 70 bis 80 Prozent. Damit schöpfen die Tests die Leitungsfähigkeiten des Gerätes fast aus, und es bleibt anzunehmen, dass größere und leistungsfähige Filer noch ein wenig bessere Transferraten erzielen. Der jeweils größere Wert stammt vom Anfang jeder Messung, bei der noch wenige Plattenzugriffe des Filers erfolgten. Im Laufe der jeweiligen Messungen fiel der Durchsatz dann bis auf den angegebenen niedrigeren Wert.

Der Microsoft-iSCSI-Initiator erreicht zunächst einen Datendurchsatz von 39 bis 42 MByte/s bei einer regulären Ethernet-Blockgröße von 1500 Bytes. Der Initiator versucht in der Basis-Konfiguration, den iSCSI-Verkehr über das erste LAN-Interface abzuwickeln, und landet dabei im LAN- statt im SAN-Segment. Erst, wenn der Verwalter den Initiator manuell auf das zweite Interface zwingt, überträgt der Rechner die iSCSI-Pakete über das abgetrennte SAN. Die eigentlich guten Performancewerte überschattet dabei aber die CPU-Belastung. Der Test-Server von Dell meldet eine gesamte CPU-Last von 40 Prozent und das, obwohl der Server mit zwei Hyperthreading-CPUs vom Typ Xeon-2,4-GHz arbeitet. Mit Jumbo-Frames sieht das Ergebnis dann ganz anders aus. Zwar bleibt der Datendurchsatz mit 40 bis 43 MByte/s nahezu unverändert, doch fällt die CPU-Belastung auf 15 Prozent. Dank der größeren Pakete müssen die TCP/IP- und iSCSI-Protokollstacks nur noch knapp ein Viertel der Pakete verarbeiten, was zur deutlichen Ent-lastung der Prozessoren führt.

Überwacht man den Datenstrom mit einem Paketfilter stellt sich heraus, dass nur noch wenige Kontrollpakete mit kleinen Frames durch die Leitung gehen. Der Großteil des eigentlichen iSCSI-Verkehrs (56 Prozent) läuft über Frames mit Größen zwischen 7000 und 9000 Bytes – damit nutzt iSCSI die Jumbo-Frames optimal aus.

In etwa dem gleichen Geschwindigkeitsbereich wie der Software-Initiator bewegt sich der Intel-Pro/1000-T-Adapter bei ersten Messungen. Mit einer MTU-Größe von 1500 Bytes schafft der Adapter Transferraten zwischen 38 und 42 MByte pro Sekunde. Allerdings steigt dabei die CPU-Belastung um weniger als 5 Prozent an – also kaum messbar. Mit Jumbo-Frames legt der Intel-Adapter dann sogar noch ein wenig zu und bringt es in einer Messung mit 9000er-Frames auf 43 bis 45 MByte/s – die Maximalwerte dieses Tests.

Auch der Adaptec-7211-C erzeugt kaum CPU-Last und hält mit Transferraten von 38 bis 40 MByte/s mit Intel und dem Software-Initiator mit. Allerdings unterstützt die erste Version von Adaptecs iSCSI-Adapter keine Jumbo-Frames. Eine gemischte Umgebung, mit MTU-9000 auf dem Filer und MTU-1500 auf dem Adatper funktioniert zwar, drückt die Performance aber auf 32 bis 34 MByte/s.

Performance im Vergleich

In einem 2-GBit/s-FC-SAN liegt die maximale, nutzbare Bandbreite pro FC-Kanal bei etwa 155 MByte/s, ein 1-GBit/s-FC-SAN schafft um 75 MByte/s. Ein lokal angebundenes DAS (Direct Attached Storage) mit internem oder externen RAID-Controller kann über 200 MByte/s erreichen.

Mit den gemessenen Werten von bis zu 45 MByte/s liegt iSCSI dann doch nicht so schlecht im Rennen, wie Network Computing es zunächst erwartet hatte. Erste Tests im gemischten Netzwerk mit LAN und SAN auf einer Infrastruktur hatten es gerade mal auf 25 bis 30 MByte/s geschafft. Erst die verbesserte Netzwerk-Infrastruktur mit strikt getrennten Segmenten brachte höhere Messwerte.

Fazit

Nach den ersten Tests von Network Computing kann iSCSI in kleineren SANs durchaus als Alternative zum teureren Fibre-Channel auftreten. Die Performance liegt dabei knapp unter der Bandbreite einer 1-GBit/s-FC-Architektur. Um diese Leistung zu erreichen, muss das iSCSI-SAN aber auf alle Fälle getrennt von der regulären LAN-Struktur arbeiten. Wer mit Software-Initiatoren statt Hardware-Acceleratoren arbeiten möchte, sollte in jedem Fall Jumbo-Frames einsetzen, um die Belastung der Server-CPUs zu reduzieren. Auch bei Hardware-Karten versprechen die großen Frames eine etwas bessere Performance. Der direkte Vergleich Intel gegen Adaptec endet patt – der eine kann aus dem SAN booten, dafür beherrscht der andere Jumbo-Frames. Der Storage-Administrator muss bei der Wahl des Adaptertyps letzten Endes entscheiden, welches der Features ihm wichtiger erscheint.

Um mögliche Engpässe zu vermeiden, empfiehlt es sich darüber hinaus, nur wenige Initiatoren pro iSCSI-Portal einzusetzen oder Portale zu verwenden, die mehrere Gigabit-Ethernet-Schnittstellen für den iSCSI-Verkehr anbieten. [ ast ]


Jetzt kostenfreie Newsletter bestellen!

Matchmaker+