Forum Linux.général Petit problème de disque

Posté par  .
Étiquettes : aucune
0
21
déc.
2009
Bonjour,

j'ai un problème sur un serveur.

La partition /home est en raid 1.
Les deux partitions qui composent le raid sont /dev/sda3 et /dev/sdb3.

Le raid est actuellement dégradé et ne peux pas se reconstruire en raison de secteurs défectueux sur /dev/sdb3.

La partition /home ne se monte pas si je retire le disque /dev/sdb3 et je ne peux pas déclarer la partition /dev/sdb3 comme "fail" du fait que le raid est en cours de vérification.

La reconstruction échoue a 28% et répare ensuite à zero.

Il n'est pas trop possible de démonter la partition pour faire un fsck avec une recherche de badblocks.

Je pensais faire une recherche de bad block "a chaud" avec

badblock -o /root/BADBLOCK_sdb3 -v -s /dev/sdb3

puis démonter la partition et marqué les badblocks a partir ce fichier en disant que le temps d'interruption sera plus court.

Est-ce que d'après vous c'est possible ?
La partition etant en raid, faut-il faire le badblock sur /dev/md1 puis marquer les blocks sur /dev/md1 ?

Comment va se comporter le raid si un de disque à des blocks marqué et l'autre non ?

Le but est que le système puisse repartir au plus vite avec un disque. Ensuite je reconstruirai le raid en ajoutant un disque vierge. Les eventuelles fichiers manquants pourront être restauré depuis une sauvegarde.

Je peux vous apporter plus de précision si nécessaire.
Merci pour vos lumières car la je suis tout perdu (et en panique).
  • # Fail ne fonctionne pas ?

    Posté par  . Évalué à 2.

    C'est étrange. La reconstruction n'est pas sensée se faire automatiquement.

    Cette commande devrait fonctionner:
    mdadm --manage /dev/mdx --fail /dev/sdb3
    mais cela retourne une erreur ?

    En retirant le disque problématique, si /home ne se monte pas c'est qu'il y a autre chose. Ou alors des options inhabituelles ont été utilisées (par exemple --no-degraded).

    Sinon il faut utiliser la méthode musclée. Un truc du genre:
    mdadm --zero-superblock /dev/sdb3
    Eventuellement redémarrer pour stopper la reconstruction.
    • [^] # Re: Fail ne fonctionne pas ?

      Posté par  . Évalué à 1.

      pour info :

      mdadm --manage /dev/md1 --fail /dev/sdb3


      mdadm: set /dev/sdb3 faulty in /dev/md1


      mdadm --misc -D /dev/md1


      /dev/md1:
      Version : 00.90.03
      Creation Time : Fri Jun 6 12:41:28 2008
      Raid Level : raid1
      Array Size : 717422656 (684.19 GiB 734.64 GB)
      Used Dev Size : 717422656 (684.19 GiB 734.64 GB)
      Raid Devices : 2
      Total Devices : 2
      Preferred Minor : 1
      Persistence : Superblock is persistent

      Update Time : Mon Dec 21 13:56:33 2009
      State : clean, degraded, recovering
      Active Devices : 1
      Working Devices : 2
      Failed Devices : 0
      Spare Devices : 1

      Rebuild Status : 0% complete

      UUID : 381e34ff:d21b7724:257ae011:7dec2a98
      Events : 0.87680

      Number Major Minor RaidDevice State
      2 8 3 0 spare rebuilding /dev/sda3
      1 8 19 1 active sync /dev/sdb3


      Et lorsque que je reboot sans le disque /dev/sdb, le demarrage echoue sur un super bloc manquant sur /dev/sda3.

      le zero-superbloc sur /dev/sdb3 ne va pas peter à la tete ?

      je vais retrouver mon raid dans quel etat ?
      • [^] # Re: Fail ne fonctionne pas ?

        Posté par  . Évalué à 1.

        Bonjour,

        Cela fait un moment que je n'ai pas pratiqué (mon raid tourne trop bien?), mais voici mes hypothèses:

        - le déclarer en fail ne retire pas le disque du raid, tu ne peux donc pas le retirer de la machine. Cela sert à lui dire de ne plus reconstruire sur ce disque, et si tu a des spares (des disques déclarés de secours) à en utiliser un à la place.

        - ce que tu veux, c'est le retirer du raid:
        mdadm --manage /dev/mdX --remove
        à partir de ce moment, tu peux le débrancher, remplacer par le nouveau disque, et lorsque celui-ci est partitionné et prêt, l'ajouter dans le raid avec mdadm ... --add.
      • [^] # Re: Fail ne fonctionne pas ?

        Posté par  . Évalué à 2.

        super bloc manquant sur /dev/sda3
        La réponse est dans cette phrase.

        Regardes la page de manuel de mdadm pour créer le superblock. Tu as dû créer ton RAID à l'arrache :-)
        • [^] # Re: Fail ne fonctionne pas ?

          Posté par  . Évalué à 2.

          Je plussoie. Que tu n'arrive pas reconstruire une matrice sur un disque défectueux c'est tant mieux. Que tu n'arrive pas a monter un disque sain juste parce qu'il a pas son copain, c'est bizarre.
  • # Quelques remarques sur le badblock

    Posté par  . Évalué à 2.

    Bonjour,

    Voici quelques remarques par rapport à ta tentative d'utilisation de badblock dans ton cas, et pourquoi ce n'est pas la peine de tenter de creuser plus cette voie:

    - cette commande lis la partition entière à la recherche de secteurs retournant une erreur. ok, mais... cette liste est juste affichée à l'écran (ou renvoyée dans un fichier) mais le disque dur n'est pas "mis au courant", l'OS non plus, le système de fichier non plus

    - là, ça se corse: il n'y a pas de standard pour gérer la liste des secteurs défectueux. donc on ne peut pas enregistrer cette liste dans la partition

    - c'est donc logiquement le système de fichier (e2fs, e3fs, xfs...) qui prend cela en compte (mke2fs: options -c, -l, ou mise à jour à la volée par fsck ou par le pilote?)

    Pourquoi je dis tout cela? Parce que dans le cas de ton raid, cela veut dire:
    - ça ne sert donc à rien de faire le check sur /dev/sdb3, car il n'y a pas de système de fichier dessus capable de le gérer;
    - si tu utilise cette liste sur le fs qui est sur /dev/md1, tu vas en même temps désactiver ces secteurs sur l'autre disque, ce que tu ne veux probablement pas. De plus, il y a fort à parier que les numéro des secteurs de sdb3 ne correspondent pas à md1, donc... pire!
    - si tu utilise badblocks sur /dev/md1, tu n'aura évidemment rien, car le raid vas toujours retourner le secteur sur le disque qu'il à réussi à lire... Au mieux, cela aura permis au md de se rendre compte que tu as un disque défectueux, mais ça, tu le sait déjà :-(

    Voila, j'espère t'avoir éclairé un peu,
    Christophe.
    • [^] # Merci a tous

      Posté par  . Évalué à 2.

      Mille merci a tous.

      Merci pour vos pistes. Grâce à vous j'ai pu trouver une solution.

      Maintenant je vais devoir construire des statues à votre gloire. :)

      mymybib qui à un serveur qui marche et qui va passer une bonne nuit.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.