ISCSI Grundlagen

Aus Wiki Thomas-Krenn.AG
Wechseln zu: Navigation, Suche

Dieser Artikel erklärt die prinzipielle Funktionsweise von iSCSI (Internet Small Computer Systems Interface). iSCSI bietet wie Fibre Channel alle notwendigen Komponenten zum Aufbau eines Speichernetzwerkes (SAN, Storage Area Network). iSCSI ist im RFC 3720 definiert.

Inhaltsverzeichnis

iSCSI Komponenten

Bei einer iSCSI Kommunikation sprechen folgende Komponenten miteinanander:

iSCSI Initiator

Ein Client in einem iSCSI Speichernetz wird als iSCSI Initiator Node (oder kurz 'iSCSI Initator') bezeichnet. Dieser iSCSI Initiator kann sich mit einem Server (dem iSCSI Target) verbinden. Der iSCSI Initiator schickt dabei SCSI Kommandos an das iSCSI Target. Diese SCSI Kommandos sind dazu in IP Pakete verpackt.

iSCSI Initatoren gibt es in folgenden Formen:

  1. iSCSI Hardware Initiator: eine PCI-X oder PCIe Karte, auf der die iSCSI Initator Funktionalität implementiert ist. Eine solche Karte wird auch iSCSI HBA genannt. Im Betriebssystem eines Servers scheint eine solcher iSCSI HBA wie ein RAID-Controller oder ein FC HBA auf. Mit einem iSCSI HBA ist möglich, einen Server über iSCSI zu booten. Beispiele sind:
  2. iSCSI Software Initiator: ein in Software implementierter iSCSI Initiator. Die Rechenoperationen des iSCSI Initiators werden bei dieser Lösung von der CPU des Servers durchgeführt (und nicht von Hardware-Komponenten auf einer eigenen PCI-X/PCIe Karte). Durch die gestiegene Performance aktueller Server-CPUs ist das heutzutage aber kein Problem mehr. Hardware-seitig werden hier zur Kommunikation mit dem iSCSI Target gewöhnliche Netzwerkkarten verwendet. Beispiele sind hier:

Solange Booten von iSCSI kein Kriterium ist, spricht nichts gegen den Einsatz von iSCSI Software Initiatoren. Mit etwas zusätzlichen Konfigurationsaufwand ist ein Netz-Boot mit dem iSCSI Software Initiator sogar durchaus möglich.[1][2][3] iSCSI Software Initiatoren sind billiger, sehr weit verbreitet und sehr stabil. Auch iSCSI über 10 GBit Ethernet wird sich künftig damit sehr einfach mit normalen 10 GBit Ethernet Netzerkkarten implementieren lassen.[4]

iSCSI Target

Ein Server in einem iSCSI Speichernetz wird als iSCSI Target Node (oder kurz 'iSCSI Target') bezeichnet. Ein solches iSCSI Target kann ein oder mehrere sogenannte logical units (LU) bereitstellen. Oft wird für den Begriff logical unit die Abkürzung LUN verwendet (obwohl diese Abkürzung eigentlich für LU number = logical unit number steht).

iSCSI Targets gibt es in folgenden Formen:

iSCSI Server implementieren die iSCSI Target Funktionalität auf unterschiedliche Weise[5]:

SCSI Quellen

iSCSI hat seine Ursprünge im normalen SCSI (Small Computer Systems Interface). Genaugenommen ist iSCSI die Abbildung des SCSI remote procedure invocation model über das TCP Protokoll[6]:

Der iSCSI Initiator und das iSCSI Target teilen die Kommunikation in einzelne Nachrichten. Eine solche iSCSI Nachricht wird als 'iSCSI protocol data unit' bezeichnet.

iSCSI Kommunikation

Wie oben erwähnt sprechen bei einer iSCSI Kommunikation ein iSCSI Initator und iSCSI Target miteinander. Das Gespräch wird aber immer vom iSCSI Initator begonnen. Für ein Gespräch können eine oder mehrere iSCSI Connections (eine iSCSI Connection entspricht einer TCP Connection) genutzt werden. Ein solches Gespräch wird als iSCSI Session bezeichnet.

Die folgende Darstellung zeigt den schematischen Aufbau eines iSCSI Setups:

Iscsi-grundlagen-1.png

iSCSI Session Typen

In iSCSI gibt es zwei Session Typen[7]:

Der Typ einer iSCSI Session wird während des iSCSI Logins definiert.

iSCSI Multipathing

Für Multipathing unter iSCSI kann auf folgende Arten umgesetzt werden:

  1. durch allgemeine Storage Multipathing Technologien, die unabhängig von der Übertragungstechnologie oberhalb des iSCSI Protokolles angesiedelt sind
  2. durch iSCSI Multiple Connections per Session (MC/S)

allgemeine Storage Multipathing Technologien - sog. Multipath I/O

Für Storage Multipathing, welches unabhängig von der Übertragungstechnologie funktionieren soll, gibt es zwei Bereiche:

  1. Storage Multipathing vom Betriebssystem (z.B. Linux Device Mapper MPIO)
  2. Storage Multipathing durch Softwarelösungen von Storageherstellern (z.B. EMC Powerpath)

Details zu diesen Möglichkeiten liefert der Artikel Storage Multipathing Technologien.

iSCSI Multiple Connections per Session (MC/S)

iSCSI bietet darüber hinaus direkt im Protokoll auch Möglichkeiten für Multipathing über MC/S (Multiple Connections per Session). Damit MC/S verwendet werden kann, müssen sowohl der iSCSI Initiator als auch das iSCSI Target MC/S unterstützen.

Initiator MC/S Support? weitere Informationen
Linux Open-iSCSI Software Initiator nein ISCSI Multipathing unter Linux
Microsoft iSCSI Software Initiator ja http://technet.microsoft.com/en-us/library/dd759096.aspx
Target MC/S Support? weitere Informationen
EMC CLARiiON nein
EMC Celerra ja http://technet.microsoft.com/en-us/library/dd759096.aspx
NetApp ja http://technet.microsoft.com/en-us/library/dd759096.aspx
http://blogs.netapp.com/dropzone/2009/05/the-free-consultant-iscsi-part-ii.html

Referenzen

  1. http://www.heise.de/netze/artikel/Booten-via-Netzwerk-223906.html
  2. http://www.etherboot.org
  3. http://wpkg.org/Diskless_/_remote_boot_with_Open-iSCSI
  4. A “Multivendor Post” to help our mutual iSCSI customers using VMware Question 3: Do I use the Software Initiator or the Hardware Initiator?
  5. A “Multivendor Post” to help our mutual iSCSI customers using VMware Zitat: "iSCSI target = an iSCSI server, usually on an array of some type. Arrays vary in how they implement this. Some have one (the array itself), some have many, some map them to physical interfaces, some make each LUN an iSCSI target." und Question 1: How do I configure MPIO
  6. RFC 3720 Section 3.2. iSCSI Concepts and Functional Overview
  7. RFC 3720 Section 3.3 iSCSI Session Types

Weitere Informationen


Share/Save/Bookmark  Feedback zu diesem Artikel geben
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Kategorien
Drucken/exportieren
Werkzeuge
In anderen Sprachen