Utilisation de «badblocks» sur des disques modernes


21

Je souhaite utiliser des badblocks pour vérifier mes disques durs et apprécierais une clarification de son fonctionnement.

Quelqu'un peut-il expliquer les meilleures options à utiliser avec -bet -c? J'ai inclus leurs définitions à partir de la page de manuel, mais je ne sais pas si des tailles plus grandes seraient bénéfiques pour les disques modernes avec 64 Mo de RAM et 4k secteurs.

-b block-size       Specify the size of blocks in bytes. The default is 1024. 
-c number of blocks the number of blocks which are tested at a time. The default is 64

Deuxièmement, je voudrais savoir si le test en mode écriture est plus approfondi que le mode lecture-écriture non destructif?

Enfin, combien de réallocations de secteur SMART sont acceptables / les lecteurs avec un nombre de réallocations non nul doivent-ils être immédiatement remplacés?


3
pour la 2ème partie: dès que vous commencez à voir des badblocks, cela signifie que quelque chose s'est mal passé. C'est probablement un bon signe que vous devez remplacer le disque avant de ne pas pouvoir le lire du tout. Mais dans tous les cas, avant même l'échec, vous devriez toujours avoir 2 sauvegardes de données importantes (1 locale, 1 distante) en plus de la copie de travail. voir les détails sur ma réponse là-bas: superuser.com/a/528181/174998
Olivier Dulac

4
pour la taille de bloc: il doit refléter la taille de bloc réelle que votre système d'exploitation utilisait pour stocker les données sur ce disque dur (selon le système de fichiers utilisé). Ce n'est pas pour accélérer les choses, c'est pour qu'il marque un bloc "mauvais", ce bloc est en effet 1 bloc, et non 1/2 ou 1 / 4ème ou même 2 (ou plus) blocs.
Olivier Dulac

Réponses:


21

Question 1:

En ce qui concerne l' -boption: cela dépend de votre disque. Les grands disques modernes ont des blocs de 4 Ko, auquel cas vous devez les définir -b 4096. Vous pouvez obtenir la taille de bloc à partir du système d'exploitation , et il est également généralement possible de l'obtenir soit en lisant les informations du disque sur l'étiquette, soit en recherchant le numéro de modèle du disque sur Google. Si -best défini sur quelque chose de plus grand que la taille de votre bloc, l'intégrité des badblocksrésultats peut être compromise (c'est-à-dire que vous pouvez obtenir des faux négatifs: aucun bloc défectueux n'a été trouvé alors qu'il peut encore exister). Si -best réglé sur quelque chose de plus petit que la taille de bloc de votre lecteur, la vitesse de l' badblocksexécution peut être compromise. Je ne suis pas sûr, mais il peut y avoir d'autres problèmes de configuration-bà quelque chose de plus petit que la taille de votre bloc, car il ne vérifie pas l'intégrité d'un bloc entier, il peut toujours être possible d'obtenir des faux négatifs s'il est défini trop petit.

L' -coption correspond au nombre de blocs à vérifier en même temps. Lecture / écriture par lots, en gros. Cette option n'affecte pas l'intégrité de vos résultats, mais elle affecte la vitesse à laquelle badblockss'exécute. badblocksva (facultativement) écrire, puis lire, mettre en mémoire tampon, vérifier, répéter pour tous les N blocs comme spécifié par -c. Si la valeur -cest trop faible, cela rendra vos badblocksexécutions beaucoup plus longues que l'ordinaire, car la mise en file d'attente et le traitement d'une demande d'E / S séparée entraînent une surcharge, et le disque peut également imposer une surcharge supplémentaire par demande. Si la valeur -cest trop élevée, la badblocksmémoire peut manquer. Si cela se produit, badblockséchouera assez rapidement après son démarrage. Les considérations supplémentaires ici incluent les badblocksexécutions parallèles : si vous exécutezbadblockscontre plusieurs partitions sur le même disque (mauvaise idée), ou contre plusieurs disques sur le même canal IO, vous voudrez probablement régler -cquelque chose de sensiblement élevé compte tenu de la mémoire disponible pour badblocksque les exécutions parallèles ne se battent pas pour la bande passante IO et peut paralléliser d'une manière saine.

