• Home
  • Management

Überprüfung und Überwachung eines Scale-Out File Server mit dem Test-StorageHealth Skript

Vorlage-Button-WinServ2012R2_thumbIn diesem Beitrag geht es darum, wie man mit recht einfachen Mitteln einen oder mehrere Scale-Out File Server überwachen kann. Voraussetzung ist, dass Sie einen Scale-Out File Server mit JBODs betreiben. Ein Aufbau mit einem oder mehreren SANs kann zwar auch überwacht werden, hier können aber weniger Informationen ausgelesen werden. Grundlage ist das von Jose Barreto geschriebene PowerShell-Skript Test-StorageHealth. Das Skript verbindet sich mit einem Scale-Out File Server Cluster und überprüft ziemlich viele Dinge, unter Anderem den Status von Festplatten, Enclosures, Volumes usw. Ich habe mit einem zweiten Skript das Verhalten dahingehend ein wenig verändert, dass der Status, der sonst in dem PowerShell-Fenster oder in einer Datei auf dem Server selbst liegt, per Mail an einen Empfänger oder einen Verteiler gesendet werden kann. So kann z.B. jeden Morgen die Mail überprüft werden, ohne das jedes Mal eine Verbindung zu dem Failover Cluster-Knoten aufgebaut werden muss. Aber beginnen wir erst einmal mit dem Skript an sich:

Das Test-StorageHealth-Skript

Das Skript selbst kann direkt aus der TechNet-Gallery bezogen werden:

Test-StorageHealth.ps1 – Storage Cluster Health Test

Nach dem Download kann das Skript direkt ohne weitere Informationen oder Parameter aufgerufen werden. Dieser Aufruf (ohne Parameter) beginnt einige Informationen über den Failover Cluster zu sammeln. Bedingung ist, dass das Skript auf einem der Knoten direkt ausgeführt wird. Die Daten werden nach Beendigung des Skripts im Ordner “HealthStatus” im Profil des aktiven Benutzers gespeichert. In den wenigsten Fällen werden die überprüften Werte in dem Skript automatisch passen, daher sollten diese vor dem ersten Aufruf angepasst werden. Öffnen Sie die Datei Test-StorageHealth.ps1 in einem Editor (z.B. der PowerShell ISE) und passen Sie die Werte in den Zeilen 60 bis 116 an. Angepasst werden sollten:

  • Zeile 83:  [int] $ExpectedNodes = 4, => Hier tragen Sie die Anzahl der Hardware-Knoten ein
  • Zeile 87: [int] $ExpectedNetworks = 2, => Die Anzahl der Netzwerke in Ihrem Cluster
  • Zeile 91: [int] $ExpectedVolumes = 33, => Die Anzahl an Datenträgern im Cluster
  • Zeile 95: [int] $ExpectedDedupVolumes = 16, => Die Anzahl an Datenträgern mit aktivem Dedup
  • Zeile 99: [int] $ExpectedPhysicalDisks = 240,=> Die Anzahl an Datenträgern (HDDs und SSDs)
  • Zeile 103: [int] $ExpectedPools = 3,=> Die Anzahl an Datenträgerpools
  • Zeile 107: [int] $ExpectedEnclosures = 4, => Die Anzahl an Enclosures

Die Einstellungen müssen nicht unbedingt in der Datei gemacht werden, Sie können das Skript auch bei jedem Aufruf mit Hilfe von zusätzlichen Parametern anpassen. Ein Aufruf des Skripts sähe dann z.B. wie folgt aus:

.\Test-StorageHealth.ps1 -ExpectedNodes 2 -ExpectedNetworks 3 -ExpectedVolumes 3 -ExpectedDedupVolumes 0 -ExpectedPhysicalDisks 24 -ExpectedPools 1 -ExpectedEnclosures 1 -HoursOfEvents 12

Weitere Erklärungen finden Sie in dem folgenden Beitrag: How to use the Test-StorageHealth.ps1 PowerShell script with different configurations

image

Die von dem Skript erzeugte Datei kann nachträglich erneut aufgerufen werden. Hierzu rufen Sie das Skript mit dem Parameter –ReadFromPath C:\Datei.zip auf.

image

Der automatische Mail-Versand des Skripts

