Upload
microsoft-technet-france
View
776
Download
1
Tags:
Embed Size (px)
DESCRIPTION
La majeure partie du temps, le service cluster subit les défaillances qui interviennent et réagit dans la mesure des moyens qui lui sont donnés. L’objectif de cette session est de comprendre comment utiliser les traces et outils de Windows pour identifier quel composant ou quel facteur a causé un dysfonctionnement au sein d’un cluster et comment mettre en place un plan d’action visant à anticiper d’éventuels futurs problèmes.
Citation preview
palais des
congrès
Paris
7, 8 et 9
février 2012
9 Février 2012Guillaume DucroixSr Support Escalation EngineerMicrosoft
Comment identifier la cause
réelle des problèmes
impactant un cluster de
basculement Windows
Agenda
Composants et fonctionnement du cluster Logging
Outils
MéthodologieQuelques exemples…
Composants et fonctionnement du cluster Logging
Outils
MéthodologieQuelques exemples…
Composants du cluster
Clussvc.exe
Composants du cluster
Quorum
Manager
MessagingHost
manager
Membershi
p Manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Messaging
Communication entre les nœuds
Good Enough Multicast [GEM]
Causal Multicast [CM]
Multicast-Request-Reply [MRR]
Assuré par le Global UpdateManager [GUM]
Canal decommunicationprincipal utilisé pourmettre à jour les étatsdes composants ducluster sur tousles nœuds :
TM, MM, DM etResource ControlManager
Les mises à jourssont sérialiséeset atomiques
Composants du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Object Manager [OM]
Maintien la relation entre les objets du cluster
dans une base de données stockée en
mémoire
Permet de router les
messages
correctement
entre les nœuds
Objets : ressources,
groupes de
ressources,
nœuds, etc…
Composants du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Host manager [HM]
Etabli les connexions réseaux entre les
nœuds, contrôle les processus de Form et de
Join et génère les
notifications
d’échec de nœuds
C’est lui qui gère
l’endpoint
permettant de
contacter le service
cluster (TCP 3343)
Composants du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Membership Manager [MM]
Prend en charge les changements
dynamiques d’appartenance au cluster
(notamment les REGROUP)
Provisionne les
objets maintenus
par
l’Object Manager
Join Policy Manager
[JPM]
Composants du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Topology Manager [TM]
Gère tous les composants réseau :
Network Manager [NM] : les réseaux du
cluster
Interface
Manager [IM] :
les interfaces
réseau
Il fait des appels
au processus de
configuration
réseau [ClNet]
Composants du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Database Manager [DM]
Contrôle la base de données contenant la configuration du cluster (registre)
Gère les mises à jourde la configurationdu cluster
Utilisation deCommon LogFile System(CLFS)
S’assure de mettreà jour le réplicalocal et/ou le réplicadu disque quorum
Composants et fonctionnement
du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Composants du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Quorum Manager [QM]
Détermine si le quorum est “atteint”
Gère les activités liées au quorum
Security Manager [SM]
Prend en charge la signature et l’encryption de toutes les communications au sein du cluster
Gère les contextesde sécurité pourNETFT et les niveauxde communicationsuser-mode
Security Validator [SV]
Valide leSecurityLevel de laconnectivité
Composants du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Composants du cluster
Quorum
Manager
MessagingHost manager
Security
Manager
Core
Database
Manager
Topology
Manager
Object
Manager
Network Fault Tolerant Driver
Membership
Manager
Network Fault Tolerant Driver [NETFT]
Fournit une communication avec tolérance de
panne entre les nœuds du cluster
Composants du cluster
Resource Control Manager [RCM]
Le RCM est externe au cluster
Canal de communication principal utilisé pour
mettre à jour les états des composants du
cluster sur tous les nœuds
Implémente les mécanismes de bascule et les
stratégies du service cluster
Maintien la consistance des dépendances
entre les ressources
Gère l’isolation des ressources par la création
de RHS
Composants du cluster
Cluster Service
Resource Control Manager
Groupe
Ressource 1
Ressource 3
Ressource 2
Resource Monitor (RHS)
Resource DLL
1
Resource DLL
2
Resource Monitor (RHS)
Resource DLL
3
Application 1 Application 2
Application 3
Fonctionnement du cluster
Cluster Windows
Le principe est de rendre hautement disponible une application ou un service en permettant leur "bascule" d'un serveur à un autre en cas de défaillance d'un composant
Ce n'est pas Windows que l'on rend hautement disponible
Le quorum évite le partitionnement et la corruption
Il est déterminé par des votes
Un votant peut être un nœud ou un témoin (uniquement dans le mode Node and Disk Majority)
Chaque votant représente 1 voix
Composants et fonctionnement du cluster Logging
Outils
MéthodologieQuelques exemples…
Logging – Journaux
d’évènementsEvènements cluster
Niveau System Channel Operational Channel
Critical
Error
Warning
Information
System channel Operational channel
Logging – Journaux
d’évènementsDebugging channels
Désactivés par défaut
Peuvent être activés pendant l’analyse d’undysfonctionnement
Visibles lorsque Show Analytic and Debug Logs est coché dans le menu View
Logging – Journaux
d’évènementsIl n’y a plus de fichier « cluster.log » au format texte
C’est, depuis Windows Server 2008, une trace ETW (Event Tracing for Windows) qui enregistre les évènements dans un format structuré
Le logging du cluster est assuré par une Event Trace Session
Microsoft-Windows-FailoverClustering
Les fichiers .ETL sont stockés ici :
%WinDir%\System32\winevt\logs
Pour obtenir ce tracing au format texte, équivalent au cluster.log, il faut exécuter la commande CLUSTER.EXE ou une commande Powershell :
CLUSTER.EXE LOG /G /COPY:"C:\Temp"
Powershell : Get-ClusterLog -Destination "C:\Temp"
Logging – Journaux
d’évènementsParamétrage :
La taille maximale par défaut d’une trace est
de 100MB
Le niveau de détail par défaut est de 3
Niveaux de détail
Level Error Warning Info Verbose Debug
0 (désactivé)
1
2
3
4
5
Logging – Journaux
d’évènementsLe tracing ETW utilise 3 fichiers ETL
Un fichier ETL est utilisé pour la durée d’uptime d’un nœud
Un nouveau fichier ETL est utilisé à chaque démarrage d’un nœud
ETW utilise le prochain fichier ETL parmi les 3
Chaque fichier ETL a une taille maximum (cluster log size) et est circulaire
S’assurer que les traces puissent capturer 72 heures d’évènements
Dépend de la volubilité de l’application en cluster
Demande donc une supervision du cluster log à la mise en place du cluster pour affiner sa taille maximum
La génération du cluster.log au format texte concatène le contenu des 3 fichiers ETL
Le résultat peut prêter à confusion
Logging – Cluster log
A la génération du cluster.log, les périodes suivantes seront couvertes :
Du 03/01 au 09/01 (trace #1)
Du 09/01 au 13/01 (trace #2)
Du 18/01 au 25/01 (trace #3)
http://blogs.technet.com/b/windowsinternals/archive/2009/06/10/le-cluster-logging-sous-windows-server-2008.aspx
01/01 09/01 13/0107/01 19/01
Max size
Max size
25/01
Redémarrag
e
Redémarrag
e
Génération
Logging – Cluster log
Anatomie du cluster log
Codes de statut des objets du cluster
http://support.microsoft.com/kb/286052/en-us
00001520.00001d18::2012/01/22-09:40:08.871 ERR [RES] Volume Shadow Copy Service Task<ShadowCopyVolume{9FCC985C-326F-11DF-AF1F-0026554A802A}>: Failed to make the new task persistent. status 0x80090016.
Process ID / Thread ID Date / Heure (GMT) Niveau Composant cluster
Return/Status code de la commande
Logging – Cluster log
Composant Codification
Topology Manager [TM]
Failover Manager [FM]
Global Update Manager [GUM]
Cluster network engine [ClNet]
Join [JOIN] [NMJOIN]
Cluster messaging [ClMsg]
Membership Manager [MM]
CheckPoint Manager [CP]
Cluster Service [CS]
Node Manager [NM]
Database Manager [DM]
Regroup [RGP]
Resource Monitor [RM]
Composants et fonctionnement du cluster Logging
Outils
MéthodologieQuelques exemples…
Outils
Pour collecter les informations nécessaires à l’analyse
MSDT (Microsoft Support Diagnostic Tool)
MPS Reports PFE
http://www.microsoft.com/downloads/en/details.aspx?familyid=00AD0E
AC-720F-4441-9EF6-EA9F657B5C2F&displaylang=en
Pour l’analyse des logs
Observateur d’évènements
FINDSTR
Notepad
Cluster Diagnostics and Verification Tool (ClusDiag)
http://www.microsoft.com/download/en/details.aspx?displaylang=en&i
d=18479
TextAnalysisTool.NET
http://cesso.org/Samples/TextAnalysisTool.NET/TextAnalysisTool.NET.z
ip
Outils
Validate
Disponible depuis la console Failover Cluster
Peut être utilisé comme outil de diagnostic
Composants et fonctionnement du cluster Logging
Outils
MéthodologieQuelques exemples…
Méthodologie – Collecte
d’information
Toujours collecter les informations sur tous les
nœuds du cluster (MPS Reports, …)
Au minimum, générer les cluster logs le plus
tôt possible
Noter l’heure approximative du
dysfonctionnement (ou du début du
dysfonctionnement)
Noter les nœuds et ressources impliqués
Noter les actions manuelles réalisées pour
rétablir la situation (et l’heure approximative
d’exécution)
Méthodologie - Analyse
Le cluster.log est verbeux et complexe, ne pas commencer par ce log
A l’aide des journaux d’évènements système
1. Etablir la chronologie des évènements cluster de tous les nœuds dans la période de temps où le dysfonctionnement est apparu
Cela permet de savoir où le problème est apparu en premier et d’identifier les évènements satellites
2. Identifier les évènements d’autres sources dans la même fenêtre de temps et ceux qui sont antérieurs
Ces premières données permettent de savoir quel est le type de problème (réseau, stockage, ressource, performance, …) et sur quel nœud commencer à chercher
Méthodologie - Analyse
Rester objectif et lucide : ne pas s’attarder sur les
symptômes et se focaliser sur la recherche de la
cause
Si les mêmes évènements reviennent,
s’intéresser à la première occurrence
Les évènements de niveau Information (offline,
online, move, …) sont inscrits dans le channel
opérationnel
Event Viewer/Application and Services
Logs/Microsoft/Windows/FailoverClustering
Méthodologie - Analyse
Si les évènements cluster n’ont pas permis
d’identifier le problème
Dans un premier temps, s’intéresser aux
évènements d’autres sources :
Réseau : redirecteurs, service serveur,
drivers cartes, …
Stockage : disque, drivers HBA, MPIO,
DSM, …
Méthodologie - Analyse
Si le journal d’évènement n’a toujours pas permis d’identifier la cause du dysfonctionnement, alors il est temps de recourir au cluster log
Utiliser la chronologie établie précédemment
Commencer par le cluster log du nœud où le problème est apparu en premier
Se positionner dans la période de temps où le problème est apparu
Remonter le temps en cherchant les mots clés ERR et failed
Remonter ligne par ligne pour être sûr de comprendre l’opération en cours et identifier où le dysfonctionnement commence
Méthodologie - Analyse
Utiliser NET HELPMSG ou ERR.EXE pour traduire les codes deretour :
ERR.EXE
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=985
00001520.00001d18::2012/01/22-09:40:08.871 ERR [RES] Volume Shadow Copy Service Task <ShadowCopyVolume{9FCC985C-326F-11DF-AF1F-0026554A802A}>: Failed to make the new task persistent. status 0x80090016.00001520.00001d18::2012/01/22-09:40:08.871 ERR [RES] Volume Shadow Copy Service Task <ShadowCopyVolume{9FCC985C-326F-11DF-AF1F-0026554A802A}>: OnlineThread: Error 2148073494 bringing resource online.00001520.00001d18::2012/01/22-09:40:08.871 ERR [RHS] Online for resource ShadowCopyVolume{9FCC985C-326F-11DF-AF1F-0026554A802A} failed.
Méthodologie
1f4:e70.10/19[07:01:39.482](000000) ERR [QUORUM] Node 1: Fail to form/join a cluster in 6:15.000
1f4:e70.10/19[07:01:39.482](000000) INFO [CORE] Node quorum state is 'Not yet formed or joined a cluster'. Form/join status with other nodes is as follows:
1f4:e70.10/19[07:01:39.482](000000) INFO [NODE] Node 1: Farthest reported progress joining withnode Noeud2 (id 2) is: Attempt Initial Connection at time 2011/10/19-07:00:52.526: status 10060 Failed to connect to remote endpoint 197.1.1.2:~3343~
1f4:e70.10/19[07:01:39.482](000000) ERR join/form timeout (status = 258)
1f4:e70.10/19[07:01:39.482](000000) DBG join/form timeout: set netft heartbeat interval to 900 seconds
1f4:e70.10/19[07:01:39.482](000000) ERR join/form timeout (status = 258), executing OnStop
1f4:e70.10/19[07:01:39.482](000000) INFO [DM]: Shutting down, so unloading the cluster database.
1f4:e70.10/19[07:01:39.482](000000) INFO [DM] Shutting down, so unloading the cluster database(waitForLock: false).
1f4:e70.10/19[07:01:39.482](000000) DBG [DM] Unloading Hive, Key \Registry\Machine\Cluster, discardCurrentChanges true
1f4:e70.10/19[07:01:39.607](000000) ERR FatalError is Calling Exit Process.
ERR 258 = WAIT_TIMEOUT (The wait operation timed out.)-> Le nœud n’a pas joint le cluster dans le délai maximum imparti : problème de connectivité réseau ou de disponibilité RPC
Méthodologie
778:844.08/22[11:27:20.257](000000) WARN [RCM] ResourceControl(STORAGE_GET_SHARED_VOLUME_INFO) to Disque du cluster 2returned 5004.
a50:ba4.08/22[11:28:38.010](000000) WARN [RES] Physical Disk <Disque du cluster 2>: PR reserve failed, status 170
a50:ba4.08/22[11:28:44.016](000000) ERR [RES] Physical Disk <Disque du cluster 2>: Failed to preempt reservation, status 170
a50:ba4.08/22[11:28:44.031](000000) ERR [RES] Physical Disk <Disque du cluster 2>: OnlineThread: Unable to arbitrate for the disk. Error: 170.
a50:ba4.08/22[11:28:44.031](000000) ERR [RES] Physical Disk <Disque du cluster 2>: OnlineThread: Error 170 bringing resource online.
a50:ba4.08/22[11:28:44.031](000000) ERR [RHS] Online for resource Disque du cluster 2 failed.
ERR 5004 = ERROR_RESOURCE_NOT_ONLINE (The cluster resource is not online.)ERR 170 = ERROR_BUSY (The requested resource is in use.)-> Erreur de Persistent Reservation (vérification à faire du côté matériel)
Composants et fonctionnement du cluster Logging
Outils
MéthodologieQuelques exemples…
Exemples
Dépannage CSV (Cluster Shared Volumes)
Passage en Redirected I/O d’un volume CSV
Un ou plusieurs nœuds ont perdu l’accès au
SAN/LUN
Une sauvegarde compatible CSV est en
cours
Passé manuellement en Redirected I/O
Exemples
Fonctionnement CSV
Node 1
CSV I/O Filter
Driver
Redirector FSD
NetFT
Storage Drivers
CreateFile
Node 2
CSV I/O Filter
Driver
Redirector FSD
NetFT
Storage Drivers
File Server
Service
LUN
LUN Owner
Node 1
CSV I/O Filter
Driver
Redirector FSD
NetFT
Storage Drivers
Node 2
CSV I/O Filter
Driver
Redirector FSD
NetFT
Storage Drivers
File Server
Service
LUN
LUN Owner
Read/WriteFile
Exemples
Dépannage CSV (Cluster Shared Volumes)
Vérifier dans le journal d’évènements Système des problèmes de connectivité réseau ou d’accès à Active Directory
Vérifier que les services Server et Workstation sont démarrés
Vérifier que tous les réseaux du cluster sont configurés pour supporter SMB (KB258750 n’est pas adapté au fonctionnement CSV)
Tester la copie de fichiers depuis le nœud coordinateur et les autres nœuds vers C:\ClusterStorage\VolumeX
Lorsque que l’on dépanne un problème de stockage CSV, cela peut vraiment être un problème réseau
Vérifier la connectivité entre les nœuds (NET USE avec adresse IP) depuis les nœuds non coordinateurs vers le nœud coordinateur
Vérifier que NTLM n’est pas désactivé
Vérifier la capacité de s’authentifier auprès d’un contrôleur de domaine
Exemples
Perte de connectivité entre les nœuds (heartbeat)
La communication intra-nœuds est assurée à
travers le port 3343. Chaque nœud échange
périodiquement des datagrammes UDP
séquencés avec chacun des autres nœuds.
Le but est de déterminer si tous les nœuds
fonctionnent correctement et si les liens réseau
sont viables
Ping, Netstat -ano, …
Exemples
Perte de connectivité entre les nœuds (heartbeat)
Si une latence réseau est identifiée, on peut jouer avec les paramétrages suivants:
Attention : modifier ces paramètres ne corrigera pas un problème réseau existant
Paramètre Défaut Plage
SameSubnetDelay 1000 ms 250 – 2000 ms
CrossSubnetDelay 1000 ms 250 – 4000 ms
SameSubnetThreshold 5 3 – 10
CrossSubnetThreshold 5 3 – 10
Exemples
Terminaison de RHS
Comment le cluster gère les ressources qui ne répondent pas :
1. Le RHS émet un appel vers les ressources (IsAlive, LooksAlive, Online, Offline, Terminate, etc…)
2. Si cette ressource ne répond pas (délai de 3mn par défaut), le système de détection du cluster tente de récupérer la ressource
3. Le processus RHS est redémarré pour permettre à la ressource d’être elle aussi redémarrée
Exemples
Terminaison de RHS, évènements associés
Event 1230
Cluster resource 'Resource Name' (resourcetype '', DLL ‘xxx.dll') either crashed or deadlocked. The Resource Hosting Subsystem(RHS) process will now attempt to terminate, and the resource will be marked to run in a separatemonitor.
Event 1146
The cluster resource host subsystem (RHS) stopped unexpectedly. An attempt will be made to restart it. This is usually due to a problem in a resource DLL. Please determine which resourceDLL is causing the issue and report the problem to the resource vendor.
Exemples
Terminaison de RHS
Le problème est que la ressource n’a pas répondu au cluster dans le temps imparti (timeout period)
Qu’est-ce qu’essayait de faire la ressource ? http://support.microsoft.com/kb/914458
Chercher des problèmes ou évènements sous-jacents liés aux composants gérés par les ressources impliquées :
Physical Disk… éventuel problème avec le stockage
Network Name… éventuel problème avec le réseau, DNS, authentification
Plus de détails:
http://blogs.technet.com/askcore/archive/2009/11/23/resource-hosting-subsystem-rhs-in-windows-server-2008-failover-clusters.aspxhttp://blogs.msdn.com/clustering/archive/2009/06/27/9806160.aspx
Exemples
Problèmes en mode user : Bug check 0x9EUSER_MODE_HEALTH_MONITOR
Le cluster surveille l’état des composants en mode user depuis le kernel afin d’identifier d’éventuels hangspouvant impacter le fonctionnement du cluster
Afin de récupérer cette situation, le cluster, via NetFT, force un crash du serveur (bug check 0x9E)
Ce n’est pas un problème cluster, le cluster rapporte un problème
Analyser le dump généré pour identifier d’éventuelles occurrences de hang (locks, handles, consommation mémoire, …)
http://blogs.technet.com/b/askcore/archive/2009/06/12/why-is-my-2008-failover-clustering-node-blue-screening-with-a-stop-0x0000009e.aspx
Questions ?
Ressources
Blog de l’équipe de support Windows
http://blogs.technet.com/windowsinternals
Blog personnel
http://blogs.technet.com/guillaumed
Blog équipe support Windows US
http://blogs.technet.com/askcore
Blog équipe produit clustering
http://blogs.msdn.com/clustering