FlashArray: Windows Server FC Setup PowerShell script
Aktualisiert: 9. Mai 2021
Eine Konfiguration von FlashArrays ist "pretty straightforward". Die Anbindung an VMware-Hosts ist bei Fibre Channel (FC) als auch Internet SCSI (iSCSI) einfach und ohne großen "Hirnschmalz" schnell erledigt - VMware macht nahezu alles selbst mit den zugehörigen Best Practices. Die Anbindung an physische Windows-Hosts mit FC ist schon ein wenig komplizierter. Bei Windows-Hosts mit iSCSI ist die Host-Konfiguration verhältnismäßig kompliziert und für Admins mit Recherchen und einigen manuellen Tasks verbunden. Ein Grund hier mit einem Tool entsprechend den "Pain" zu adressieren und letztendlich zu lösen - ein Rundum-sorglos-Tool - mit sämtlichen Best Practices für die optimale FC-Systemkonfiguration.
HIER GEHTS ZUM SCRIPT FÜR ISCSI UMGEBUNGEN:
FlashArray: Windows Server iSCSI Setup PowerShell script
Das "Windows Server FC Setup" PowerShell Script erledigt für Sie anhand weniger Parameteranfragen:
Installation der Pure Storage Powershell SDK v2 + Toolkit
Erstellung des Host-Objekts auf dem(/den) FlashArray(s) inkl. Host-WWNs
Installation des Windows Server Multipathing-IO Features
Anwenden der MPIO-/Best-Practice-Parameter
Validierung des Windows Hosts auf Best-Practices (nutzt offizielles Pure Storage Toolkit)
Das Script wurde für FlashArray-Standalone-Konfigurationen (mit zwei FC-Interfaces pro Controller) entwickelt, eignet sich jedoch auf für ActiveCluster-Konfigurationen! Hierzu muss das Script einfach erneut am Host für das zweite FlashArray (mit den angepassten-zutreffenden Variablen) ausgeführt werden.
Ebenfalls eignet sich das Script neben Dual-Fabric-Architekturen auch für Single-Fabric-Architekturen. Ebenfalls für mehr als zwei FC-Interfaces pro Controller - es ist lediglich eine erneute Ausführung notwendig.
Voraussetzungen
Um das PowerShell Script zu nutzen, müssen nachfolgende Systemvoraussetzungen erfüllt werden.
An das Host-Betriebssystem:
64-bit Windows Server 2012/2012R2/2016/2019
Windows PowerShell Version 5.0
Microsoft .NET Framework 4.7.2 oder .NET Core 2.1 oder neuer
Die nachfolgende Systemvoraussetzungen können mit Hilfe des Scripts (Option 1) geschaffen werden:
Pure Storage PowerShell SDK v2 (benötigt .NET Framework - muss vorab installiert sein/Offline-Installer .NET 4.7.2 ggf. im Verzeichnis enthalten)
Pure Storage PowerShell Toolkit
An das FlashArray:
FlashArray mit Purity REST API 2.2 (ab Purity 6.0.0 gegeben)
Host-FlashArray TCP-IP-Verbindung über Port 443/HTTPS
TIPP: zum Prüfen der verfügbaren API-Version des FlashArrays öffnen Sie einen Webbrowser und rufen Sie den Weblink auf:
https://<FQDN oder IP Adresse des FlashArrays>/api/api_version

Die Entwicklungsumgebung-/konfig (= Basis im Blog enthaltenen Screenshots)
Wie bereits angeschnitten eignet sich das Script für Single- und Dual-Fabric-Konfigurationen:
Dual-Fabric-Konfiguration (Standard)
Zu sehen eine vereinfachte Visualisierung (das SAN vereinfacht dargestellt) einer Dual-Fabric-Konfiguration. Es existieren zwei FC-Switche mit den Host-FC-Port1/FlashArray-ct0/ct1.fc0 mit Fabric1 und den Host-FC-Port2/FlashArray-ct0/ct1.eth2 innerhalb des Fabric2 gezont werden.

In der Test-/Entwicklungsumgebung ist eine Dual-Fabric-Konfiguration (gängiger Standard) vorzufinden!
How To: Use Windows Server FC Setup script
Das Script kann man im PUREFLASH.blog Mitgliederbereich kostenfrei herunterladen. Die Registrierung ist fix erledigt, sie ist unverbindlich und jederzeit widerrufbar. Neben dem Script gibt es bereits mehrere weitere Inhalte zum Downloaden. Anmelden lohnt sich also!: zum geschützten Bereich.
Das Script habe ich gemeinsam mit den Release Notes in eine ZIP-Datei gepackt, diese ist aufgrund von Screenshots und Setupdateien (.NET) 85 MB groß. Nach erfolgreichem Entpacken muss man die Windows PowerShell als Administrator ausführen. Dies ist zwingend nötig, um die entsprechenden PowerShell-Module zu installieren.
HINWEIS: Bitte lesen Sie die in der ZIP enthaltenen Releasenotes!
Script mit Administrator-Rechten ausführen
Das Script wird aus dem zuvor entpackten Ordner mit all seinen Inhalten als Administrator ausgeführt. Über die sieben Menü-Optionen gelangt man in die einzelnen Konfigurationsschritte.


