Partager via


Aide à la résolution des problèmes d’altération de données et d’erreurs de disque

Les erreurs d’altération des données et de disque couvrent différentes zones telles que les problèmes liés à l’accès à un lecteur, à l’altération du lecteur et aux performances lentes.

Les ID d’événement suivants indiquent qu’il existe une altération des données ou une erreur de disque :

  • ID d’événement 153

    L’opération d’E/S à l’adresse de bloc logique 123456 pour le disque 2 a été retentée.

  • ID d’événement 129

    La réinitialisation sur l’appareil, \Device\RaidPort1, a été émise.

  • ID d’événement 157

    Le disque 2 a été supprimé.

  • ID d’événement 55

    La structure du système de fichiers sur le disque est endommagée et inutilisable. Exécutez l’utilitaire chkdsk sur le volume.

  • ID d’événement 98

    Volume C : (\Device\HarddiskVolume3) doit être mis hors connexion pour effectuer une tâche Chkdsk complète. Exécutez « CHKDSK /F » localement via la ligne de commande ou exécutez « REPAIR-VOLUME <drive :> » localement ou à distance via PowerShell.

Liste de contrôle pour la résolution des problèmes

Note

Cet article décrit les commandes qui doivent être exécutées à l’aide d’une invite de commandes avec élévation de privilèges.

  • Dans le journal d’événements système, recherchez les avertissements et erreurs liés NFTS (New Technology File System) et au disque. Par exemple, ID d’événement 55, 153 ou 98.

  • Exécutez la commande chkdsk /scan et vérifiez le résultat.

    Note

    La chkdsk /scan commande est en lecture seule.

  • Interrogez un lecteur pour obtenir des informations de volume spécifiques à NTFS en exécutant la commande suivante :

    fsutil fsinfo ntfsinfo <rootpath>:

    Note

    Le chemin> racine de l’espace réservé <représente la lettre de lecteur du lecteur racine.

  • Exécutez la commande fsutil dirty query <volumepath>: pour vérifier si le volume est sale.

    Note

    Le chemin> du volume d’espace réservé <représente la lettre de lecteur.

    • Pour un volume dont le système de fichiers est NTFS, exécutez la commande chkdsk /f /r si le volume est sale. La commande chkdsk /F /R a besoin d’un temps d’arrêt, car le disque n’est pas accessible.

    • Pour un volume dont le système de fichiers est ReFS (Résilient File System), les dommages sur le disque sont réparés automatiquement.

  • Si l’utilitaire « chkdsk » ne corrige pas les erreurs de disque, effectuez une restauration à partir d’une sauvegarde.

  • Effectuez une validation de stockage pour vous assurer de l’absence de toute erreur liée au stockage.

  • Supprimez les disques du cluster et vérifiez le niveau du système d’exploitation.

  • Exécutez la commande chkdsk /f sur tous les volumes pour lesquels l’événement est enregistré.

  • Mettez à jour les pilotes ou le microprogramme de stockage tiers.

Si le problème persiste, essayez les méthodes suivantes :

  • Désinstallez tout logiciel de gestion de disque tiers (par exemple, Diskeeper).

  • Supprimez ou mettez à jour les pilotes de filtre.

  • Contactez le fournisseur du matériel et effectuez des diagnostics matériels pour éviter d’éventuels problèmes matériels.

  • Contactez le fournisseur de stockage pour vérifier la configuration de la gestion multivoie.

  • Mettez à jour le port SCSI ou les pilotes du contrôleur RAID.

  • Passage à différents types de pilotes. Par exemple, les pilotes de contrôleur RAID ou les pilotes monolithiques.

  • Mettez à jour les pilotes HBA (Host Bud Adapter).

  • Mettez à jour les pilotes de gestion multivoie des modules spécifiques à l’appareil (DSM).

  • Mettez à jour le microprogramme HBA.

Résolution des problèmes liés à l’ID d’événement 153

L’ID d’événement 153 indique qu’il existe une erreur au niveau du sous-système de stockage. ID d’événement 153 est similaire au 129, mais la différence est que l’ID d’événement 129 est journalisé lorsque le pilote Storport interrompt une demande sur le disque, alors que l’ID d’événement 153 est journalisé lorsque le pilote Storport Miniport interrompt une requête. Le pilote miniport peut également être appelé pilote d’adaptateur ou pilote HBA, qui est généralement écrit par le fournisseur de matériel.

