Journal Soft Raid et tracas

Posté par  (site web personnel) .
Étiquettes :
0
23
juin
2004
Cher journal,

J'utilise le soft RAID 1 (deux partitions mirorées) depuis près de deux ans. Sans aucun soucis, jusqu'a ce que je migre sur une carte Serial ATA Silicon Image (sil pour les intimes) qui marche en théorie parfaitement sous Linux. J'utilise une Gentoo 2004.1 et un kernel 2.6.7-gentoo (comportement également constaté sur kernel 2.6.5/6 vanilla).

Une fois tous les quelques jours, le raid décide de péter un cable et de me kicker un disque :

ata1: SATA max UDMA/100 cmd 0xE0D18080 ctl 0xE0D1808A bmdma 0xE0D18000 irq 4
ata2: SATA max UDMA/100 cmd 0xE0D180C0 ctl 0xE0D180CA bmdma 0xE0D18008 irq 4
md: linear personality registered as nr 1
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: Autodetecting RAID arrays.
md: autorun ...
md: considering sdb3 ...
md: adding sdb3 ...
md: sdb2 has different UUID to sdb3
md: adding sda3 ...
md: sda2 has different UUID to sdb3
md: created md1
md: bind
md: bind
md: running:
raid1: raid set md1 active with 2 out of 2 mirrors
md: considering sdb2 ...
md: adding sdb2 ...
md: adding sda2 ...
md: created md0
md: bind
md: bind
md: running:
md: kicking non-fresh sda2 from array!
md: unbind
md: export_rdev(sda2)
raid1: raid set md0 active with 1 out of 2 mirrors
md: ... autorun DONE.
EXT3 FS on md0, internal journal
EXT3 FS on md1, internal journal

Je ne comprends pas bien car il devrait pas me poser de soucis, d'ailleurs /dev/md1 marche sans soucis et ne se détache jamais ... A ce moment la, je dois réajouter le disque éjecté : mdadm /dev/md0 --add /dev/sda2

S'en suit alors une reconstruction de 30 minutes :

cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md1 : active raid1 sdb3[1] sda3[0]
19542976 blocks [2/2] [UU]

md0 : active raid1 sda2[2] sdb2[1]
97667072 blocks [2/1] [_U]
[==>..................] recovery = 11.6% (11359232/97667072) finish=31.9min speed=45051K/sec
unused devices:

Les disques durs sont des Maxtor DiamondMax SATA 150 de 160GO l'unité et flambant neufs. Smarctl ne retourne aucune erreur, je suis donc confus.

