iSCSI-Verbindungen mit PowerShell verwalten


    Tags: ,

    iSCSI - Clients und TargetsUm iSCSI-Verbin­dungen inter­aktiv zu konfi­gurieren, steht das ent­sprechende Applet für den iSCSI-Initiator zur Ver­fügung. Wenn man das Ver­binden und Trennen von iSCSI-Targets jedoch auto­matisieren möchte, dann bietet sich dafür PowerShell an. Sie deckt mit dem iSCSI-Modul alle Funk­tionen des GUI-Tools ab.

    Wenn man das Applet für den iSCSI-Initiator auf einem Rechner startet, auf dem noch nie eine Ver­bindung konfiguriert wurde, dann erhält man den Hinweis, dass der iSCSI-Service nicht laufe. Möchte man statt des GUI-Tools lieber PowerShell verwenden, dann muss man sich um solche Voraus­setzungen selbst kümmern.

    Voraussetzungen prüfen

    Daher besteht der erste Schritt darin, den Status dieses Dienstes abzufragen:

    Get-Service -Name MSiSCSI

    Erweist sich hier, dass der Service erst gestartet werden muss, dann kann man dies mit folgendem Befehl erledigen:

    Start-Service -Name MSiSCSI

    Zudem ändert man den Starttyp auf automatisch, so dass er nach jedem Reboot des Rechners wieder ausgeführt wird.

    Set-Service -Name MSiSCSI -StartupType Automatic

    Wenn man nicht sicher ist, ob bereits Verbindungen zu einem iSCSI-Target bestehen, dann kann man dies mit

    Get-IscsiTarget

    prüfen. In der folgenden Abbildung liefert der Befehl ein leeres Ergebnis.

    Prüfen, ob der MSiSCSI-Service läuft und bereits Targets verbunden sind.

    Discovery der Targets

    Um eine neue aufzubauen, macht man den Initiator mit dem entsprechenden Storage-Gerät bekannt. Diesem Zweck dient der Aufruf von

    New-IscsiTargetPortal -TargetPortalAddress "<IP oder FQDN>"

    Dieser Befehl würde den Standard-Initiator für den Discovery-Prozess sowie den Default-Port 3260 verwenden. Beide kann man über entsprechende Parameter spezifizieren, wobei für die Angabe des Ports Target­Portal­Port­Number zuständig ist.

    Verfügt der Client über mehrere Initiatoren, dann kann man diese mittels

    iscsicli listinitiators

    anzeigen. Den gewünschten übergibt man dann an den Parameter Initiator­Instance­Name:

    New-IscsiTargetPortal -TargetPortalAddress "192.168.0.180" `
    -InitiatorInstanceName "ROOT\ISCSIPRT\0000_0"

    Aufruf von New-IscsiTargetPortal mit dem Instanznamen des Initiators.

    Ein weiterer Aufruf von Get-IscsiTarget liefert nun die nötigen Informationen für das weitere Vorgehen. Dazu gehört in erster Linie die NodeAddress der gefundenen Targets. Diese benötigt man anschließend, um eine Verbindung mit einem Target aufzubauen.

    Über die Angabe einer NodeAddress mit einem bestimmten Target verbinden

    In unserem Beispiel wird das Target von einem Synology-NAS bereitgestellt:

    Connect-IscsiTarget -NodeAddress `
    "iqn.2000-01.com.synology:DS214.Target-1.0e1a3dc1d1"

    Dieses Kommando lässt sich je nach Bedarf variieren. So bewirkt der obige Aufruf nur eine Ver­bindung bis zum nächsten Reboot. Möchte man sie dauerhaft einrichten, dann ergänzt man ihn um den Parameter -IsPersistent $true.

    Will man alle verfügbaren Targets verbinden, dann reicht ein

    Get-IscsiTarget | Connect-IscsiTarget

    Verbindung trennen

    Das PowerShell-Modul iSCSI verfügt auch über Cmdlets für die entgegen­gesetzten Operationen. Um eine Verbindung mit einem Target zu beenden, würde man in unserem Beispiel folgenden Befehl absetzen:

    Disconnect-IscsiTarget -NodeAddress `
    "iqn.2000-01.com.synology:DS214.Target-1.0e1a3dc1d1"

    Schließlich lässt sich noch das Target-Portal auf diese Weise entfernen:

    Remove-IscsiTargetPortal -TargetPortalAddress "192.168.0.180"

    Hier muss man darauf achten, dass man die Parameter genauso angibt wie zuvor bei New- IscsiTargetPortal. Hat man etwa als Adresse eine IP verwendet, dann darf man hier keinen DNS-Namen übergeben.

    Ähnliches gilt für Initiator­Instance­Name: Hat man diesen ursprünglich an das Cmdlet übergeben, dann muss man das beim Entfernen ebenfalls tun.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fachautor, Berater und Kon­ferenz­sprecher zu ver­schiedenen Themen der IT. Da­neben war er als System­admini­stra­tor und Consultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Ähnliche Beiträge

    Weitere Links

    3 Kommentare

    Bei Windows Admin Center habe ich derweil noch nichts dazu gesehen, auch wenn iSCSI mit heute 45 Gbit und mehr noch nicht tot ist, außer man denkt nur in AzureStackHCI :)

    Wie sieht es mit Server Manager und iSCSI aus? Meinst du das mit GUI?

    Bild von Wolfgang Sommergut

    Ich habe mich auf iscsicpl.exe bezogen, das übrigens auch unter Server Core läuft.

    ah ok Danke Wolfgang! Unter Core auch ohne Feature on Demand? Interessant.
    Schau mal wie dir die Ansicht in Server Manager gefällt. Files > iSCSI.