Sammeln von Diagnosedaten für Cluster

Gilt für: Azure Stack HCI, Versionen 22H2 und 21H2, Windows Server 2022, Windows Server 2019, Windows Server 2016

Es gibt verschiedene Diagnosetools in „Direkte Speicherplätze“, mit denen Sie die Daten sammeln können, die für die Problembehandlung bei Azure Stack HCI- und Windows Server-Clustern benötigt werden. Der Schwerpunkt dieses Artikels liegt auf der Installation und Verwendung von SDDC-Diagnosetools, um relevante Informationen zu sammeln, die Sie bei der Diagnose Ihres Clusters unterstützen.

Da die Protokolle und anderen Informationen sehr umfangreich sind, eignen sich die Informationen in diesem Artikel zur Behandlung von komplexeren Problemen, die bereits eskaliert wurden und bei denen möglicherweise Daten zur Selektierung an Microsoft gesendet werden müssen.

Installieren und Verwenden von Diagnosetools mit Windows Admin Center

Windows Admin Center (ab Version 1812) kann für folgende Aufgaben verwendet werden:

  • Installieren und Aktualisieren der SDDC-Diagnosetools
  • Planen täglicher Diagnoseausführungen (diese haben geringfügige Auswirkungen auf das System, laufen in der Regel weniger als fünf Minuten im Hintergrund und belegen nicht mehr als 500 MB im Cluster)
  • Anzeigen der zuvor gesammelten Diagnoseinformationen, wenn Sie diese dem Support bereitstellen müssen oder selbst analysieren möchten

Führen Sie die folgenden Schritte aus, um die SDDC-Diagnosetools zu installieren und mit dem Sammeln von Daten zu beginnen:

  1. Starten Sie Windows Admin Center, und wählen Sie Extras> Diagnose aus. Wenn die Diagnosetools noch nicht installiert sind, klicken Sie auf die Schaltfläche Installieren.

    Klicken Sie auf „Installieren“, um die SDDC-Diagnosetools zu installieren.

  2. Klicken Sie auf Sammeln, um mit dem Sammeln von Diagnosedaten zu beginnen. In einer Meldung sollte angezeigt werden, dass Diagnoseinformationen gesammelt werden und dieser Vorgang einige Minuten in Anspruch nehmen kann.Wenn Sie nach der ersten Datensammlung automatisch alle 24 Stunden Daten sammeln möchten, ändern Sie den Schieberegler in Ein.

    Klicken Sie auf „Sammeln“, um mit dem Sammeln von Diagnosedaten zu beginnen.

  3. Die Datensammlung ist erst abgeschlossen, wenn der folgende Screenshot angezeigt wird. Zum Anzeigen der gesammelten Diagnoseinformationen wählen Sie Herunterladen (ZIP-Datei) oder In Dateitool öffnen aus.

    Zum Anzeigen von Diagnoseinformationen können Sie entweder eine ZIP-Datei herunterladen oder die Datei im Dateitool öffnen.

Installieren von Get-SDDCDiagnosticInfo mit PowerShell

Sie können das PowerShell-Cmdlet Get-SDDCDiagnosticInfo (auch als Get-PCStorageDiagnosticInfo bekannt, früher Test-StorageHealth) verwenden, um Protokolle für das Failoverclustering (Cluster, Ressourcen, Netzwerke, Knoten), Speicherplätze (physische Datenträger, Gehäuse, virtuelle Datenträger), freigegebene Clustervolumes, SMB-Dateifreigaben und Deduplizierung zu sammeln und Integritätsprüfungen durchzuführen.

Das Skript kann über zwei Methoden installiert werden: über den PowerShell-Katalog und über GitHub. Beide Vorgehensweisen sind nachfolgend beschrieben.

Beim PowerShell-Katalog handelt es sich um eine Momentaufnahme des GitHub-Repositorys. Zum Installieren von Elementen aus dem PowerShell-Katalog ist die aktuelle Version des PowerShellGet-Moduls erforderlich, das in Windows 10, in Windows Management Framework (WMF) 5.0 oder im MSI-basierten Installationsprogramm (für PowerShell 3 und 4) verfügbar ist.

