Windows Server 2012 R2 als iSCSI-Target konfigurieren

    Kommunikation mit iSCSI-StorageWährend man das iSCSI-Target für Windows Server 2008 R2 noch separat herunterladen musste, gehört es seit der Version 2012 zum Lieferumfang des Betriebssystems und wird als eigene Rolle installiert. Das Release 2 brachte vor allem Verbesserungen in puncto Skalierbarkeit. Folgende Anleitung zeigt, wie man auf Basis von Windows ein blockbasiertes Storage-System einrichtet.

    iSCSI (Internet Small Computer System Interface) erfreut sich seit einigen Jahren einer großen Verbreitung. Der Grund dafür liegt in den relativ geringen Kosten für die Anschaffung der Infrastruktur und in der einfachen Bereitstellung von zentralem Speicher.

    iSCSI-LUNs auf Basis von VHDX

    Da das Protokoll SCSI-Befehle in TCP/IP-Pakete kapselt, benötigt man im Rechenzentrum nur administrierbare Layer-3-Ethernet-Switches und S/FTP Patchkabel. Entscheidend für eine gute iSCSI-Performance ist, ob 1 oder 10 Gbit-Netzwerkadapter zum Einsatz kommen.

    Bei iSCSI gibt es immer ein Zielspeichersystem (Target) und einen Client Controller (Initiator). Das Windows Server iSCSI Target stellt virtuelle Festplatten als Speichereinheiten (LUNs) bereit, und mit dem Erscheinen von R2 wurden hier bedeutende Verbesserungen vorgenommen.

    So kommt nun das neue VHDX-Format zum Einsatz, so dass LUNs bis zu 64 TB groß sein können und bei Server-Ausfällen, etwa wegen Stromunterbrechungen, weniger anfällig gegen Beschädigung sind. Die maximale Anzahl an LUNs erhöhte sich zudem auf 256 auf jene der gleichzeitigen Sessions auf 544. Hinzu kommen Verbesserungen bei Performance und Management, unter anderem durch ein intelligenteres Caching und die Unterstützung der Schnittstelle SMI-S.

    Damit eignet sich Windows Server 2012 R2 für den Einsatz als Storage-System in produktiven Umgebungen. Allerdings wird man dort einen Single Point of Failure (SPoF) vermeiden wollen und daher ein iSCSI-Target über ein Failover-Cluster bereitstellen.

    Die folgende Anleitung beschreibt jedoch die Konfiguration eines einzelnen Servers, wie man ihn in kleineren Umgebungen nutzen wird, um das grundsätzliche Vorgehen zu erläutern.

    Netzwerke konfigurieren

    Die Netzwerkadapterkonfiguration spielt, wie bereits angedeutet, eine zentrale Rolle und dementsprechend beginnt hier die Grundsteinlegung. In der Laborumgebung konfiguriere ich zwei Netzwerkadapter am Windows Server und trenne das lokale Netzwerk vom SAN (Storage Area Network).

    Das Storage-Netzwerk benötigt keine DNS-Auflösung und keinen Client für Microsoft-Netzwerke.

    Eine NIC hat Zugriff auf das Domänennetzwerk und erhält in dieser Beispielkonfiguration die IPv4 192.168.1.8 / 24 mit einem Eintrag für Gateway und DNS-Server. Die zweite NIC bedient das iSCSI-Speichernetzwerk und erhält die IPv4 192.168.10.50 / 24. Bindungen wie Client für Microsoft-Netzwerke usw. sind auf dem iSCSI-Netzwerkadapter nicht erforderlich und sollten dementsprechend deaktiviert werden. Auch eine DNS Auflösung ist hier nicht nötig.

    Danach werden die Netzwerkadapter entsprechend ihrer Rolle in z.B. LAN oder iSCSI umbenannt.

    In einer Produktivumgebung sollte man für die nötige Redundanz der Netzwerkkarten und Switches sorgen um auch hier einen Single Point of Failure zu vermeiden. Außerdem wird man Multipath I/O konfigurieren, um neben Failover auch einen höheren Datendurchsatz zu erzielen.

    Rolle als iSCSI-Target hinzufügen

    Nachdem die Netzwerkkarten konfiguriert sind, kann ich die Rolle iSCSI-Zielserver (iSCSI Target) inklusive der iSCSI-Zielspeicher­anbieter installieren. Im Server Manager klicke ich auf Verwalten und füge die neue Rolle auf einem ausgewählten Server hinzu. Die Fertigstellung der Installation zieht keinen Neustart des Servers nach sich, und somit taucht die Rolle unmittelbar neu im Server Manager unter Datei-/Speicherdienste => iSCSI auf.

    Die Rolle als iSCSI-Target (auf deutsch: iSCSI-Zielserver) wird über den Server Manager hinzugefügt.

    Neue virtuelle iSCSI-Datenträger erstellen

    Zu diesem Zweck wechsel ich im Server Manager auf den neuen Punkt iSCSI und klicke auf den Link "Starten Sie den Assistenten für neue virtuelle iSCSI-Datenträger,…".

    Nach dem Hinzufügen der iSCSI-Target-Rolle startet man den Assistenten für neue iSCSI-Datenträger.

    Die erste Abfrage betrifft den Speicherort für die iSCSI-Datenträger. Sie werden im VHDX-Format angelegt und hier bestimmt man, wo man diese im Dateisystem speichert. Hier lässt sich bei Bedarf auch ein bereits konfiguriertes iSCSI-Target auswählen.

    Im ersten Schritt verlangt der Assistent die Eingabe des Speicherorts für die VHDX.

    Ich belasse den Standardpfad auf C:\iSCSIVirtualDisk und vergebe anschließend einen Namen für die VHDX-Datei. In diesem Fall soll der Name des Datenträgers Volume1 heißen und der vollständige Pfad lautet somit C:\iSCSIVirtualDisks\Volume1.vhdx. Im nächsten Schritt gelangt man zur Größenkonfiguration.

    Eine feste Größe bedeutet immer schnellere Schreib-/Lesezugriffe und geringe Fragmentierung, eine solche fixe VHDX belegt jedoch sofort den angegebenen Speicherplatz. Dynamisch erweiterbare Laufwerke bieten mehr Flexibilität durch ein Anwachsen nach Bedarf, fragmentieren jedoch stärker.

    Größe -und Typ der VHDX-Datei: Diese darf bis zu 64 TB groß sein.

    Alternativ zur GUI kann man für diese Aufgabe auch PowerShell einsetzen:

    New-IscsiVirtualDisk –Path C:\iSCSIVirtualDisks\Volume1.vhdx –Size 40GB -UseFixed

    iSCSI-Ziele definieren

    Der Datenträger wurde somit angelegt, nun definiere ich ein neues iSCSI-Ziel mit dem Namen hyper-v-host-a. Im folgenden Dialog werden die Client-Initiatoren hinzugefügt. Das sind die Rechner, die per Initiator auf den iSCSI-Datenträger zugreifen dürfen. Man kann hier das Verzeichnis abfragen, einen IQN (iSCSI Qualified Name) direkt angeben oder per IP bzw. DNS-Namen Zugriffsserver definieren.

    Beim Anlegen eines neuen Targets definiert man die Initiatoren, die darauf zugreifen dürfen.

    Im letzten Schritt konfiguriere ich die optionale Authentifizierung gegen das iSCSI-Ziel. Hier aktiviere ich CHAP (Challenge Handshake Authentication-Protokoll) um den Zugriff auf den Zieldatenträger nur authentifizierten Initiatoren zu gewähren.

    Mit Hilfe der CHAP-Einstellungen kann man sicherstellen, dass nur authentifizierte Initiatoren auf das Target zugreifen können.

    Zum Abschluss zeigt der Wizard eine Zusammenfassung aller gewählten Einstellungen an und über den Button Erstellen wird der virtuelle iSCSI Datenträger samt Zugriffskonfiguration erzeugt. Im Server Manager sieht man im Anschluss die nicht verbundenen iSCSI-Ziele und die dazugehörigen Datenträger.

     Resultat: Zieldatenträger und Zielname. Ein iSCSI-Ziel kann auch mehrere Datenträger bereitstellen.

    Das iSCSI-Storage auf Basis von Windows Server 2012 R2 ist nun einsatzbereit und lässt sich auf den berechtigten Clients nutzen, nachdem man dort den iSCSI-Initiator eingerichtet hat (siehe dazu: iSCSI-Storage in Windows Server 2012 R2 und Hyper-V nutzen).

    7 Kommentare

    Bild von Christian Wimmer
    Christian Wimmer sagt:
    27. Mai 2015 - 21:00

    Leider lässt die Performance von dem Microsoft iSCSI Target sehr zu wünschen übrig. Ich habe es für eine Testumgebung als Speicher für Hyper-V VMs verwendet, war etwas enttäuschend. Ich verwende nun als kostenlose Alternative das Starwind Virtual SAN. Hier kann man Hauptspeicher als Cache nutzen, was das bei mir doch merklich beschleunigt hat.

    Bild von M. Küppers
    M. Küppers sagt:
    28. Mai 2015 - 12:57

    Es ist natürlich Geschmackssache, für welches Target man sich letztendlich entscheidet. Das Windows Server Target ist eine Option. Das iSCSI Protokoll hat per design schon overhead und um "hinten raus" performant zu arbeiten, braucht man auch ein entsprechendes Speichersubsystem. Die Flexibilität auf Basis der VHDX Container ist auch ein großes Plus pro Windows Server Target.

    Bild von Taras Schwed
    Taras Schwed sagt:
    2. Juni 2015 - 13:26

    Herzlichen Gruß,

    StarWind Virtual SAN ist eine alternative Lösung für solche Fälle. Es bietet mehr Möglichkeiten und Flexibilität als Microsoft iSCSI Target.

    Für eine 2-Node-Konfiguration kann man die freie Version verwenden.

    Bild von Frank
    Frank sagt:
    30. Januar 2018 - 13:45

    Hallo!
    Ich habe ein Problem mit dem ISCSI Ziel auf Server 2012 R2. Es werden keine Verbindungen hergestellt wenn als InitiatorenID "DnsName" benutzt wird. IP Adresse, MAC und IQN funktionieren. Sind für DnsName Besonderheiten zu beachten?

    Bild von Frank
    Frank sagt:
    30. Januar 2018 - 13:53

    Hallo!
    Hat sich erledigt, der Geistesblitz kam nach dem Senden der Nachricht. Eine Reverse-Lookupzone behebt das Problem.

    Bild von Marcel Küppers
    31. Januar 2018 - 15:27

    Konfiguriertes und funktionierendes DNS ist wie immer im Windows Netzwerk essentiell.

    Bild von Florian
    Florian sagt:
    2. Oktober 2018 - 0:14

    Muss die Rolle ISCSI-Zielspeicheranbieter mitinstalliert werden? In vielen anderen Tutorials wird nur die target-Server-Rolle installiert. Ausserdem ist die Rede davon, dass man nicht beide Rollen auf dem selben server installieren soll, sondern die Zielspeicheranbieter-Rolle auf einem "Application-Server".
    ich habe laut dieser Anleitung beide Rollen installiert und bekomme dauernd die Fehlermeldungen 13 und 12292. Beide haben als Ursprung den ISCSI Target Harddware provider. Rätsle gerade, ob das was mit der 2. Rolle zu tun hat. Der Server, wo ich installiert habe, ist NICHT der DC, falls das eine Rolle spielt.