Question 2:

Contrairement à ce que d'autres réponses indiquent, le -wtest du mode d'écriture n'est pas plus ou moins fiable que le test de lecture-écriture non destructif, mais il est deux fois plus rapide, au prix d'être destructeur pour toutes vos données. Je vais vous expliquer pourquoi:

En mode non destructif, badblockseffectue les opérations suivantes:

  1. Lisez les données existantes, totalisez-les (relisez si nécessaire) et stockez-les en mémoire.
  2. Écrivez un motif prédéterminé (remplaçable avec l' -poption, mais généralement pas nécessaire) dans le bloc.
  3. Relisez le bloc, en vérifiant que les données lues sont identiques au modèle.
  4. Réécrivez les données d'origine sur le disque.
    • Je ne suis pas sûr de cela, mais il relit probablement et vérifie également que les données d'origine ont été écrites avec succès et toujours des sommes de contrôle pour la même chose.

En -wmode destructif ( ), badblocksne fait que les étapes 2 et 3 ci-dessus. Cela signifie que le nombre d'opérations de lecture / écriture nécessaires pour vérifier l'intégrité des données est réduit de moitié. Si un bloc est mauvais, les données seront erronées dans l'un ou l'autre mode. Bien sûr, si vous vous souciez des données stockées sur votre lecteur, vous devez utiliser le mode non destructif, car -wcela effacera toutes les données et laissera badblocksà la place les modèles écrits sur le disque.

Mise en garde: si un bloc va mal, mais n'est pas encore complètement parti, certaines paires de vérification en lecture / écriture peuvent fonctionner, et d'autres non. Dans ce cas, le mode non destructif peut vous donner une indication plus fiable de la "fragilité" d'un bloc, car il effectue deux ensembles de vérification en lecture / écriture (peut-être - voir la puce à l'étape 4). Même si le mode non destructif est plus fiable de cette manière, il n'est plus fiable que par coïncidence . La bonne façon de vérifier les blocs qui ne sont pas entièrement mauvais mais ne peuvent pas supporter plusieurs opérations de lecture / écriture est de s'exécuter badblocksplusieurs fois sur les mêmes données, en utilisant l' -poption.

Question 3:

Si SMART réaffecte des secteurs, vous devriez probablement envisager de remplacer le lecteur dès que possible. Les disques qui perdent quelques secteurs ne les perdent pas toujours , mais la cause est généralement un disque très utilisé qui devient magnétiquement pâteux, ou des têtes / moteurs défaillants entraînant des lectures / écritures inexactes ou échouées. La décision finale dépend de vous, bien sûr: en fonction de la valeur des données sur le disque et de la fiabilité dont vous avez besoin des systèmes que vous utilisez, vous pouvez décider de le maintenir. J'ai des disques avec des blocs défectueux connus qui tournent avec des avertissements SMART depuis des années dans mon serveur de fichiers, mais ils sont sauvegardés selon un calendrier tel que je puisse gérer une panne totale sans trop de peine.


4
Une idée pourquoi par -bdéfaut 1024? Cela me semble un peu bizarre. Pourquoi ne pas 512?
Ryan J du

6
@RyanJ 1024 est la taille de bloc minimale pour ext2. badblocks fait partie de e2fsprogs et était à l'origine destiné à remplir la liste des blocs défectueux d'un système de fichiers ext2. Vous devez l'exécuter avec la même taille de bloc que le FS pour obtenir les nombres au bon format pour mkfs.ext2. TL; DR: raisons historiques qui ne devraient pas vous préoccuper.
sourcejedi