Das Skript generell ist ein echt cooles Stück PowerShell-Code, allerdings kann standardmäßig keine Email erzeugt werden, die die Ausgabe an einen oder mehrere Empfänger sendet. Ich habe diesen Teil mal übernommen und ein kleines Skript “drum herum” gebaut, welches die Ausgabe, die man oben in den PowerShell-Fenstern sieht, automatisch per Mail zugesandt bekommt. Grundlage hiervon war das Autotiering-Skript von Carsten, ich habe letztendlich “nur” die einzelnen Pfade angepasst und das neue Skript lauffähig gemacht.

Download: Task_Test-StorageHealth.zip

In dem Zip-Archiv ist ein eigenes kleines Skript enthalten, welches den Aufruf des eigentlichen Überprüfung-Skripts übernimmt und die Ausgabe automatisch per Email sendet. Dazu sind innerhalb des Skripts ein paar Anpassungen notwendig.

Mail-Server:

Kommentieren Sie die Zeilen 6-8 aus und nehmen Sie die Auskommentierung von Zeile 9-11 weg. Tragen Sie in Zeile 9 Ihren Mail-Server ein, definieren Sie in Zeile 10 den Empfänger und bei Bedarf können Sie in der Zeile 11 noch den Absender der Email-anpassen.

Logfile:

In Zeile 14 können Sie den Ort des Logfiles anpassen, an dem der Mail-Inhalt ebenfalls nochmal abgelegt wird.

Das Test-StorageHealth-Skript

In Zeile 22 müssen Sie den Pfad zu dem eigentlichen Skript anpassen. Alternativ können Sie natürlich auch das Skript unter C:\tools ablegen, in diesem Fall muss keine Anpassung mehr vorgenommen werden. Falls Sie den Pfad, an dem die .zip-Datei mit dem Ergebnis abgelegt wird, ebenfalls anpassen wollen, müssen Sie die Zeile 22 auskommentieren und die Zeile 21 nutzen. Der Parameter –zipPrefix definiert, wo die Datei gespeichert wird. Achten Sie unbedingt darauf, dass der Pfad mit einem “\” abgeschlossen wird!

image

Speichern Sie die Änderungen und testen Sie das Skript einem Aufruf der Datei über eine administrative PowerShell. Wenn dies erfolgreich ist und im besten Fall direkt eine Email ankommt, können Sie mit der Einrichtung des Tasks fortfahren.

image

image

Erstellen Sie über die Aufgabenplanung einen neuen Task mit den folgenden Einstellungen:

image

image

Die Zeit ist natürlich egal, Sie können das Skript auch alle sechs Stunden oder nur einmal in der Woche ausführen, je nach Bedarf.

image

Unter Aktionen tragen Sie bei Programm/Skript C:\Windows\system32\windowspowershell\v1.0\powershell.exe ein, unter Argumente hinzufügen tragen Sie den Pfad zu der Datei Task_Test-StorageHealth.ps1 ein.

Vergeben Sie ein Konto und ein Kennwort, unter dem der Task ausgeführt werden soll. Fertig ist die Erstellung, nun wird zu der definierten Zeit das Skript ausgeführt und meldet die Ausgabe per Email.

Diesen Task könnte man nun auch noch auf den anderen Knoten im Failover Cluster einstellen. Der Bericht meldet das gleiche, allerdings kommt auch bei dem Ausfall von Knoten A ein Bericht, in dem der Ausfall von einem Node vermeldet wird. Alternativ lassen Sie das Skript auf einem Server außerhalb des Failover Cluster laufen, hierzu müssen Sie allerdings den Namen des Failover Cluster noch mit angeben. Dies muss in der Datei Test-StorageHealth.ps1-Datei gemacht werden (Zeile 67: [string] $ClusterName = „.“,).

Jan Kappen
 

Jan Kappen ist ausgebildeter Fachinformatiker in der Richtung Systemintegration. Er hat seine Ausbildung im Sommer 2008 abgeschlossen und arbeitete bis August 2018 bei der Rachfahl IT-Solutions GmbH & Co. KG. Seit September 2018 arbeitet er als Senior Netzwerk- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland. Jan Kappen ist unter anderen MCITP Server Administrator, Enterprise Administrator und Enterprise Messaging Administrator 2010 sowie MCTS für System Center Virtual Machine Manager 2008, Windows Server 2008 Active Directory, Windows Server Virtualization und Windows Server 2008 Network Infrastructure. Seit 2015 wird Jan Kappen im Bereich "File System Storage" bzw. "Cloud & Datacenter Management" für seine Expertise und seine Community-Arbeit mit dem MVP Award von Microsoft ausgezeichnet.

Comments are closed