Si l’ID d’événement 153 ou l’ID d’événement 129 est enregistré, le délai d’expiration des E/S du disque est la cause courante, car le contrôleur de stockage ne peut pas gérer la charge. Dans ce cas, l’opération d’E/S expire et le pilote miniport (d’un fournisseur) renvoie les messages au pilote Storport (le dernier pilote de stockage Microsoft dans la pile). Ensuite, le pilote Storport traduit les informations et enregistre l’événement dans l’Observateur d’événements.

Étant donné que le pilote miniport a suffisamment de connaissances sur l’environnement d’exécution de la requête, certains pilotes miniports timent la requête eux-mêmes au lieu de laisser le pilote Storport gérer le minutage des demandes. Le pilote miniport peut abandonner une demande individuelle et retourner une erreur, tandis que le pilote Storport réinitialise le lecteur après un délai d’expiration. La réinitialisation du lecteur est perturbante pour le sous-système d’E/S et peut ne pas être nécessaire si une seule requête a expiré. Le pilote miniport retourne l’erreur au pilote de classe qui enregistre l’ID d’événement 153 et réessaye la requête.

Voici un exemple d’ID d’événement 153 :

Log Name: System
Source: disk
Event ID: 153
Level: Warning
Description: The IO operation at logical block address 123456 for Disk 2 was retried.

Cet événement indique qu’une requête a échoué et a été retentée par le pilote de classe. Aucun message d’erreur n’a été consigné dans cette situation, car le pilote Storport n’a pas expiré la demande. L’absence de messages a entraîné une confusion lors de la résolution des erreurs de disque, car il n’y avait aucune preuve de l’erreur.

Sous l’onglet Détails du journal des événements, les informations détaillées indiquent l’erreur qui a provoqué la nouvelle tentative et indique si la demande était une demande en lecture ou en écriture. Par exemple :

0000: 0004010F 002C0003 00000000 80040099
0010: 00000000 00000000 00000000 00000000
0020: 00000000 00000000 28090000

in bytes

0000: 0F 01 04 00 03 00 2C 00 ......,.
0008: 00 00 00 00 99 00 04 80 ......
0010: 00 00 00 00 00 00 00 00 ........
0018: 00 00 00 00 00 00 00 00 ........
0020: 00 00 00 00 00 00 00 00 ........
0028: 00 00 09 28             ...*

Dans cet exemple, le décalage 29 d’octet affiche l’état SCSI, le décalage 30 d’octet affiche l’état du bloc de requête SCSI (SRB) qui a provoqué la nouvelle tentative, et le décalage 31 d’octet affiche la commande SCSI en cours de nouvelle tentative. Dans ce cas, l’état SCSI est 00 (SCSISTAT_GOOD), l’état SRB est 09 (SRB_STATUS_TIMEOUT) et la commande SCSI est 28 (SCSIOP_READ).

Voici les commandes SCSI les plus courantes :

SCSIOP_READ - 0x28
SCSIOP_WRITE - 0x2A

Consultez scsi.h pour obtenir la liste des opérations et des états SCSI.

Voici les états SRB les plus courants :

SRB_STATUS_TIMEOUT - 0x09
SRB_STATUS_BUS_RESET - 0x0E
SRB_STATUS_COMMAND_TIMEOUT - 0x0B

Consultez srb.h pour obtenir la liste des états SRB.

Note

  • Les erreurs de délai d’expiration (SRB_STATUS_TIMEOUT ou SRB_STATUS_COMMAND_TIMEOUT) indiquent qu’une requête est expirée dans l’adaptateur. Une demande a été envoyée au lecteur et aucune réponse n’a été effectuée au cours de la période d’expiration.

  • L’erreur de réinitialisation du bus (SRB_STATUS_BUS_RESET) indique que l’appareil a été réinitialisé et que la demande est retentée en raison de la réinitialisation, car toutes les demandes incomplètes sont abandonnées lorsqu’un lecteur reçoit une réinitialisation.