BUUUTT, @Zac B a déclaré: "Si -b est défini sur quelque chose de plus grand que la taille de votre bloc, l'intégrité des résultats des mauvais blocs peut être compromise" 1024> 512. Je peux comprendre comment 513 pourrait entraîner la non-vérification de certains bytests. Mais peut-être devrait-il être reformulé "Si -b est réglé sur quelque chose de plus grand que la taille de votre bloc ET PAS ENCORE MULTIPLE, l'intégrité des résultats des mauvais blocs peut être compromise". Que dites-vous de l'affiche originale, d'autres gens plus intelligents que moi?
Billy C.

4

1) Si votre disque moderne utilise une taille de secteur autre que 512b - alors vous devez définir cette taille avec l' -boption (ie -b 4096). Sans cette option, votre vérification se déroulera beaucoup plus lentement car chaque secteur réel sera essayé plusieurs fois (8 fois dans le cas du secteur 4k). Aussi, comme mentionné Olivier Dulac dans le commentaire de la question -block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.

L'option -cimplique le nombre de secteurs essayés à la fois. Cela pourrait avoir une certaine implication sur les performances et la valeur de ces performances pourrait dépendre du modèle de disque spécifique.

2) write-mode test- À ma connaissance, il ne vérifiera que si vous avez une erreur matérielle ou une erreur logicielle (aka Silent Data Degradation, bit rot, decay of storage media, UNC sector)

3) Je ne ferais pas confiance au rapport SMART à un moment donné. Il est plus important de savoir comment les valeurs changent au fil du temps. Voici également une recherche de Google Failure Trends sur une grande population de lecteurs de disque et en voici une discussion . Voici une citation de la recherche:

Malgré cette forte corrélation, nous concluons que les modèles basés uniquement sur des paramètres SMART sont peu susceptibles d'être utiles pour prédire les défaillances de disques individuels.

Concernant les mentions par d'autres pour le remplacement de disque - vous pouvez ne pas avoir de problème de disque dur mais de dégradation des données silencieuses (pourriture des bits, dégradation des supports de stockage, secteurs UNC). Dans ce cas, il n'a aucun sens de remplacer le disque, mais il est plutôt utile d'effectuer la lecture / écriture des mêmes données sur le disque. Vous pouvez voir ici comment cela pourrait être résolu.

Si vous avez une erreur matérielle, vous pouvez essayer de repartitionner le lecteur de manière à ce que la zone défectueuse soit située hors des partitions. Pour moi, cette approche était utile et un tel mauvais disque a été utilisé pendant longtemps sans aucun problème.


La première phrase est incorrecte, par -bdéfaut à 1024. Si votre disque utilise une taille de secteur autre que 1024, ce qui est assez courant en dehors des systèmes de fichiers ext2, vous devez le spécifier.
Hashim

1

Je laisserais -b et -c par défaut, sauf si vous avez une raison spécifique de les modifier. Vous pourriez probablement définir -b sur 4096 si votre disque a des tailles de bloc de 4k.

Je suggère que vous exécutiez d'abord des badblocks avec un test rw non destructif. S'il trouve des secteurs défectueux, le disque est cassé et doit être remplacé. S'il ne trouve PAS de blocs défectueux sur les éléments non destructifs, mais que vous suspectez qu'il contient des blocs défectueux, exécutez le test rw destructif.

Enfin, combien de réallocations de secteur SMART sont acceptables / les lecteurs avec un nombre de réallocations non nul doivent-ils être immédiatement remplacés?

Je remplacerais le lecteur dès que les secteurs sont remplacés.


2
Je remplacerais le lecteur dès que les secteurs sont remplacés. comment savez-vous que les blocs vont mal en fonctionnement normal? Recevez-vous un signal d'une manière ou d'une autre?
Alexis Wilke

5
Vous devez surveiller les journaux SMART.
Ярослав Рахматуллин

1
sauf si vous avez une raison précise de les modifier . Comme avoir une taille de bloc différente de la 1024 par défaut, ce qui est très courant?
Carcamano

1

Ce genre de différence entre le mode de lecture des blocs défectueux (non destructif) et le mode d'écriture (destructif):

