Collecter les données de diagnostic pour les clusters
S’applique à : Azure Stack HCI, versions 22H2 et 21H2, Windows Server 2022, Windows Server 2019, Windows Server 2016
Important
Azure Stack HCI fait désormais partie d’Azure Local. Le changement de nom de la documentation produit est en cours. Toutefois, les versions antérieures d’Azure Stack HCI, par exemple 22H2, continueront de référencer Azure Stack HCI et ne reflèteront pas la modification du nom. Plus d’informations
Il existe plusieurs outils de diagnostic dans les espaces de stockage direct que vous pouvez utiliser pour collecter les données nécessaires pour résoudre des problèmes de clusters Azure Stack HCI et Windows Server. Dans cet article, nous allons nous concentrer sur l’installation et l’utilisation des outils de diagnostic SDDC (centre de données défini par logiciel) pour rassembler des informations pertinentes vous aidant à diagnostiquer votre cluster.
Puisque les journaux et autres informations sont denses, les informations présentées dans cet article sont utiles pour la résolution de problèmes avancés qui ont été transférés et qui peuvent nécessiter l’envoi de données à Microsoft à des fins de triage.
Installer et utiliser les outils de diagnostic avec Windows Admin Center
Vous pouvez utiliser Windows Admin Center (à partir de la version 1812) pour :
- installer des outils de diagnostic SDDC et les maintenir à jour ;
- planifier des exécutions de diagnostic quotidiennes (celles-ci ont un faible impact sur votre système et prennent généralement moins de cinq minutes pour s’exécuter en arrière-plan et n’occupent pas plus de 500 Mo sur votre cluster) ;
- afficher les informations de diagnostic précédemment collectées si vous devez les remettre au support ou les analyser vous-même.
Pour installer les outils de diagnostic SDDC et commencer à collecter des données, procédez comme suit :
Lancez Windows Admin Center et sélectionnez Outils > Diagnostics. Si les outils de diagnostic ne sont pas déjà installés, cliquez sur le bouton Installer.
Pour commencer à collecter des données de diagnostic, cliquez sur Collecter. Vous devez voir un message indiquant « Collecte des informations de diagnostic en cours. L’opération peut prendre quelques minutes. » Après la collecte de données initiale, pour collecter automatiquement les données toutes les 24 heures, définissez le curseur sur Activé.
La collecte de données n’est pas terminée tant que la capture d’écran ci-dessous ne s’affiche pas. Pour afficher les informations de diagnostic collectées, choisissez Télécharger (.zip) ou Ouvrir dans l’outil Fichiers.
Installation de Get-SDDCDiagnosticInfo avec PowerShell
Vous pouvez utiliser la cmdlet PowerShell Get-SDDCDiagnosticInfo
(aussi appelée Get-PCStorageDiagnosticInfo
, anciennement Test-StorageHealth
) pour rassembler des journaux et effectuer des contrôles d’intégrité pour le clustering de basculement (cluster, ressources, réseaux, nœuds), les espaces de stockage (disques physiques, boîtiers, disques virtuels), les volumes partagés de cluster, les partages de fichiers SMB et la déduplication.
Il existe deux méthodes pour installer le script : PowerShell Gallery et GitHub. Elles sont toutes deux présentées ci-dessous.
PowerShell Gallery
La PowerShell Gallery est une capture instantanée du Référentiel GitHub. Notez que l’installation d’éléments à partir de PowerShell Gallery nécessite la dernière version du module PowerShellGet, qui est disponible sur Windows 10, Windows Management Framework (WMF) 5.0 ou dans le programme d’installation basé sur MSI (pour PowerShell 3 et 4).
Nous installons également la dernière version des Outils de diagnostic de mise en réseau Microsoft au cours de ce processus, car Get-SDDCDiagnosticInfo
s’appuie dessus. Ce module de manifeste contient un outil de diagnostic et de résolution de problèmes réseau, qui est géré par Microsoft Core Networking Product Group chez Microsoft.
Vous pouvez installer le module en exécutant la commande suivante dans PowerShell en tant qu’administrateur :
Install-PackageProvider NuGet -Force
Install-Module PrivateCloud.DiagnosticInfo -Force
Import-Module PrivateCloud.DiagnosticInfo -Force
Install-Module -Name MSFT.Network.Diag
Pour mettre à jour le module, exécutez la commande suivante dans PowerShell :
Update-Module PrivateCloud.DiagnosticInfo
GitHub
Le Référentiel GitHub est la version la plus à jour du module, car nous itérons continuellement ici. Pour installer le module à partir de GitHub, téléchargez le dernier module à partir de l’archive et extrayez le répertoire PrivateCloud.DiagnosticInfo vers le chemin des modules PowerShell correct pointé par $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
Si vous avez besoin d’obtenir ce module sur un cluster hors connexion, téléchargez le fichier zip, déplacez-le vers le nœud de votre serveur cible, puis installez le module.
Collecte des journaux avec PowerShell
Une fois que vous avez activé les canaux d’événements et terminé le processus d’installation, vous pouvez utiliser la cmdlet PowerShell Get-SDDCDiagnosticInfo
dans le module pour obtenir des :
- rapports sur l’intégrité du stockage et détails sur les composants non sains ;
- rapports de la capacité de stockage par pool, volume et volume dédupliqué ;
- journaux des événements de tous les nœuds de cluster et un rapport d’erreurs récapitulatif.
Supposons que votre cluster de stockage porte le nom « CLUS01 ».
Pour exécuter sur un cluster de stockage distant :
Get-SDDCDiagnosticInfo -ClusterName CLUS01
Pour exécuter localement sur un nœud de stockage en cluster :
Get-SDDCDiagnosticInfo
Pour enregistrer les résultats dans un dossier spécifié :
Get-SDDCDiagnosticInfo -WriteToPath D:\Folder
Voici un exemple du résultat sur un cluster réel :
New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
Get-SddcDiagnosticInfo -ClusterName S2D-Cluster -WriteToPath d:\SDDCDiagTemp
Comme vous pouvez le voir, le script effectue également la validation de l’état actuel du cluster :
Toutes les données sont écrites dans le dossier SDDCDiagTemp :
Une fois le script terminé, un fichier zip est créé dans votre répertoire utilisateur :
Générons un rapport dans un fichier texte :
#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
Pour référence, voici un lien vers l’exemple de rapport et l’exemple de fichier zip.
Sortie de Get-SDDCDiagnosticInfo
Voici les fichiers inclus dans la sortie compressée de Get-SDDCDiagnosticInfo
.
Rapport récapitulatif de l’intégrité
Le rapport récapitulatif de l’intégrité est enregistré sous :
- 0_CloudHealthSummary.log
Ce fichier est généré après l’analyse de toutes les données collectées et est destiné à fournir un résumé rapide de votre système. Il contient :
- Informations système
- Vue d’ensemble de l’intégrité du stockage (nombre de nœuds en place, ressources en ligne, volumes partagés de cluster en ligne, composants non sains, etc.)
- Informations sur les composants non sains (ressources de cluster qui sont hors connexion, en échec ou en attente en ligne)
- Informations relatives au microprogramme et au pilote
- Détails sur le pool, le disque physique et le volume
- Performances de stockage (les compteurs de performance sont collectés)
Ce rapport est continuellement mis à jour pour inclure des informations plus utiles. Pour les dernières informations, consultez le Fichier README de GitHub.
Journaux et fichiers XML
Le script exécute différents scripts de collecte des journaux et enregistre la sortie sous forme de fichiers xml. Nous collectons les journaux de cluster et d’intégrité, les informations système (MSInfo32), les journaux des événements non filtrés (clustering de basculement, diagnostics de disque, Hyper-V, espaces de stockage, etc.) et les informations de diagnostic de stockage (journaux des opérations). Pour obtenir les informations les plus récentes sur les informations collectées, consultez le Fichier README de GitHub (ce que nous collectons).
Utilisation de fichiers XML à partir de Get-SDDCDiagnosticInfo
Vous pouvez utiliser les données à partir des fichiers XML fournis dans les données collectées par la cmdlet Get-SDDCDiagnosticInfo
. Ces fichiers contiennent des informations sur les disques virtuels, les disques physiques, les informations de cluster de base et sur d’autres sorties relatives à PowerShell.
Pour afficher les résultats de ces sorties, ouvrez une fenêtre PowerShell et exécutez les étapes suivantes.
ipmo storage
$d = import-clixml <filename>
$d
Étapes suivantes
Fournissez des commentaires sur ce que vous aimeriez voir en déposant une requête ici. En outre, n’hésitez pas à apporter des modifications utiles au script en envoyant une demande de tirage (pull request).