Un administrateur doit vérifier l’intégrité du sous-système de disque. Bien qu’un délai d’expiration occasionnel puisse faire partie du fonctionnement normal d’un système, les demandes de nouvelles tentatives fréquentes indiquent un problème de performances avec le stockage qui doit être résolu.

Plus d’informations

Étant donné que le problème se trouve normalement en dehors du système d’exploitation, vérifiez les causes courantes suivantes :

  • Certains types de limitation sont configurés, tels que les limitations d’E/S. Parfois, le contrôle d’E/S de stockage dans VMware provoque ce problème.

  • Trop de lecteurs avec une charge élevée se trouvent sur le même contrôleur de stockage. Par conséquent, les lecteurs doivent être divisés entre différents contrôleurs.

  • Si les E/S Multipath (MPIO) sont configurées, un seul câble ou une carte réseau endommagée peut provoquer des problèmes avec iSCSI.

Résolution des problèmes liés à l’ID d’événement 129

L’ID d’événement 129 est journalisé avec le nom du pilote de l’adaptateur de stockage (HBA) comme source. Le pilote Storport (Storport.sys) enregistre cet événement lorsqu’il détecte qu’une demande est expirée. Le nom du pilote HBA est utilisé dans l’événement, car il s’agit du pilote miniport associé au pilote Storport.

Voici un exemple d’ID d’événement 129 :

Event Type:       Warning
Event Source:     <HBA_Name>
Event Category:   None
Event ID:         129
Computer:         <Computer_Name>
Description: Reset to device, \Device\RaidPort1, was issued.

Informations sur l’architecture de pile d’E/S Windows

L’opération d’E/S Windows utilise une architecture en couches où les pilotes de périphérique se trouvent sur une pile d’appareils. Dans un modèle de base, le haut de la pile correspond au système de fichiers. Le gestionnaire de volumes suivant est suivi du pilote de disque. Les pilotes port et miniport sont en bas de la pile d’appareils. Lorsqu’une requête d’E/S atteint le système de fichiers, elle prend le numéro de bloc du fichier et le convertit en offset dans le volume. Ensuite, le gestionnaire de volumes traduit le décalage de volume en un numéro de bloc sur le disque et transmet la requête au pilote de disque. Lorsque la requête atteint le pilote de disque, elle crée un bloc de descripteur de commande (CDB) et l’envoie au périphérique SCSI. Le pilote de disque incorpore la base de données CDB dans la structure SCSI_REQUEST_BLOCK (SRB). Ce SRB est envoyé au pilote de port dans le cadre du paquet de requête d’E/S (IRP).

La majeure partie du traitement de la requête est effectuée par le pilote de port. Les pilotes de port diffèrent selon l’architecture. Par exemple, le pilote de port ATA (Ataport.sys) et le pilote de port SCSI (Storport.sys). Voici quelques responsabilités d’un pilote de port :

  • Fourniture de services de minutage pour les demandes

  • Application de la profondeur de file d’attente pour vous assurer qu’un appareil n’a pas plus de demandes qu’il ne peut gérer

  • Génération de tableaux « nuages de points » et de « collecte » pour les mémoires tampons de données

Les interfaces du pilote de port avec le pilote miniport, et le pilote miniport est conçu par le fournisseur de matériel pour travailler avec un adaptateur spécifique. Il est responsable de la prise de demandes du pilote de port et de leur envoi au numéro d’unité logique cible (LUN). Le pilote de port appelle la HwStorStartIo() fonction pour envoyer des requêtes au pilote miniport, et le pilote miniport envoie les demandes au pilote HBA afin qu’ils puissent être envoyés sur le support physique (Fibre ou Ethernet) au numéro d’unité logique. Une fois la requête terminée, le pilote miniport appelle la StorPortNotification() fonction avec le NotificationType paramètre avec une valeur définie RequestCompletesur , ainsi qu’un pointeur vers la SRB terminée.

Lorsqu’une demande est envoyée au pilote miniport, le pilote Storport place la requête dans une file d’attente en attente et est chronométrée. Une fois la demande terminée, elle est supprimée de cette file d’attente.

