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. Die Konfiguration des iSCSI-Initiators umfasst zwei wesentliche Schritte: das Erkennen verfügbarer iSCSI-Ziele und das Einrichten einer iSCSI-Sitzung. Beides kann mit YaST ausgeführt werden.

Verwenden von YaST für die Konfiguration des iSCSI-Initiators

Die Konfiguration ist in drei Registerkarten gegliedert. Über die Registerkarte Dienst kann der iSCSI-Initiator beim Booten aktiviert werden. Es ist auch möglich, den Namen des Initiators und einen iSNS-Server für die Verwendung mit dem Verzeichnis festzulegen. Der Standardport für iSNS ist 3205. Der Karteireiter Verbundene Ziele gibt einen Überblick über die aktuell verbundenen iSCSI-Ziele. Wie der Karteireiter Ermittelte Ziele bietet er 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

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 dauerhaften 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:

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

Um die verfügbaren Ziele auf einem iSNS-Server zu ermitteln, verwenden Sie das Kommando iscsiadm --mode discovery --type isns --portal <Ziel-IP>

Für jedes Ziel, das auf dem iSCSI-Ziel definiert ist, wird eine Zeile angezeigt. Weitere Informationen zu den gespeicherten Daten erhalten Sie in Abschnitt 12.2.4, „Die iSCSI-Client-Datenbanken“.

Die Spezialoption --login von iscsiadm erstellt alle erforderlichen Geräte:

iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --login

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

Konfigurieren der automatischen LVM-Zusammenstellung auf iSCSI-Geräten

Der LVM-Start wird von udev unterstützt, damit LVM-Volume-Gruppen automatisch über udev aktiviert werden, sobald alle erforderlichen physischen Volumes erkannt wurden.

Die automatische LVM-Zusammenstellung in udev verwendet das udev-Hilfeprogramm Sammlung. Dieses Programm nimmt als erstes Argument eine abstrakte zu überprüfende ID an, gefolgt von einer Liste von Komponenten-IDs. Sobald dieses Programm mit den einzelnen Komponenten-IDs als erstes Argument aufgerufen wurde, gibt es 0 zurück.

Somit werden für die automatische Zusammenstellung die UUIDs der physischen Volumes für die vorhandene Volume-Gruppe als Argumentliste für Sammlung registriert. udev (oder vielmehr vol_id) kann die UUID des physischen Volumes auf einem Gerät erkennen, wodurch diese als das erste Argument an Sammlung weitergeleitet werden kann.

Sobald Sammlung mit allen UUIDs der physischen Volumes aufgerufen wurde (d.h., udev hat Ereignisse für alle Komponentengeräte erhalten), wird die nächste Regel ausgelöst, wodurch nur vgchange -a y <vgname> aufgerufen wird, und die Volume-Gruppe wird aktiviert.

Vorgehensweise bei der Konfiguration

Verwenden Sie das Skript /usr/share/doc/packages/lvm2/lvm-vg-to-udev-rules.sh. Es nimmt als Argument die Volume-Gruppe an, die Sie automatisch starten möchten. Dieses Skript generiert die erforderlichen udex-Regeln. Starten Sie nun iSCSI neu, um die Volume-Gruppen zu aktivieren. Wenn das Array beim Booten automatisch gestartet werden soll, müssen Sie die iSCSI-Komponentengeräte auf Automatisch umschalten, damit sich der Initiator während des Boot-Vorgangs automatisch beim Ziel anmeldet.

Die iSCSI-Client-Datenbanken

Alle vom iSCSI-Initiator ermittelten Informationen 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
149.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

Der Zielname in diesem Beispiel lautet iqn.2006-02.com.example.iserv:systems. Dieser Name ist für alle Aktionen erforderlich, die sich auf diese speziellen Daten beziehen. Um den Inhalt des Datensatzes mit der ID iqn.2006-02.com.example.iserv:systems zu untersuchen, verwenden Sie das folgende Kommando:

iscsiadm -m node --targetname iqn.2006-02.com.example.iserv:systems
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 -n iqn.2006-02.com.example.iserv:systems --op=update --name=node.startup --value=automatic

Entfernen Sie veraltete Datensätze mit der Operation delete. Wenn das Ziel iqn.2006-02.com.example.iserv:systems kein gültiger Datensatz mehr ist, löschen Sie diesen Datensatz mit dem Kommando iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --op=delete. Verwenden Sie diese Option mit Vorsicht, denn der Datensatz wird gelöscht, ohne dass Sie aufgefordert werden, das Löschen zu bestätigen.

Um eine Liste aller gefundenen Ziele anzuzeigen, führen Sie das Kommando iscsiadm -m node aus.

Weiterführende 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 r von iscsiadm, iscsid, ietd.conf und ietd sowie die Beispiel-Konfigurationsdatei /etc/iscsid.conf.