Si par hasard cela vous dis quelque chose, je prends ...
  • # Deux choses à ne pas faire en Raid IDE

    Posté par  . Évalué à 9.

    Je n'ai pas d'explication à ton problème, mais juste deux remarques, lorsqu'on fait du RAID IDE, il y a deux règles que j'applique systématiquement:

    - Ne JAMAIS mettre de périphérique en esclave. Sur un bus IDE, lorsque le maitre a une défaillance, il a beaucoup de chance de provoquer des erreurs sur l'esclave. En plus de cela, tous les essais que j'ai fais montrent que si le maitre a un problème, l'esclave ne peut pas parler. Il n'est donc pas possible de continuer à utiliser la matrice RAID, même si le disque esclave est intact.

    - Ne jamais acheter deux disques identiques, même modèle, ou même série. Lorsqu'un disque à un problème, c'est généralement toute la série qui a un problème. Lorsqu'on achète deux disques identiques, ils viennent du même carton, et on a toutes les chances d'une anomalie sur l'un des disques soit aussi présente sur l'autre disque. Il vaut mieux ajouter 8 euros au second disque et avoir une autre marque, on gagne beaucoup en sécurité.
    • [^] # Re: Deux choses à ne pas faire en Raid IDE

      Posté par  (site web personnel) . Évalué à 4.

      Salut,

      C'est bien triste ton avis sur ... ah non pardon, c'est pas pour ça :) Merci de ta réponse.

      Ce sont des disques SATA, il n'y a plus de maitre/esclave. Pour les disques identiques, je ne le savais pas, je garde bien le conseil.

      En fait, la LKML a une explication et elle est liée à mon controlleur ...
      http://marc.theaimsgroup.com/?l=linux-kernel&m=108793683025643&(...)

      Steph
      • [^] # Re: Deux choses à ne pas faire en Raid IDE

        Posté par  . Évalué à 3.

        note que la norme sata prévoit de connecter jusqu'à 7 disques dur par prise de controleur (comme un controleur fait 2 prises, ca en fait 14)...

        soit j'avais mangé un truc pas net quand j'ai lu ca (et pas qu'une seule fois), soit les fabricants de puces/cartes meres/controleurs trouvent ca plus économique et rentable de faire des puces qui ne supportent que 2 périfs ;)
        • [^] # Re: Deux choses à ne pas faire en Raid IDE

          Posté par  . Évalué à 3.

          D'aprés le document http://www.serialata.org/about/pdf/Serialata%20-%20a%20comparison%2(...) page 6, les connections sata se fo,t "point à point", donc pour c'est un dd par prise. Aprés le controleur à autant de prise qu'il veut.
          Tu dois connfondre avec le SCSI, qui lui permet 7 devices (en fait 8 - 1 car le "controleur" est un device) ou 15 en ultra-wide (16-1) mais les cables sont trop court pour le permettre.
          Sinon, quand on traine un peux sur http://www.serialata.org/(...) on a l'impression de déjà vu ( http://www.usb.org(...) ). Un nouvelle technologie soit disant révolutionnaire avec plein d'avantage digne d'un PC d'un gamer, mais qui sont surtout sur le papier. A quoi ça sert un débit de 150MB/s pour un seul dd alors qu'aujourd'hui on n'arrive pas à saturer un dd à 66 MB/s.
      • [^] # Re: Deux choses à ne pas faire en Raid IDE

        Posté par  . Évalué à 1.

        Tu as essayé le RAID hardware par le controleur SIL (il permet normalement le RAID 1) ?
    • [^] # Re: Deux choses à ne pas faire en Raid IDE

      Posté par  . Évalué à 1.

      pour le 2eme point, on m'a toujours dit que pour le raid pas jdob (ou chais pas quoi là), il valait mieux des disques de même modèle, pour etre sur d'avoir exactement la même taille des deux coté, et ainsi minimiser le risque de foirage lors de la construction du raid...

      c'est sur que ca n'empeche pas de prendre 2 durs maxtor 160go sata 8mo de semaines ou d'usines différentes ;)
      • [^] # Re: Deux choses à ne pas faire en Raid IDE

        Posté par  (site web personnel) . Évalué à 2.

        Ben techniquement ils sont deja de batch différents, car j'ai eu un DOA (Dead On Arrival) sur un des disques, que j'ai retourne, et les millesimes sont différents.

        Steph
      • [^] # Re: Deux choses à ne pas faire en Raid IDE

        Posté par  . Évalué à 2.

        L'un des avantages du Raid, est de pouvoir changer une pièce en perturbant le moins possible l'accès aux données. Pouvoir changer une pièce (controleur ou disque), suppose qu'il est possible de l'acheter encore pendant plusieurs années.

        Si dans deux ans tu es obligé de changer un disque, tu as bien peu de chances de retrouver le même modèle, ayant exactement la même géométrie. Si à ce moment là, ta matrice Raid ne peut plus être remontée en nominal, tu vas être obligé d'acheter plusieurs disques et de reconstruire une matrice de zéro.

        Les controleurs Raid hardware posent les mêmes problèmes, lorsqu'ils meurts, il faut retrouver le même modèle, généralement avec la même version du firmware, pour pouvoir récupérer ses disques sans repartir de la sauvegarde. C'est pourquoi il faut souvent en acheter deux pour en avoir un d'avance, chose trop souvent découverte justement lorsque la carte claque.
  • # Mauvais patch

    Posté par  (site web personnel) . Évalué à 2.

    En fait, cela semblerait plutot lie a une blacklist. Un des contributeurs de libata m'a en fait suggeré de blacklister mon disque dur dans libata_sil.c afin de voir si j'aurais encore des soucis à l'avenir. Cela divise les performances par deux mais en attendant un workaround, cela pourrait etre bien. On obtient donc ca :


    libata version 1.02 loaded.
    sata_sil version 0.54
    ata1: SATA max UDMA/100 cmd 0xE0D18080 ctl 0xE0D1808A bmdma 0xE0D18000 irq 4
    ata2: SATA max UDMA/100 cmd 0xE0D180C0 ctl 0xE0D180CA bmdma 0xE0D18008 irq 4
    ata1: dev 0 cfg 49:2f00 82:7c6b 83:7f09 84:4003 85:7c69 86:3e01 87:4003 88:207f
    ata1: dev 0 ATA, max UDMA/133, 320173056 sectors: lba48
    ata1(0): applying Seagate errata fix
    ata1: dev 0 configured for UDMA/100
    scsi1 : sata_sil
    ata2: dev 0 cfg 49:2f00 82:7c6b 83:7f09 84:4003 85:7c69 86:3e01 87:4003 88:207f
    ata2: dev 0 ATA, max UDMA/133, 320173056 sectors: lba48
    ata2(0): applying Seagate errata fix
    ata2: dev 0 configured for UDMA/100


    Voila ce que j'ai ajoute :
    { "Maxtor 6Y160M0", SIL_QUIRK_MOD15WRITE },

    Steph
    • [^] # smarmontools & SATA

      Posté par  . Évalué à 3.

      Cela n'a sans doute aucun rapport mais n'aurais-tu pas installer un smartmontools surveillant tes disques SATA par hasard ?

      Si c'est le cas, j'ai rencontré un bug récemment qui a pour symptômes :
      - dérive de l'horloge système
      - charge CPU constante (faible mais constante)
      - nombre important d'interruptions sur l'IRQ du controleur SATA
      + d'autres bugs potentiellement que je n'ai pas identifié.

      Désactiver le monitoring sur ces disques a fait disparaitre le problème (après 3 jours pour découverte+diagnostic). En ce moment, la machine a 14 jours d'uptime et aucun problème sur le RAID logiciel (tout est en RAID: root + données). A suivre...

      Pourrais-tu confirmer/infirmer ce lien éventuel ?
      (dans ce cas, il y a déjà un bug ouvert côté Debian sur le package : #254953)

      Pour continuer dans cette logique sans rapport évident, j'avais aussi rencontré par le passé de nombreux problèmes sur des cartes Silicon Image ATA où certaines reconnaissait 4 disques (sur deux ports), d'autres seulement 2 et d'autres enfin qui "éclipsaient" certains disques de temps en temps...
      Bref, maintenant je fais plutôt l'effort d'une Promise ou autre en lieu et place de Silicon...

Suivre le flux des commentaires

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