Question Pourquoi les disques durs endommagés gèlent-ils l'ensemble du système?


Pourquoi un disque dur connu pour avoir des blocs défectueux (vérifié dans HDTune et HDDScan) bloque-t-il mon système entier?

Ce n'est pas le lecteur du système d'exploitation; il est connecté à un autre port SATA et j'essaie de copier des fichiers de celui-ci vers un autre lecteur sain.

J'ai rencontré ce problème avec presque tous les disques durs endommagés et tous les PC Windows.

Je m'attendrais à voir le gel uniquement pour le programme que j'utilise pour copier les fichiers (Explorateur Windows, etc.), mais tout mon PC devient saccadé et je ne peux pas naviguer sur le Web ni regarder des films lors de la copie de fichiers à partir du lecteur endommagé.

La longue histoire

Je vis dans une zone rurale où il y a des problèmes d'électricité (baisses de tension, etc.). J'utilise moi-même un onduleur et mes propres disques durs sont parfaitement adaptés. Mais mes voisins demandent souvent de l'aide pour résoudre leurs problèmes informatiques, et je constate souvent que leurs disques durs sont endommagés, probablement à cause de problèmes d'électricité. Bien sûr, après avoir remplacé le lecteur endommagé, je suggère à mes voisins d’acheter un onduleur.

Je me suis toujours demandé pourquoi mon PC se fige complètement lors de la récupération de données à partir de disques endommagés. Est-ce un problème de matériel? Est-ce causé par la façon dont le système d'exploitation lit les données? Est-ce quelque chose de spécifique à Windows, et je ne vais pas en faire l'expérience sur * nix?

Quoi qu'il en soit, j'utiliserai dorénavant des logiciels dédiés (tels que le Unstoppable Copier de Roadkil) au lieu de Windows Explorer, même si je ne suis pas sûr que cela fonctionne différemment, sans geler tout le PC.

Ce n’est pas une demande d’aide, c’est plus à des fins éducatives, alors je sais pourquoi les choses fonctionnent de cette façon.


125
2017-08-09 12:35


origine


L'utilisation d'un boîtier USB externe devrait vous aider, car vous n'attachez plus le disque défectueux au contrôleur SATA de votre système (ajouter une couche supplémentaire de matériel sacrificiel entre votre carte mère et un disque défectueux est toujours une bonne idée). - Matteo Italia
Ce n'est pas spécifique à SATA, les lecteurs IDE ont fait cela aussi. Même si le disque est endommagé, cela ne signifie pas que le contrôleur ne l’est pas, surtout si une panne électrique endommage le disque. - Chris H
La réponse acceptée est géniale et contient ce que j'allais dire et bien plus encore. Fondamentalement, vous paniquez votre contrôleur SATA, qui est un périphérique système très important, qui à son tour panique Windows. Je me demande si l'activation d'AHCI / "hot-swap" dans le BIOS améliorerait la situation. - Arthur Kay


Réponses:


C'est l'un de ces domaines où SATA est sous-optimal. Le problème se situe au niveau du protocole d'interconnexion du périphérique de stockage et n'est donc pas lié au logiciel que vous exécutez. L’utilisation d’un autre copieur de fichiers ou d’un autre système d’exploitation ne rendra pas les choses plus magiques, sauf essayer définir différentes valeurs de délai d'expiration pour réduire l'impact du problème (ce qui peut ou non être possible en fonction du matériel et du micrologiciel, voir ci-dessous).

