iSCSI bezeichnet Targets und Initiatoren mit so genannten IQNs (iSCSI Qualified Names). Ihr Format ist
»iqn.{yyyy}-{mm}.{Domainname in vertauschter Reihenfolge}
«
, also zum Beispiel
»iqn.2010-02.com.acme:helloworld
«
. Der Bestandteil
»:helloworld
«
in dieser IQN ist optional und dient der einfacheren Wiedererkennung. iSCSI als einfacher Netzwerkservice läuft auf dem TCP-Port 3260 und verschickt Datenblöcke vom Festspeicher. Der Server (genauer der Sockel des iSCSI-Dienstes) heißt in der iSCSI-Terminologie Portal. Auf einem solchen Portal können mehrere Targets bereitstehen.
Tabelle 2
gibt einen Überblick über die Begriffe der iSCSI-Welt.
Tabelle 2
iSCSI-Glossar
Begriff/Abkürzung |
Bedeutung |
---|---|
Chap |
Challenge-Handshake Authentication Protocol. Verwendet der iSCSI-Server diesen Mechanismus, dann dürfen nur Initiatoren, die das richtige Passwort kennen, auf die LUNs des Target zugreifen. |
HBA |
Host Bus Adapter. Für Block-basierten Storage das Gerät, das
» |
IBFT |
iSCSI Boot Firmware Table. Technologie, die das Booten von iSCSI-Devices ermöglicht. |
Initiator |
Bezeichnet die SCSI-Komponente, die Anfragen an das Storage-System stellt. Eine Anfrage in diesem Zusammenhang wäre etwa: Schick mir Block 0815 von LUN 4711. |
IQN |
iSCSI Qualified Name. Bezeichnet sowohl Initiatoren als auch Targets, damit diese an der iSCSI-Kommunikation teilnehmen können. Das Format ist
» |
LUN |
Logical Unit Number. Ein Begriff aus der SCSI-Welt, in diesem Fall synonym gebraucht mit der Logical Unit. Eine Logical Unit stellt ein SCSI-Zugriffsobjekt dar, beispielsweise eine Festplatte oder eine CD. Professionelle Storages erlauben das Zusammenfassen von Festplatten zu Raid-Gruppen und das Aufteilen dieser Gruppen in LUNs, in diesem Fall wie logische Festplatten. Eine LUN ist ein Blockdevice, typischerweise
» |
Portal |
iSCSI ist ein Netzwerkdienst, den ein Server anbietet. Dem Socket in der Netzwerk-Welt entspricht das Portal in der iSCSI-Welt – es ist ein Paar aus IP-Adresse und Portnummer. Für iSCSI ist 3260 der Defaultport. Jedes Portal kann mehrere Targets anbieten. |
SAN |
Storage Area Network. Block-basierter Storage, der über Fibre Channel oder klassisches Netzwerk an die Initiatoren angebunden ist. Im klassischen Netzwerk kann die Übertragung über TCP/IP oder Ethernet laufen. |
Target |
Bezeichnet den SCSI-Storage, der auf Anfragen wartet und diese beantwortet. Er ist damit das Gegenstück zum Initiator, der die Anfragen stellt. Ein Target kann mehrere LUNs enthalten. |
TOE |
TCP Offload Engine. Ein Großteil des Protokoll-Overhead für TCP/IP entfällt auf das Berechnen von Prüfsummen, eine Arbeit, mit der nicht die CPU belastet werden muss. Chips auf modernen Netzwerkkarten übernehmen diese Aufgabe und entlasten so die CPU. |
Um einen iSCSI-Storage aufzubauen (
http://2
,
http://3
), verwendet der Interessierte zwei Maschinen, am leichtesten wie im folgenden Beispiel mit zwei Open-Suse-11.2-Default-Installationen. Eine, die als Storage-Target agiert, und eine weitere, die als Initiator dient. Hier reichen auch virtuelle Maschinen völlig aus, im Beispiel hat die Target-Instanz die IP 192.168.0.10, der Initiator die 192.168.0.11. Als Hostnamen verwendet das Beispiel
»target
«
beziehungsweise
»initiator
«
.
Zunächst erstellt der Administrator eine 1 GByte große Datei, die später als Blockdevice vom Initiator aus zu sehen sein wird:
target: # dd if=/dev/zero of=/tmp/iscsi-content bs=1024 count=1000000
Dann installiert er das Modul zur iSCSI-Konfiguration mit
»yast -i yast2-iscsi-server
«
oder
»zypper in yast2-iscsi-server
«
. Erst jetzt existiert das optionale Yast-Modul
»Netzwerkdienste | iSCSI-Ziel
«
, das beim ersten Start fragt, ob der Nutzer das erforderliche Paket
»iscsitarget
«
installieren möchte. Iscsitarget
[4]
ist eine von vier verschiedenen Linux-iSCSI-Implementierungen. Im Zusammenspiel mit Suse ist diese Variante definitiv am einfachsten zu konfigurieren. Eine Tabelle auf
[5]
vergleicht die Features verschiedener iSCSI-Versionen, darunter auch die in
[6]
beschriebene Variante Lio von Rising Tide.
Abbildung 1
zeigt das Modul mit den drei Reitern
»Dienste
«
,
»Global
«
und
»Ziele
«
. Während er Boot- und Grundeinstellungen auf den ersten beiden Tabs tätigt, fügt der Admin auf
»Target
«
mit
»Add
«
neue LUNs hinzu oder bearbeitet sie mit
»Edit
«
und
»Delete
«
(
Abbildung 2
).
Die als LUN sichtbaren Daten soll das System in der Datei
»/tmp/iscsi-content
«
speichern. Danach ist die Konfiguration des iSCSI-Target abgeschlossen, mit einigen Klicks auf
»OK
«
und
»Next
«
startet auch der Service
»iscsitarget
«
auf Wunsch neu. Der iSCSI-Server ist fertig, das Target steht bereit.
Jetzt geht's an den Client. Um das iSCSI-Target zu testen, braucht es einen Initiator. Den legt ebenfalls ein Yast-Modul an, doch zunächst sollte der Admin sicherstellen, dass noch kein iSCSI-Blockdevice vorhanden ist. Hwinfo auf
»initiator
«
sollte eine Antwort geben wie in
Listing 1
. Das virtuelle System kennt offenbar nur eine SCSI-Festplatte, und zwar jene, auf der das Root-Dateisystem gespeichert ist (
»/dev/sda
«
). Es gibt noch kein iSCSI-Blockdevice. Das wird sich gleich ändern.
Listing 1
Hwinfo ohne iSCSI