Samla in diagnostikdata för kluster
Gäller för: Azure Stack HCI, versionerna 22H2 och 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
Det finns olika diagnostikverktyg i Lagringsdirigering som du kan använda för att samla in de data som behövs för att felsöka Azure Stack HCI- och Windows Server-kluster. I den här artikeln fokuserar vi på att installera och använda SDDC-diagnostikverktyg för att samla in relevant information som hjälper dig att diagnostisera klustret.
Eftersom loggarna och annan information är kompakta är informationen som presenteras i den här artikeln användbar för att felsöka avancerade problem som har eskalerats och som kan kräva att data skickas till Microsoft för sortering.
Installera och använda diagnostikverktyg med Windows Admin Center
Du kan använda Windows Admin Center (version 1812 och senare) för att:
- Installera diagnostikverktyg för SDDC och håll dem uppdaterade
- Schemalägg dagliga diagnostikkörningar (dessa har låg inverkan på systemet, tar vanligtvis mindre än fem minuter att köra i bakgrunden och tar inte upp mer än 500 MB i klustret)
- Visa tidigare insamlad diagnostikinformation om du behöver ge den för att stödja eller analysera den själv
Följ dessa steg för att installera diagnostikverktyg för SDDC och börja samla in data:
Starta Windows Admin Center och välj Verktyg > diagnostik. Om diagnostikverktygen inte redan är installerade klickar du på knappen Installera .
Börja samla in diagnostikdata genom att klicka på Samla in. Du bör se ett meddelande med texten "Samla in diagnostikinformation. Det kan ta några minuter." Om du vill samla in data var 24:e timme automatiskt efter den första datainsamlingen ändrar du skjutreglaget till På.
Datainsamlingen är inte klar förrän du ser skärmbilden nedan. Om du vill visa insamlad diagnostikinformation väljer du Ladda ned (.zip) eller Verktyget Öppna i filer.
Installera Get-SDDCDiagnosticInfo med PowerShell
Du kan använda PowerShell-cmdleten Get-SDDCDiagnosticInfo
(kallas Get-PCStorageDiagnosticInfo
även tidigare Test-StorageHealth
) för att samla in loggar för och utföra hälsokontroller för redundansklustring (kluster, resurser, nätverk, noder), Lagringsutrymmen (fysiska diskar, kabinett, virtuella diskar), klusterdelade volymer, SMB-filresurser och deduplicering.
Det finns två metoder för att installera skriptet: PowerShell-galleriet och GitHub. Båda beskrivs nedan.
PowerShell-galleriet
PowerShell-galleriet är en ögonblicksbild av GitHub-lagringsplatsen. Observera att installation av objekt från PowerShell-galleriet kräver den senaste versionen av PowerShellGet-modulen, som är tillgänglig i Windows 10, i Windows Management Framework (WMF) 5.0 eller i det MSI-baserade installationsprogrammet (för PowerShell 3 och 4).
Vi installerar den senaste versionen av Microsofts verktyg för nätverksdiagnostik under den här processen, eftersom Get-SDDCDiagnosticInfo
vi förlitar oss på detta. Den här manifestmodulen innehåller verktyget för nätverksdiagnostik och felsökning, som underhålls av Microsoft Core-produktgruppen för nätverk på Microsoft.
Du kan installera modulen genom att köra följande kommando i PowerShell som administratör:
Install-PackageProvider NuGet -Force
Install-Module PrivateCloud.DiagnosticInfo -Force
Import-Module PrivateCloud.DiagnosticInfo -Force
Install-Module -Name MSFT.Network.Diag
Uppdatera modulen genom att köra följande kommando i PowerShell:
Update-Module PrivateCloud.DiagnosticInfo
GitHub
GitHub-lagringsplatsen är den senaste versionen av modulen, eftersom vi kontinuerligt itererar här. Om du vill installera modulen från GitHub laddar du ned den senaste modulen från arkivet och extraherar katalogen PrivateCloud.DiagnosticInfo till rätt PowerShell-modulsökväg som pekas av $env:PSModulePath
# 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
Om du behöver hämta den här modulen i ett offlinekluster laddar du ned zip-filen, flyttar den till målservernoden och installerar modulen.
Samla in loggar med PowerShell
När du har aktiverat händelsekanaler och slutfört installationsprocessen kan du använda Get-SDDCDiagnosticInfo
PowerShell-cmdleten i modulen för att hämta:
- Rapporter om lagringshälsa, plus information om komponenter som inte är felfria
- Rapporter om lagringskapacitet efter pool, volym och deduplicerad volym
- Händelseloggar från alla klusternoder och en sammanfattningsfelrapport
Anta att lagringsklustret har namnet "CLUS01".
Så här kör du mot ett fjärrlagringskluster:
Get-SDDCDiagnosticInfo -ClusterName CLUS01
Så här kör du lokalt på klustrad lagringsnod:
Get-SDDCDiagnosticInfo
Så här sparar du resultat i en angiven mapp:
Get-SDDCDiagnosticInfo -WriteToPath D:\Folder
Här är ett exempel på hur detta ser ut i ett riktigt kluster:
New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
Get-SddcDiagnosticInfo -ClusterName S2D-Cluster -WriteToPath d:\SDDCDiagTemp
Som du ser utför skriptet även validering av aktuellt klustertillstånd:
Alla data skrivs till mappen SDDCDiagTemp:
När skriptet är klart skapar det en ZIP i användarkatalogen:
Nu ska vi generera en rapport till en textfil:
#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
Som referens finns här en länk till exempelrapporten och zip-exemplet.
Get-SDDCDiagnosticInfo utdata
Följande är de filer som ingår i zippade utdata för Get-SDDCDiagnosticInfo
.
Hälsosammanfattningsrapport
Hälsosammanfattningsrapporten sparas som:
- 0_CloudHealthSummary.log
Den här filen genereras efter parsning av alla insamlade data och är avsedd att ge en snabb sammanfattning av systemet. Den innehåller:
- Systeminformation
- Översikt över lagringshälsa (antalet noder upp, resurser online, klusterdelade volymer online, felaktiga komponenter osv.)
- Information om komponenter som inte är felfria (klusterresurser som är offline, misslyckade eller online väntar)
- Information om inbyggd programvara och drivrutin
- Information om pooler, fysiska diskar och volymer
- Lagringsprestanda (prestandaräknare samlas in)
Den här rapporten uppdateras kontinuerligt så att den innehåller mer användbar information. Den senaste informationen finns i GitHub README.
Loggar och XML-filer
Skriptet kör olika logginsamlingsskript och sparar utdata som XML-filer. Vi samlar in kluster- och hälsologgar, systeminformation (MSInfo32), ofiltrerade händelseloggar (redundanskluster, disdiagnostik, Hyper-V, lagringsutrymmen med mera) och information om lagringsdiagnostik (driftloggar). Den senaste informationen om vilken information som samlas in finns i GitHub README (vad vi samlar in).
Använda XML-filer från Get-SDDCDiagnosticInfo
Du kan använda data från XML-filerna som tillhandahålls i data som samlas in av cmdleten Get-SDDCDiagnosticInfo
. Dessa filer innehåller information om virtuella diskar, fysiska diskar, grundläggande klusterinformation och andra PowerShell-relaterade utdata.
Om du vill se resultatet av dessa utdata öppnar du ett PowerShell-fönster och kör följande steg.
ipmo storage
$d = import-clixml <filename>
$d
Nästa steg
Ge feedback om vad du vill se genom att lämna in ärenden här. Du kan också bidra med användbara ändringar i skriptet genom att skicka en pull-begäran.