Le mécanisme de minutage est simple. Il y a un minuteur par unité logique, et il est initialisé sur -1. Lorsque la première requête est envoyée au pilote miniport, le minuteur est défini sur la valeur de délai d’expiration dans la SRB. La valeur du délai d’expiration du disque est un paramètre paramétrable situé sous la clé de Registre suivante :

HKLM\System\CurrentControlSet\Services\Disk\TimeOutValue

Certains fournisseurs de matériel régleront cette valeur pour qu’ils correspondent le mieux à leur matériel. Ne modifiez pas cette valeur sans aide de votre fournisseur de stockage.

Le minuteur est décrémenté une fois par seconde. Lorsqu’une demande est terminée, le minuteur est actualisé avec la valeur de délai d’expiration de la demande de tête dans la file d’attente en attente. Par conséquent, le minuteur ne passera jamais à zéro tant que les requêtes sont terminées. Si le minuteur passe à zéro, cela signifie que l’appareil a cessé de répondre. Par exemple, lorsque le pilote Storport enregistre l’ID d’événement 129, le pilote Storport doit prendre des mesures correctives en essayant de réinitialiser l’unité. Lorsque l’unité est réinitialisée, toutes les demandes incomplètes sont terminées avec une erreur et elles sont retentées. Lorsque la file d’attente en attente est effacée, le minuteur est défini -1sur , qui est la valeur initiale.

Une valeur de minuteur est définie pour chaque SRB. Lorsque les requêtes sont terminées, le minuteur de file d’attente est actualisé avec la valeur de délai d’expiration du SRB en tête de la liste.

Les causes les plus courantes de l’ID d’événement 129 ne répondent pas aux numéros d’unité logique ou à une demande supprimée. Les requêtes supprimées peuvent être causées par des routeurs défectueux ou d’autres problèmes matériels sur le réseau de zone de stockage (SAN).

Résolution des problèmes liés à l’ID d’événement 157

Cet événement indique que le pilote Classpnp.sys a reçu une demande de suppression surprise du gestionnaire de plug-and-play (PNP) pour un disque non amovible.

Ce problème se produit le plus souvent lorsque quelque chose interrompt la communication du système avec un disque, par exemple une erreur d’infrastructure SAN ou un problème de bus SCSI. Les erreurs peuvent également être provoquées par un disque qui échoue ou lorsqu’un utilisateur déconnecte un disque pendant l’exécution du système. Dans ce cas, un administrateur doit vérifier la chaleur du sous-système de disque.

Résolution des problèmes liés à l’ID d’événement 55 et 98

Si des événements NTFS tels que l’ID d’événement 55, 50, 140 et 98 sont enregistrés, vous devez exécuter l’utilitaire « chkdsk ».

Étant donné que NTFS n’a pas pu écrire de données dans le journal des transactions, cela peut affecter la capacité de NTFS à arrêter ou à restaurer les opérations au cours desquelles les données de transaction n’ont pas pu être écrites.

Voici un exemple d’ID d’événement 55 :

Event Type: Error
Event Source: NTFS
Event ID: 55
Description: The file system structure on the disk is corrupt and unusable. Please run the chkdsk utility on the volume.

En règle générale, l’ID d’événement 55 est enregistré lorsque l’altération du système de fichiers se produit. L’altération du système de fichiers se produit lorsqu’un ou plusieurs des problèmes suivants se produisent :

  • Un disque a des secteurs incorrects.

  • Les demandes d’E/S transmises par le système de fichiers au sous-système de disque ne sont pas terminées avec succès.

La plupart des problèmes sont liés au matériel et le matériel peut être endommagé de façon inattendue. Vous pouvez essayer les méthodes suivantes pour résoudre les problèmes :

  • Mettez à jour le port SCSI ou les pilotes du contrôleur RAID.

  • Supprimez ou mettez à jour les pilotes de filtre.

  • Mettez à jour les pilotes ou le microprogramme de stockage tiers.

  • Passage à différents types de pilotes. Par exemple, les pilotes de contrôleur RAID ou les pilotes monolithiques.

  • Réorganiser le matériel en différentes combinaisons.

Exclusion de responsabilité de tiers

Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.