Il y a quelques points importants ici:

  1. Avec SATA, si le lecteur cesse de répondre, cela peut bloquer tout le système de stockage, pas seulement le lecteur qui a des problèmes. Cela a certainement le potentiel de lier tout le contrôleur, et comme la plupart des systèmes grand public ne disposent que d'un seul contrôleur de disque (celui intégré à la carte mère), cela signifie tout le stockage. C'est encore pire si le disque tombe en panne d'une manière non standard et / ou inattendue, ce qui peut certainement arriver si le disque est marginal. Vous etes peut etre intéressé Comment un seul disque dans une matrice RAID SATA matérielle peut-il arrêter la totalité du tableau? sur erreur de serveur.
  2. La plupart des lecteurs SATA grand public ont longues périodes de temporisation par défaut (de l'ordre de quelques minutes) et de nombreux lecteurs SATA grand public ne sont pas configurables contrôle de récupération d'erreur. Les disques "NAS" sont souvent configurables, et les disques haut de gamme le font presque toujours; Ces disques durs peuvent également avoir des délais d'attente plus courts (7 secondes étant une valeur commune). Les délais d'attente longs sont avantageux si le lecteur contient la seule copie des données, ce qui est malheureusement courant sur les systèmes grand public. ils constituent un inconvénient dans une configuration redondante ou lorsque vous souhaitez simplement retirer autant que possible le disque avant qu’il ne se dégrade davantage.
  3. Un lecteur va continue d'essayer de lire un mauvais secteur jusqu'à ce qu'il atteigne son seuil de temporisation ou jusqu'à ce qu'un avertissement soit signalé par l'hôte. Comme le bus SATA peut être bloqué par l'attente de la fin de la lecture, il est possible que le système d'exploitation ne signale pas une interruption au niveau du stockage et, dans des cas extrêmes, il se peut que les lecteurs ne répondent pas correctement à une réinitialisation du bus SATA. Dans une telle situation.

Le point n ° 1 est l'un des principaux arguments de vente pour SAS sur des serveurs; SAS a significativement meilleure gestion des erreurs que SATA. Le point n ° 2 est une limitation du microprogramme du lecteur et le n ° 3 devient un problème uniquement à cause du n ° 2.

Alors qu'est-ce qui se passe est que le système d'exploitation envoie une commande "read secteurs" au disque, et que les secteurs particuliers sont en quelque sorte endommagés. Ainsi, le disque passe en mode de réessai pour essayer d’obtenir les données des plateaux, en essayant la lecture encore et encore jusqu’à ce qu’il reçoive suffisamment de données pour corriger les erreurs du disque (FEC) est capable de corriger les erreurs restantes. Si vous êtes malchanceux, ce ne sera peut-être jamais le cas, mais le lecteur continuera d'essayer pendant un certain temps avant de décider que cette lecture ne réussira pas.

Étant donné que le système d'exploitation attend la lecture, cela ralentira au minimum le processus de copie à une analyse et, en fonction de l'architecture exacte du système d'exploitation, le système d'exploitation risque de se brouiller ou même de se bloquer. À ce stade, le disque est occupé par la lecture d'origine et ne répondra plus aux commandes de lecture tant que celle qui s'exécute actuellement ne se termine pas (avec succès ou sans succès) et que les autres logiciels ne feront généralement pas mieux que le système d'exploitation. est en cours d'exécution.

Par conséquent, tout ce qui déclenche une lecture ailleurs (idéalement, uniquement sur le lecteur endommagé) devra attendre en ligne jusqu'à ce que le lecteur endommagé soit lit avec succès le secteur en question, ou détermine qu'il ne peut pas être lu. En raison de la gestion de SATA moins que optimale des lecteurs non réactifs, Cela peut signifier que non seulement le disque à partir duquel vous copiez va avoir ses E / S retardées. Cela peut très facilement entraîner un ralentissement ou une absence de réponse d'autres logiciels, car ce logiciel attend la fin d'une demande d'E / S différente, même si le système d'exploitation est en mesure de le faire.

Il est également important de noter que les E / S de disque peuvent se produire même si vous n’accédez à aucun fichier sur le disque de manière explicite. Les deux causes principales seraient le code exécutable de chargement à la demande et le swap. Étant donné que swap est parfois utilisé même lorsque le système n'est pas sous pression mémoire et que le code exécutable de chargement à la demande est commun sur les systèmes modernes et les formats de fichiers exécutables modernes, une activité de lecture de disque involontaire est une possibilité très réelle.

Comme indiqué dans un commentaire à la question par Matteo ItaliaUne stratégie d'atténuation consiste à utiliser une interconnexion de stockage différente, ce qui est une façon compliquée de dire "placez le disque dans un boîtier USB". En analysant à travers le USB de stockage de masse protocole, cela isole la partie SATA problématique du reste de votre système, ce qui signifie que en théorie, seules les E / S sur ce disque spécifique doivent être affectées par des problèmes d’E / S sur ce disque.

En un clin d'œil, c'est à peu près la raison pour laquelle SATA (en particulier, SATA sans ERC au niveau du disque) est souvent déconseillé pour le RAID (en particulier Niveaux RAID avec redondance, qui parmi les standards est tout sauf RAID 0); les longues périodes de temporisation et la mauvaise gestion des erreurs peuvent facilement provoquer la sortie d'un périphérique hors de la baie pour un seul secteur défectueux, que le contrôleur RAID pourrait gérer correctement si une redondance existe et que le contrôleur de stockage SAS a été conçu pour les baies de stockage volumineuses et, par conséquent, on peut s'attendre à ce que des problèmes surviennent occasionnellement sur divers disques, ce qui a conduit à sa conception pour prendre en charge un seul disque problématique ou une demande d'E / S. gracieusement même si le lecteur ne le fait pas. Les disques problématiques ne sont pas très courants dans les systèmes grand public simplement parce que de nombreux disques ne sont pas installés sur ceux-ci et que ceux qui sont installés ne sont pratiquement jamais redondants. SATA ayant pour objectif de remplacer PATA / IDE non SCSI (ce dernier étant le créneau SAS visé), il est probable que ses fonctionnalités et exigences de traitement des erreurs (ou garanties) ont été considérées comme adéquates pour son cas d'utilisation prévu.


162
2017-08-09 13:28



Merci d'avoir posté une réponse sensible qui explique ce qui se passe. C'est le genre de question où je vois généralement des réponses vagues comme "parce que le système attend le lecteur" ou "parce qu'il est conçu de cette manière". - Mehrdad
@kasperd: à peu près. Bien que cela soit en partie la "faute" de Windows, cela peut se produire aussi facilement avec plusieurs contrôleurs. IMO cette réponse est un peu délibérément vague, car les contrôleurs SAS d'entreprise ne sont pas non plus à l'abri du problème. Cela se résume vraiment à certaines demandes d'E / S bloquantes. Certaines opérations de disque dur requièrent que l'opération X soit garantie avant l'opération Y et si X ne se termine jamais, Y ne peut jamais commencer - et tout ce qui se trouve après Y reste à savoir si le lecteur, le contrôleur, le pilote ou le système d'exploitation sont à faute. - qasdfdsaq
@JustAMartin En fait, c'est presque déjà asynchrone - tout périphérique qui prend en charge DMA de nos jours est saturé; le noyau ne planifie que les requêtes et gère les interruptions signalant que la requête est effectuée. Le problème est que parfois vous doit attendre la fin de l'opération - et en même temps, ils peuvent bloquer quelque chose d'important. Comme le note user20574, la mémoire virtuelle en fait partie, mais il y a beaucoup de choses qui nécessitent des garanties. Certaines parties du noyau ne sont pas asynchrones et, bien sûr, certains pilotes / périphériques ne fonctionnent plus. - Luaan
@ MichaelKjörling "Comme le système d’exploitation attend la lecture, cela ralentira au minimum le processus de copie à une analyse, et selon l’architecture exacte du système d’exploitation, le système d’exploitation risque de se brouiller ou même de se figer pendant toute la durée." - Pourquoi le système d'exploitation devient-il saccadé dans le cas d'une lecture sur un lecteur secondaire (non système)? Le problème ne peut pas être entièrement dû au comportement de gestion des erreurs du contrôleur SATA. Je pense que cette réponse pourrait bénéficier d'informations sur la manière dont Windows gère les erreurs dans son sous-système de disque. - Jordan Rieger
@ MichaelKjörling Juste assez. La réponse contient beaucoup de bonnes informations, mais je pense que cela n'explique pas tout à fait le scénario spécifique du PO. Pour y arriver sous un angle différent, pouvez-vous citer une référence pour sauvegarder votre point n ° 1: "Avec SATA, si le lecteur ne répond plus, cela peut bloquer tout le système de stockage, pas seulement celui qui pose problème. Il a certainement le potentiel de bloquer l'ensemble du contrôleur."? Cela semble être une conception terrible. N'est-ce pas le sous-système de disque du système d'exploitation le plus probable? C'est à dire. le contrôleur est asynchrone, mais le pilote du système d'exploitation se bloque parfois inutilement. - Jordan Rieger


Comme indiqué ci-dessus, le problème lié au gel du système dû à un disque dur défectueux est principalement dû aux longues tentatives du lecteur pour récupérer des données illisibles provenant de secteurs défectueux. Un des arguments de vente des lecteurs d'entreprise est le délai de lecture très court pour les secteurs défaillants. L'utilisation d'un lecteur d'entreprise peut atténuer vos problèmes dans une certaine mesure, mais ne les résoudra pas.

La meilleure solution, pour aller de l’avant, est de maintenir des sauvegardes appropriées afin de ne pas avoir à récupérer. La modification du logiciel de récupération ne fera aucune différence, car il s'agit d'un problème de délai d'expiration du microprogramme.


3
2017-08-11 15:03





Pourquoi les disques durs endommagés gèlent-ils l'ensemble du système?

Ils n'ont pas à (en général). Cela dépend vraiment du système de fichiers particulier de la manière dont une panne de disque est traitée.

Considérez ZFS, qui est conçu pour gérer une certaine tolérance aux pannes. Voici un vidéo de démonstration (et un avec plus d'explication) où ils placent des entraînements sur une enclume, faites une balançoire avec un marteau et percez un autre lecteur. Tout pendant que ZFS continue à fonctionner.


2
2017-08-11 17:46



En fait, il y a des pannes de disque avec lesquelles ZFS ne fonctionne pas bien. Par exemple, des lectures extrêmement longues avant que la demande d'E / S expire, dans des configurations redondantes ou non redondantes. (Vous pouvez tout aussi facilement configurer ZFS de manière à ce qu’il n’ait pas de redondance.) Cela peut facilement entraîner la sortie de disques de la baie dans ZFS, ce qui, si vous tombez au-dessous du seuil de redondance, devenir indisponible. Si défini avec failmode = wait, cela peut afficher des résultats similaires. La panne totale du disque est la facile cas pour tout sous-système de stockage; ses marginal lecteurs qui posent des problèmes. - Michael Kjörling
Et avant que vous ne pensiez le contraire, j'exécute ZFS (presque exclusivement) moi-même. C'est un système de fichiers génial et un gestionnaire de volumes formidable, si vous êtes prudent et savez ce que vous faites. Cependant, il est conçu pour les systèmes d'entreprise (stations de travail et serveurs haut de gamme), et les administrateurs sont payés pour savoir ce qu'ils font. Il n'est pas conçu pour prendre en charge certains modes de défaillance constatés sur le matériel, notamment les problèmes de mémoire vive et les lecteurs trop longs pour être renvoyés à partir d'une demande d'E / S. cas d'utilisation de l'utilisateur à domicile. - Michael Kjörling
Sauf dans la vidéo, ZFS ne continue pas à fonctionner. Il recommence à fonctionner après avoir déconnecté le lecteur. - Christoffer Hammarström


Je pense que le problème que vous rencontrez est que la partie inférieure du système d’exploitation tente à plusieurs reprises de lire les mauvais blocs avant d’abandonner. Cette routine est implémentée à un niveau inférieur au cas où elle serait nécessaire lors du démarrage ou d'une autre opération autonome, et il est donc difficile de la rentrer. Le système d'exploitation fonctionnera continuellement pendant le fonctionnement normal et il est difficile de donner la priorité aux demandes concurrentes car le système de bas niveau ne connaîtra pas la priorité du processus propriétaire d'une demande de pagination.


-2
2017-08-10 13:24



Le «système de bas niveau» Est-ce que connaître la priorité d'un processus qui demande une page; ces informations sont conservées dans tableaux de pages, bien que l'implémentation dépende du système sur la manière dont la priorité est gérée. Ce n'est pas la bonne réponse à la question cependant - il s'agit d'un problème matériel, pas d'un problème de système d'exploitation. - Chris Cirefice
Je pense que la bonne réponse à la question est de refuser d'utiliser un lecteur défectueux. Cependant, cela ne satisferait pas les utilisateurs qui veulent naturellement récupérer autant de données que possible. - jrrk