Pourquoi un disque dur connu pour contenir des blocs défectueux (vérifié dans HDTune et HDDScan) gèle-t-il tout mon système?
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 à partir de celui-ci sur un autre disque sain.
J'ai rencontré ce problème avec presque tous les disques durs endommagés et tous les PC Windows.
Je m'attendrais à voir geler uniquement le programme que j'utilise pour copier les fichiers (Explorateur Windows, etc.), mais à la place, mon PC entier est saccadé et je ne peux pas naviguer sur le Web ni regarder des films tout en copiant des fichiers à partir du lecteur endommagé.
La longue histoire
Je vis dans une région 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 me conviennent parfaitement. Mais mes voisins demandent souvent de l’aide pour résoudre leurs problèmes d’ordinateur, et j’aperçois souvent que leurs disques durs sont endommagés, probablement à cause de problèmes d’électricité. Bien sûr, après avoir remplacé le disque endommagé, je suggère à mes voisins d’acheter un UPS.
Je me suis toujours demandé pourquoi mon PC se bloque complètement lors de la récupération de données à partir de disques endommagés. Est-ce un problème 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, à partir de maintenant, j'utiliserai des logiciels dédiés (tels que Unkoppable Copier de Roadkil) au lieu de Windows Explorer, bien que je ne sois pas sûr que cela fonctionne différemment, sans figer tout le PC.
Ce n'est pas une demande d'aide, c'est plutôt à des fins éducatives, alors je sais pourquoi les choses fonctionnent de cette façon.
la source
Réponses:
C'est l'un de ces domaines où SATA est suboptimale. Le problème réside au niveau du protocole d'interconnexion du périphérique de stockage et n'est donc pas lié au logiciel que vous utilisez. L'utilisation d'un autre copieur de fichiers ou d'un autre système d'exploitation n'améliorera pas magiquement les choses, si ce n'est que vous pouvez essayer de définir différentes valeurs de délai afin de 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:
Le point n ° 1 est l’un des principaux arguments de vente de SAS sur les serveurs; SAS gère nettement mieux les erreurs que SATA. Le point n ° 2 est une limitation du microprogramme de lecteur, et le point n ° 3 devient vraiment un problème uniquement à cause du point n ° 2.
Donc, ce qui se passe, c'est que le système d'exploitation envoie une commande "lire les secteurs" au disque et que les secteurs particuliers sont endommagés. Ainsi, le disque passe en mode de nouvelle tentative pour essayer d'extraire les données des plateaux, en essayant la lecture encore et encore jusqu'à ce qu'il obtienne des données suffisantes pour que la correction d'erreur du disque ( FEC ) puisse corriger les erreurs restantes. Si vous êtes malchanceux, cela ne sera peut-être jamais, mais le lecteur continuera à essayer pendant une assez longue période 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 et, en fonction de l'architecture exacte du système d'exploitation, le système d'exploitation peut devenir saccadé ou même se bloquer pendant toute la durée. Le disque, à ce stade, est occupé avec la lecture d'origine et ne répondra à aucune commande de lecture avant la fin de l'exécution de celle qui est en cours d'exécution (avec succès ou non) et 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é) doit attendre en ligne jusqu'à ce que le lecteur endommagé lise avec succès le secteur en question ou détermine qu'il ne peut pas être lu. En raison du traitement SATA peu optimal des lecteurs non réactifs, cela peut signifier que non seulement le lecteur que vous copiez va avoir son E / S retardée. Cela peut très facilement entraîner un ralentissement ou une absence de réponse des 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 capable de le gérer.
Il est également important de noter ici que les E / S de disque peuvent se produire même si vous n’accédez explicitement à aucun fichier sur le disque. Les deux causes principales sont le code exécutable à la demande et le swap. Étant donné que l’échange est parfois utilisé même lorsque le système n’exige pas de mémoire, et que le code exécutable à chargement à la demande est courant sur les systèmes modernes et que les formats de fichiers exécutables sont modernes, la lecture involontaire de disques lors d’une utilisation normale est une possibilité très réelle.
Comme indiqué dans un commentaire à la question de Matteo Italia , une 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 résumant via le protocole de stockage de masse USB , cela isole la partie SATA problématique du reste de votre système, ce qui signifie qu'en théorie , seules les E / S de ce disque spécifique devraient être affectées par des problèmes d'E / S sur ce disque.
Soit dit en passant, c'est pourquoi le SATA (en particulier, SATA sans ERC au niveau du disque) est souvent découragé pour le RAID (en particulier les niveaux RAID avec redondance, qui, parmi les standards, sont tous sauf le RAID 0 ); les longs délais d'attente et la mauvaise gestion des erreurs peuvent facilement entraîner le rejet d'un périphérique entier de la matrice pour un seul secteur défectueux, ce que le contrôleur RAID pourrait gérer parfaitement en cas de redondance et si le contrôleur de stockage sait que c'est là le problème. SAS a été conçu pour les grandes baies de stockage, et donc avec l'espoir qu'il y aura des problèmes sur différents lecteurs de temps en temps, ce qui a conduit à étant conçu pour traiter le cas d'un seul disque problématique ou demande d' E / S gracieusementmê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 ceux-ci ont généralement peu de disques installés et que ceux installés ne sont jamais redondants. SATA ayant pour objectif de remplacer PATA / IDE et non SCSI (ce dernier étant la niche visée par SAS), il est probable que ses fonctions de traitement des erreurs et ses exigences (ou garanties) ont été considérées comme adéquates au cas d'utilisation envisagé.
la source
Comme indiqué ci-dessus, le problème lié au blocage du système dû à un disque dur est principalement dû aux longues tentatives du disque pour récupérer des données illisibles à partir de secteurs défectueux. L'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, à l'avenir, est de maintenir des sauvegardes appropriées pour que la récupération ne soit pas nécessaire. Changer de logiciel de récupération ne changera rien car il s'agit d'un problème de délai d'expiration du microprogramme.
la source
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.
Pensez à ZFS, conçu dès le départ pour gérer une certaine tolérance aux pannes. Voici une vidéo de démonstration (et une explication plus détaillée ) où ils placent des roues sur une enclume, prennent une balançoire avec un marteau et une autre. Tout en ZFS continue à fonctionner.
la source
Je pense que le problème que vous rencontrez est une partie de bas niveau du système d'exploitation qui essaie à plusieurs reprises de lire des blocs défectueux avant d'abandonner. Cette routine est mise en œuvre à un niveau bas 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 rendre ré-entrante. Le système d’exploitation recherchera continuellement pendant le fonctionnement normal et il est difficile d’accorder la priorité aux demandes concurrentes car le système de bas niveau ne connaît pas la priorité du processus qui détient une demande de pagination.
la source