Wir installieren auch die aktuelle Version der Microsoft-Netzwerkdiagnosetools während dieses Vorgangs, da Get-SDDCDiagnosticInfo davon abhängt. Dieses Manifestmodul enthält ein Tool zur Diagnose und Problembehandlung bei Netzwerken, das von der Produktgruppe Microsoft Core Networking bei Microsoft unterhalten wird.

Sie können das Modul installieren, indem Sie den folgenden Befehl in PowerShell als Administrator ausführen:

Install-PackageProvider NuGet -Force
Install-Module PrivateCloud.DiagnosticInfo -Force
Import-Module PrivateCloud.DiagnosticInfo -Force
Install-Module -Name MSFT.Network.Diag

Führen Sie zum Aktualisieren des Moduls den folgenden Befehl in PowerShell aus:

Update-Module PrivateCloud.DiagnosticInfo

GitHub

Das Modul wird ständig weiterentwickelt, wobei es sich bei diesem GitHub-Repository um die aktuelle Version des Moduls handelt. Wenn Sie das Modul über GitHub installieren möchten, laden Sie das aktuelle Modul aus dem Archiv herunter und extrahieren das Verzeichnis „PrivateCloud.DiagnosticInfo“ im entsprechenden PowerShell-Modulpfad, auf den durch $env:PSModulePath verwiesen wird.

# Allowing Tls12 and Tls11 -- e.g. github now requires Tls12
# If this is not set, the Invoke-WebRequest fails with "The request was aborted: Could not create SSL/TLS secure channel."
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$module = 'PrivateCloud.DiagnosticInfo'
Invoke-WebRequest -Uri https://github.com/PowerShell/$module/archive/master.zip -OutFile $env:TEMP\master.zip
Expand-Archive -Path $env:TEMP\master.zip -DestinationPath $env:TEMP -Force
if (Test-Path $env:SystemRoot\System32\WindowsPowerShell\v1.0\Modules\$module) {
    rm -Recurse $env:SystemRoot\System32\WindowsPowerShell\v1.0\Modules\$module -ErrorAction Stop
    Remove-Module $module -ErrorAction SilentlyContinue
} else {
    Import-Module $module -ErrorAction SilentlyContinue
}
if (-not ($m = Get-Module $module -ErrorAction SilentlyContinue)) {
    $md = "$env:ProgramFiles\WindowsPowerShell\Modules"
} else {
    $md = (gi $m.ModuleBase -ErrorAction SilentlyContinue).PsParentPath
    Remove-Module $module -ErrorAction SilentlyContinue
    rm -Recurse $m.ModuleBase -ErrorAction Stop
}
cp -Recurse $env:TEMP\$module-master\$module $md -Force -ErrorAction Stop
rm -Recurse $env:TEMP\$module-master,$env:TEMP\master.zip
Import-Module $module -Force

Wenn dieses Modul in einem Offlinecluster installiert werden muss, laden Sie die ZIP-Datei herunter, verschieben sie in den Zielserverknoten und installieren das Modul.

Sammeln von Protokollen mit PowerShell

Nachdem Sie Ereigniskanäle aktiviert und den Installationsvorgang abgeschlossen haben, können Sie das PowerShell-Cmdlet Get-SDDCDiagnosticInfo im Modul für folgende Aufgaben verwenden:

  • Abrufen von Berichten zur Speicherintegrität sowie von Details zu fehlerhaften Komponenten
  • Abrufen von Berichten zur Speicherkapazität nach Pool, Volume und dedupliziertem Volume
  • Abrufen von Ereignisprotokollen von allen Clusterknoten sowie von einem zusammenfassenden Fehlerbericht

Beispiel: Ihr Speichercluster hat den Namen CLUS01.

Ausführung für einen Remotespeichercluster:

Get-SDDCDiagnosticInfo -ClusterName CLUS01

Lokale Ausführung auf einem Clusterspeicherknoten:

Get-SDDCDiagnosticInfo

Speichern der Ergebnisse in einem angegebenen Ordner:

Get-SDDCDiagnosticInfo -WriteToPath D:\Folder

Beispiel für das Skript bei einem konkreten Cluster:

New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
Get-SddcDiagnosticInfo -ClusterName S2D-Cluster -WriteToPath d:\SDDCDiagTemp

Wie Sie sehen, wird mit dem Skript auch der aktuelle Status des Clusters überprüft:

PowerShell-Screenshot der Datensammlung.

Alle Daten werden in den Ordner „SDDCDiagTemp“ geschrieben:

Screenshot der Daten in Explorer.

Nach Abschluss des Skripts wird eine ZIP-Datei in Ihrem Benutzerverzeichnis erstellt:

Screenshot der Daten-ZIP-Datei in PowerShell

Als Nächstes wird ein Bericht in einer Textdatei erstellt:

#find the latest diagnostic zip in UserProfile
    $DiagZip=(get-childitem $env:USERPROFILE | where Name -like HealthTest*.zip)
    $LatestDiagPath=($DiagZip | sort lastwritetime | select -First 1).FullName
#expand to temp directory
    New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
    Expand-Archive -Path $LatestDiagPath -DestinationPath D:\SDDCDiagTemp -Force
#generate report and save to text file
    $report=Show-SddcDiagnosticReport -Path D:\SDDCDiagTemp
    $report | out-file d:\SDDCReport.txt

Über diese Links gelangen Sie zum Beispielbericht und zur entsprechenden ZIP-Datei.

Ausgabe von Get-SDDCDiagnosticInfo

Im Folgenden finden Sie die Dateien, die in der ZIP-Ausgabe von Get-SDDCDiagnosticInfo enthalten sind.

Integritätszusammenfassungsbericht

Der Integritätszusammenfassungsbericht wird folgendermaßen gespeichert:

  • 0_CloudHealthSummary.log

Diese Datei wird nach der Analyse aller gesammelten Daten generiert und soll eine kurze Zusammenfassung Ihres Systems bereitstellen. Sie enthält folgende Elemente:

  • Systeminformationen
  • Übersicht über die Speicherintegrität (Anzahl der Knoten, Ressourcen, die online sind, freigegebene Clustervolumes, die online sind, fehlerhafte Komponenten usw.)
  • Details zu fehlerhaften Komponenten (Clusterressourcen, die offline oder fehlerhaft oder deren Onlineschaltung aussteht)
  • Firmware- und Treiberinformationen
  • Details zu Pool, physischem Datenträger und Volume
  • Speicherleistung (es werden Leistungsindikatoren erfasst)

Dieser Bericht wird ständig aktualisiert und enthält jede Menge nützliche Informationen. Die neuesten Informationen finden Sie in der GitHub-Infodatei.

Protokolle und XML-Dateien

Mit dem Skript werden verschiedene Protokollerfassungsskripts ausgeführt, und die entsprechenden Ausgaben werden als XML-Dateien gespeichert. Es werden Cluster- und Integritätsprotokolle, Systeminformationen (MSInfo32), ungefilterte Ereignisprotokolle (Failoverclustering, Datenträgerdiagnose, Hyper-V, Speicherplätze usw.) sowie Informationen zu Speicherdiagnose (Betriebsprotokolle) gesammelt. Die neuesten Informationen dazu, welche Informationen gesammelt werden, finden Sie in der GitHub-Infodatei (was wird von uns erfasst?).

Verwenden von XML-Dateien aus Get-SDDCDiagnosticInfo

Sie können die Daten aus den XML-Dateien nutzen, die in den vom Cmdlet Get-SDDCDiagnosticInfo gesammelten Daten bereitgestellt werden. Diese Dateien enthalten Informationen zu den virtuellen und physischen Datenträgern, grundlegende Informationen zum Cluster und andere PowerShell-bezogene Ausgaben.

Öffnen Sie ein PowerShell-Fenster, und gehen Sie wie folgt vor, um die Ergebnisse dieser Ausgaben anzuzeigen.

ipmo storage
$d = import-clixml <filename>
$d

Nächste Schritte

Lassen Sie uns wissen, was Sie vermissen, indem Sie hier Probleme schildern. Sie können auch hilfreiche Änderungen am Skript vornehmen, indem Sie einen Pull Request einreichen.