11.2. Konfigurieren eines iSCSI-Initiators

Ein iSCSI-Initiator, auch Client genannt, kann zur Verbindung zu einem beliebigen iSCSI-Ziel verwendet werden. Dies ist nicht auf die oben erläuterte iSCSI-Ziellösung beschränkt. TDie Konfiguration des iSCSI-Initiators umfasst zwei wesentliche Schritte: die Erkennung von verfügbaren iSCSI-Zielen und das Einrichten einer iSCSI-Sitzung. Beides kann mit YaST erledigt werden.

11.2.1. Verwendung von YaST für die iSCSI-Initiator-Konfiguration

Die Konfiguration ist in drei Registerkarten gegliedert. Über die Registerkarte Dienst kann der iSCSI-Initiator beim Booten aktiviert werden. Die Registerkarte Verbundene Ziele gibt einen Überblick über die aktuell verbundenen iSCSI-Ziele. Wie die Registerkarte Ermittelte Ziele bietet sie eine Option für das Hinzufügen neuer Ziele zum System. Ermittelte Ziele ist die Registerkarte, mit der begonnen wird. Sie bietet die Möglichkeit, iSCSI-Ziele im Netzwerk zu ermitteln.

  1. Wählen Sie Ermittlung, um das entsprechende Dialogfeld zu öffnen.

  2. Geben Sie die IP-Adresse ein und ändern Sie den Port, falls erforderlich.

  3. Fügen Sie bei Bedarf die Eingehende oder Ausgehende Authentifizierung hinzu.

  4. Starten Sie die Ermittlung, indem Sie auf Weiter klicken.

Verwenden Sie nach einer erfolgreichen Ermittlung Anmeldung, um das Ziel zu aktivieren. Sie werden aufgefordert, Authentifizierungsinformationen für die Verwendung des ausgewählten iSCSI-Ziels einzugeben. Weiter beendet die Konfiguration. Wenn alles korrekt ausgeführt wurde, wird das Ziel nun in Verbundene Ziele angezeigt.

Das virtuelle iSCSI-Gerät ist nun verfügbar. Finden Sie das tatsächliche Gerät mit lsscsi:

lsscsi
[1:0:0:0]   disk    IET      VIRTUAL-DISK     0     /dev/sda

11.2.2. Manuelles Einrichten des iSCSI-Initiators

Sowohl die Ermittlung als auch die Konfiguration von iSCSI-Verbindungen erfordert ein laufendes iscsid. Beim ersten Ausführen der Ermittlung wird die interne Datenbank des iSCSI-Initiators im Verzeichnis /var/lib/open-iscsi angelegt.

Wenn Ihre Ermittlung durch ein Passwort geschützt ist, geben Sie die Authentifizierungsinformation für iscsid an. Da die interne Datenbank bei der ersten Ermittlung nicht existiert, kann sie zu diesem Zeitpunkt nicht benutzt werden. Stattdessen muss die Konfigurationsdatei /etc/iscsid.conf so bearbeitet werden, dass die Information geliefert wird. Um Ihre Passwortinformation für die Ermittlung anzugeben, fügen Sie die folgenden Zeilen an das Ende von /etc/iscsid.conf:

discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <username>
discovery.sendtargets.auth.password = <password>

Die Ermittlung speichert alle empfangenen Werte in einer internen persistenten Datenbank. Zusätzlich zeigt sie alle ermittelten Ziele an. Führen Sie diese Ermittlung aus mit iscsiadm -m discovery --type=st --portal=<targetip>. Die Ausgabe sollte wie folgt aussehen:

[bd0ac2] 149.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

Für jedes Ziel, das auf dem iSCSI-Ziel definiert ist, wird eine Zeile angezeigt. Im vorherigen Beispiel lautet die ID des Ziels bd0ac2. Diese ID wird verwendet, um auf das Ziel zuzugreifen. Weitere Informationen zu den gespeicherten Daten erhalten Sie in Abschnitt 11.2.3, „Die iSCSI-Client-Datenbanken“. Ändern Sie im Moment nur die Authentifizierungsdaten in dieser Datenbank, damit Sie auf das Ziel bd0ac2 zugreifen können. Nehmen Sie an, dass Sie mit incoming user<username> (Eingehender Benutzer <Benutzername>) und password <password> (Passwort <Passwort>) auf ein Ziel zugreifen:

iscsiadm -m node --record=bd0ac2 --op=update \
    --name=node.session.auth.authmethod --value=CHAP
iscsiadm -m node --record=bd0ac2 --op=update \
    --name=node.session.auth.username --value=<username>
iscsiadm -m node --record=bd0ac2 --op=update \
    --name=node.session.auth.password --value=<password>

Nun ist der Initiator für seine Aktivierung vorbereitet. Die Spezialoption --login von iscsiadm erstellt alle erforderlichen Geräte:

iscsiadm -m node --record=bd0ac2 --login

Die neu generierten Geräte werden in der Ausgabe von lsscsi aufgeführt und per "mount" (Einhängen) kann auf sie zugegriffen werden.

11.2.3. Die iSCSI-Client-Datenbanken

Sämtliche Informationen, die vom iSCSI-Initiator ermittelt wurden, werden in zwei Datenbankdateien gespeichert, die sich in /var/lib/open-iscsi befinden. Es gibt eine Datenbank für die Ermittlung von Zielen und eine für die ermittelten Knoten. Beim Zugriff auf eine Datenbank müssen Sie zuerst wählen, ob Sie Ihre Daten aus der Ermittlungs- oder der Knoten-Datenbank beziehen möchten. Das erledigen Sie mit den Parametern -m discovery und -m node von iscsiadm. Wenn Sie iscsiadm mit nur einem dieser Parameter verwenden, erhalten Sie eine Übersicht über die gespeicherten Datensätze:

iscsiadm -m discovery
[bd0ac2] 149.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

Die Datensatz-ID in diesem Beispiel lautet bd0ac2. Diese ID ist für sämtliche Aktionen erforderlich, die sich auf diesen Datensatz beziehen. Verwenden Sie den folgenden Befehl, um den Inhalt des Datensatzes mit der ID bd0c2 zu prüfen:

iscsiadm -m node --record=bd0ac2
node.name = iqn.2006-02.com.example.iserv:systems
node.transport_name = tcp
node.tpgt = 1
node.active_conn = 1
node.startup = manual
node.session.initial_cmdsn = 0
node.session.reopen_max = 32
node.session.auth.authmethod = CHAP
node.session.auth.username = joe
node.session.auth.password = ********
node.session.auth.username_in = <empty>
node.session.auth.password_in = <empty>
node.session.timeo.replacement_timeout = 0
node.session.err_timeo.abort_timeout = 10
node.session.err_timeo.reset_timeout = 30
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
....

Um den Wert einer dieser Variablen zu bearbeiten, verwenden Sie den Befehl iscsiadm mit der Option update. Wenn iscsid sich beispielsweise bei seiner Initialisierung beim iSCSI-Ziel anmelden soll, setzen Sie die Variable node.startup auf den Wert automatic:

iscsiadm -m node --record=bd0ac2 --op=update --name=node.startup --value=automatic

Entfernen Sie veraltete Datensätze mit der Operation delete. Wenn der Datensatz bd0ac2 nicht mehr gültig ist, löschen Sie ihn mit dem Befehl iscsiadm -m node --record=bd0ac2 --op=delete. Verwenden Sie diesen Befehl mit Vorsicht, da er den Datensatz ohne zusätzliche Bestätigung löscht.

11.2.4. Weitere Informationen

Das iSCSI-Protokoll ist schon mehrere Jahre verfügbar. Es gibt viele Reviews und zusätzliche Dokumentation, die iSCSI mit SAN-Lösungen vergleicht, Leistungs-Benchmarks testet oder einfach Hardwarelösungen beschreibt. Wichtige Seiten für weitere Information zu open-iscsi:

  • http://www.open-iscsi.org/

  • http://www.open-iscsi.org/cgi-bin/wiki.pl

  • http://www.novell.com/coolsolutions/appnote/15394.html

Es steht auch einige Online-Dokumentation zur Verfügung. Siehe die Manualpages von iscsiadm, iscsid, ietd.conf und ietd sowie die Beispiel-Konfigurationsdatei /etc/iscsid.conf.