Option 1 - Installieren der Pure Storage PowerShell SDK v2 und Toolkit
Mit Option 1 installieren Sie die Pure Storage PowerShell SDK v2 und importieren das Pure Storage PowerShell Toolkit in ihre PowerShell Module.
Die Installation der SDK (MSI-Package) und der Import des Toolkits erfolgt automatisch. Stellen Sie zuvor sicher, dass die Systemvoraussetzungen (siehe oben) erfüllt werden.
Die Module sind zwingend für die weiteren Nutzung der einzelnen Script Optionen notwendig!
Nach erfolgreicher Installation/Import muss die PowerShell-Session/Script beendet werden und erneut ausgeführt werden.

Option 2 - Erstellung des Host-Objekts auf dem(/den) FlashArray(s) inkl. Host-WWNs
Mit der Option 2 erstellen Sie das Host-Objekt mit seiner zugehörigen WWN (Windows Host) auf dem FlashArray. Es wird eine REST-API Verbindung zum FlashArray aufgebaut. Die Verbindung erfolgt über die VIP (virtual ip) des FlashArrays mit einem Benutzer mit mindestens "storage admin"-Rechten.

Nach erfolgreicher Anmeldung werden die verfügbaren WWN(s) des Windows Hosts ausgegeben und Sie müssen die zu konfigurierenden WWN(s) per Copy-Paste auswählen.

Das Host-Objekt wird mit dem jeweiligen Computernamen angelegt.
Am Ende dieser Script-Option erfolgt automatisch der Verbindungsabbau zur FlashArray REST-API.
HINWEIS: Behalten Sie bei ActiveCluster-Konfigurationen im Hinterkopf, dass die beschriebenen Schritte für das zweite System ebenfalls durchgeführt werden.
Option 3 - Installation des Windows Server Multipath-IO Features
Mit Option 3 wird das Windows Server Multipath-IO Feature installiert.
Nach der erfolgreichen Feature-Installation ist ein Serverneustart erforderlich!
Der Serverneustart kann jedoch auch nach Ausführung der Script-Option 4 durchgeführt werden.
Option 4 - Anwenden der MPIO-/Best-Practice-Parameter
Mit Option 4 schließen Sie letztendlich die Konfiguration ab.
Es werden entsprechende Best-Practice Einstellungen gesetzt:
Anpassung MPIO-Device Einstellung: PURE - FlashArray (New-MSDSMSupporedHW)
Anpassung der Storage Einstellungen auf: OnlineAll (Set-StorageSetting)
Anpassung der MPIO Load-Balancing Policy auf: Round Robin (Set-MSDSMGlobalDefaultLoadBalancePolicy)
Anpassung der Pfad Recovery auf: aktiv (Set-MPIOSetting -CustomPathRecovery)
Anpassung der Pfad Recovery Zeit auf: 20 Sekunden (Set-MPIOSetting -NewPathRecoveryInterval)
Anpassung "physical device object" PDO auf: 30 Sekunden (Set-MPIOSetting -NewPDORemovePeriod)
Anpassung Disk Timeout Wert auf: 60 Sekunden (Set-MPIOSetting -NewDiskTimeout)
Anpassung Pfad Verifizierung auf: aktiv (Set-MPIOSetting -NewPathVerificationState)
Nach der erfolgreichen Parameteranpassungen ist spätestens ein Serverneustart erforderlich!

Option 5 - Validierung des Windows Hosts auf Best-Practices (nutzt offizielles Pure Storage Toolkit)
Diese führt den offiziellen "Pure Storage Windows Server Best Practices Analyzer" aus und prüft auf eine optimale Serverkonfiguration.

HINWEIS: das Script und seine einzelnen Konfigurationsschritte enthalten persönliche Erfahrungswerte, welche ebenfalls durch offizielle Pure Storage System Engineers bestätigt wurden. Pure Storage empfiehlt offiziell:

Feedback zum Script nehme ich über die Kommentarfunktion gerne entgegen.
Bei Problemen lohnt es sich einen Blick in die Release Notes zu werfen.
Ansonsten wünsche ich viel Spaß bei der Nutzung des Scripts.
Weitere Infos - Links
Sämtliche offiziell veröffentlichten Einstellungsmöglichkeiten in der GUI, aber auch CLI können über die "on-board" User Guides der Pure Storage Systeme nachgelesen werden.
Im Purity Hauptmenü hierzu auf "Help" klicken.
Der User Guide ist wie das Hauptmenü gegliedert und kann von Ebene zu Ebene geöffnet werden. Eine Suchfunktion ist auch integriert - hier kann mit Schlagworten gesucht werden.
WEB: Pure Storage (Pure1) Supportportal - Ticketsystem und Unterstützung *(erfordert registrierte FlashSysteme)
TEL: Pure Storage Telefonsupport: GER - (+49) (0)800 7239467; INTERNATIONAL - (+1) 650 7294088
WEB: Pure Storage OFFICIAL Blog