Un lecteur ne réalloue un secteur défectueux qu'en cas d'échec d'écriture. Les erreurs de lecture des fichiers ne sont "corrigées" que lors d'une tentative de réécriture du fichier. Autrement. le mauvais bloc fait toujours partie du fichier en supposant que vous pourriez récupérer quelque chose. Les erreurs de lecture des tables de partition ne peuvent être "corrigées" qu'en exécutant des blocs défectueux en mode écriture et en recréant la partition

Ainsi, le mode lecture vous dira où sont les mauvais blocs mais ne peut rien y faire. Le mode d'écriture teste la santé de chaque secteur et entraînera la réallocation du disque sur un bloc défectueux mais au détriment de la destruction des données. Faites votre choix.


0

Pour répondre à votre deuxième question sur les secteurs remappés, cela dépend. Je parle du contexte d'un utilisateur à domicile qui (occasionnellement) surveille ce genre de choses.

  • Quelle est l'importance des données stockées sur le disque?
  • Qu'est-ce qui est perdu si le lecteur monte soudainement le ventre?
  • Les données sont-elles sauvegardées ailleurs?
  • Le disque est-il membre d'un RAID où la perte du disque a un impact minimal?
  • Le nombre de secteurs remappés augmente-t-il?

Voici deux situations que j'ai rencontrées. J'avais un RAID5 de 6 disques de 200 Go. Après une panne de courant qui a provoqué des lumières vacillantes, un lecteur a montré 14 secteurs remappés et a enregistré plusieurs erreurs. J'ai regardé le lecteur et aucune autre erreur n'a été enregistrée et le nombre de secteurs remappés est resté stable. J'ai conclu que le variateur avait souffert d'un transitoire de puissance et n'était pas défaillant autrement. J'ai continué à l'utiliser pendant des années. Le RAID5 d'origine a été retiré, mais j'ai deux de ces disques en service avec environ 10 ans d'alimentation en heures. Ils ont une poignée de secteurs remappés. J'utilise deux d'entre eux en miroir pour stocker les sauvegardes incrémentielles de sauvegarde de ma sauvegarde principale. De cette façon, la sauvegarde principale voit (principalement) des opérations de lecture et les écritures vont sur différents appareils. Si l'un de ces anciens disques tombe en panne, l'autre devrait continuer. Si les deux échouent, Je les remplace par autre chose et réexécute le script de sauvegarde. L'impact si l'un de ces disques tombe en panne est proche de zéro, donc je ne m'inquiète pas des secteurs remappés.

J'avais un disque dur de 2 To qui faisait partie d'une paire de lecteurs en miroir et qui a commencé à développer des secteurs remappés. Au début, c'était des dizaines, puis des centaines, puis des milliers. C'était sur une période de plusieurs années. L'autre disque de la paire est resté en bonne santé et, en fait, le dérivé lentement défaillant n'a pas été supprimé de la baie. Finalement, j'ai remplacé les deux disques par des disques de 6 To et le nombre croissant de secteurs remappés est devenu un problème. J'ai toujours le lecteur et il "fonctionne" toujours, même avec environ 4500 secteurs remappés. J'ai mis des disques comme celui-ci dans un système de test (en tant que membre RAID) pour voir ce qui se passe quand on meurt réellement. J'ai eu quelques occasions de travailler avec cela et en toutes circonstances, le remplacement s'est déroulé sans drame.

J'ai eu une panne de disque sur mon serveur de fichiers de sauvegarde principal. Il n'a produit aucun avertissement avancé, il a juste cessé de répondre aux commandes SATA. C'était un membre d'un ZFS RAIDZ2 et je l'ai remplacé sans aucun drame. En fait, sur mon serveur de test, j'ai remplacé les disques défectueux sans redémarrer ou redémarrer le serveur.

Encore un point à noter, j'ai des sauvegardes sur site et hors site de toutes les données importantes. Si un système est perdu, il y a deux copies des données ailleurs.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.