Problème RAID1, panne d'un disque de l'array, remplacement

Bonjour a tout ceux qui ne sont pas encore en vacances ou qui en revienne.

J’ai un problème de reassemblage de disque RAID1 logiciel.

J’ai deux disque sda et sdb en RAID1, (mon systeme est sur hda)

sdb, apres 4 petit mois est mort. Je me suis dit, aucun probleme, le tuto Raid logiciel avec mdadm - Exemple RAID1 - niveau débutant, V.2 - Cas 1 : panne d’un disque de l’array que j’avais tester va me permettre de m’en sortir sans problème.

Je m’achete donc un nouveau disque, identique a celui qui est mort.

je tente un

#mdadm --manage /dev/md1 --remove /dev/sdb1 qui me dit a juste titre que sdb1 n’existe plus.

[code]#mdadm --detail /dev/md1
/dev/md1:
Version : 00.90.03
Creation Time : Tue Feb 2 07:07:03 2010
Raid Level : raid1
Array Size : 1465135936 (1397.26 GiB 1500.30 GB)
Device Size : 1465135936 (1397.26 GiB 1500.30 GB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 1
Persistence : Superblock is persistent

Update Time : Mon Aug  2 11:27:38 2010
      State : clean, degraded

Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

       UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx (local to host yyyyyy)
     Events : 0.25604

Number   Major   Minor   RaidDevice State
   0       8        1        0      active sync   /dev/sda1
   1       0        0        1      removed

[/code]

Je monte donc mon nouveau disque, je cree mes partions sans probleme

[code]extrait de fdisk -l

Disk /dev/sda: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 182401 1465136001 fd Linux raid autodetect

Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 182401 1465136001 fd Linux raid autodetect
[/code]

Je me lance donc a rajouter mon nouveau disque au RAID1

Et la, je pense dans un premier temps que tout va bien mais en réalité :angry: , le nouveau disque est pris comme spare (et apres 4 jours, il est tjs en rebuilding, cela n’arrête pas de recommencer - mais ceci n’est pas le problème principal a mon sens)

[code]#mdadm --detail /dev/md1
Update Time : Mon Aug 2 06:25:48 2010
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1

Rebuild Status : 36% complete

       UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx(local to host yyyyyyyyyyyyy)
     Events : 0.25590

Number   Major   Minor   RaidDevice State
   0       8        1        0      active sync   /dev/sda1
   2       8       17        1      spare rebuilding   /dev/sdb1

[/code]

Je suis peut etre dans le cas “précisions de AnatomicJC >>ici<<” mais la c’est plus du “débutant”…

Ma question est simple, comment faire pour ajouter ce disque non pas en spare mais comme un remplacent de l’ancien sdb

Merci beaucoup

J’ai tout recommencer (remove sdb1 du RAID puis reajout), et même problème, le disque reste en spare et le recovery ne s’arrette pas.

J’ai trouver la commande

mais

avec sdb1 ou sdb:

Que faire…

PS quand j’ai dit disque mort, il n’était pas mort avant que je l’éteigne, mais énormément de tracks errors et je l’ai échangé en magasin.

Comme je me doutais, le 1er disque du RAID a lui aussi des secteurs défectueux. J’ai du acheter une mauvaise série de disques.

J’ai tester le disque (en enlevant sdb du raid, donc il ne restait que sda dedans)

#umount -f /dev/md1
#e2fsck -cfv -C 0 /dev/md1

Il m’a trouver pas mal d’erreur que j’espère il m’a corriger.

J’ai remonter le RAID, mais pareil il est toujours en spare, et la reconstruction boucle…

#cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb1[2] sda1[0]
      1465135936 blocks [2/1] [U_]
      [=======>.............]  recovery = 35.0% (513388480/1465135936) finish=292.5min speed=54220K/sec

md0 : active raid1 hdc1[0] hdd1[1]
      488383936 blocks [2/2] [UU]

unused devices: <none>
mdadm --detail /dev/md1
/dev/md1:
        Version : 00.90.03
  Creation Time : Tue Feb  2 07:07:03 2010
     Raid Level : raid1
     Array Size : 1465135936 (1397.26 GiB 1500.30 GB)
    Device Size : 1465135936 (1397.26 GiB 1500.30 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Wed Aug  4 06:25:47 2010
          State : clean, degraded, recovering
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

 Rebuild Status : 35% complete

           UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx(local to host yyyyy)
         Events : 0.25698

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       2       8       17        1      spare rebuilding   /dev/sdb1

Il y a forcement un truc ou je merde mais lequel…
Merci

Et hop, rien n’a pourtant été fait sur la machine, …

[code]Update Time : Wed Aug 4 11:25:52 2010
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1

Rebuild Status : 4% complete
[/code]
Sans rien faire du tout, le rebuild recommence…

J’ai tout recommencer a zero hier soir.

# mdadm --zero-superblock /dev/sdb1
# sfdisk -d /dev/sda | sfdisk /dev/sdb
# mdadm --add /dev/md1 /dev/sdb1

et le resultat est le meme. J’ai fait un petit script qui me concatène /proc/mdstat dans un fichier de logs (et m’affiche la date/heure)

Thu Aug  5 03:58:28 CEST 2010
Personalities : [raid1] 
md1 : active raid1 sdb1[2] sda1[0]
      1465135936 blocks [2/1] [U_]
      [==============>......]  recovery = 70.4% (1031929472/1465135936) finish=230.7min speed=31293K/sec
      
unused devices: <none>
Thu Aug  5 03:59:28 CEST 2010
Personalities : [raid1] 
md1 : active raid1 sdb1[2] sda1[0]
      1465135936 blocks [2/1] [U_]
      [>....................]  recovery =  0.0% (1327936/1465135936) finish=459.2min speed=53117K/sec
      
unused devices: <none>

Hop a 3h59, après 5h et 9 min tout est repartis, après avoir plafonner a 70.4%
Je n’ai plus aucune idee de que faire.

PS watch -n 1 cat /proc/mdstat, c’est super pratique pour surveiller ce qui se passe

Bon l’erreur qui fait boucler le recovery est bien des mauvais secteurs sur /dev/sda.
Il faut vraiment que j’arrive a mettre ce disque sdb actif au plus vite, sda va lâcher lui aussi.

voici l’extrait de /var/log/message

Aug  5 03:50:15 yyyyy -- MARK --
Aug  5 03:58:08 yyyyy kernel: ata1: EH complete
Aug  5 03:58:08 yyyyy last message repeated 4 times
Aug  5 03:58:08 yyyyy kernel: sd 0:0:0:0: SCSI error: return code = 0x08000002
Aug  5 03:58:08 yyyyy kernel: sda: Current: sense key: Medium Error
Aug  5 03:58:08 yyyyy kernel:     Additional sense: Unrecovered read error - auto reallocate failed
Aug  5 03:58:08 yyyyy kernel: end_request: I/O error, dev sda, sector 2063858111
Aug  5 03:58:08 yyyyy kernel: ata1: EH complete
Aug  5 03:58:25 yyyyy last message repeated 5 times
Aug  5 03:58:28 yyyyy kernel: sd 0:0:0:0: SCSI error: return code = 0x08000002
Aug  5 03:58:28 yyyyy kernel: sda: Current: sense key: Medium Error
Aug  5 03:58:28 yyyyy kernel:     Additional sense: Unrecovered read error - auto reallocate failed
Aug  5 03:58:28 yyyyy kernel: end_request: I/O error, dev sda, sector 2063859135
Aug  5 03:58:28 yyyyy kernel: ata1: EH complete
Aug  5 03:58:28 yyyyy kernel: SCSI device sda: 2930277168 512-byte hdwr sectors (1500302 MB)
Aug  5 03:58:28 yyyyy kernel: sda: Write Protect is off
Aug  5 03:58:28 yyyyy kernel: SCSI device sda: drive cache: write back
Aug  5 03:58:28 yyyyy kernel: SCSI device sda: 2930277168 512-byte hdwr sectors (1500302 MB)
Aug  5 03:58:28 yyyyy kernel: sda: Write Protect is off
Aug  5 03:58:28 yyyyy kernel: SCSI device sda: drive cache: write back
Aug  5 03:58:28 yyyyy kernel: ata1: EH complete
Aug  5 03:58:28 yyyyy last message repeated 4 times
Aug  5 03:58:28 yyyyy kernel: sd 0:0:0:0: SCSI error: return code = 0x08000002
Aug  5 03:58:28 yyyyy kernel: sda: Current: sense key: Medium Error
Aug  5 03:58:28 yyyyy kernel:     Additional sense: Unrecovered read error - auto reallocate failed
Aug  5 03:58:28 yyyyy kernel: end_request: I/O error, dev sda, sector 2063859111
Aug  5 03:58:28 yyyyy kernel: ata1: EH complete
Aug  5 03:58:28 yyyyy kernel: md: md1: sync done.
Aug  5 03:58:28 yyyyy kernel: SCSI device sda: 2930277168 512-byte hdwr sectors (1500302 MB)
Aug  5 03:58:28 yyyyy kernel: sda: Write Protect is off
Aug  5 03:58:28 yyyyy kernel: SCSI device sda: drive cache: write back
Aug  5 03:58:28 yyyyy kernel: SCSI device sda: 2930277168 512-byte hdwr sectors (1500302 MB)
Aug  5 03:58:28 yyyyy kernel: sda: Write Protect is off
Aug  5 03:58:28 yyyyy kernel: SCSI device sda: drive cache: write back
Aug  5 03:58:31 yyyyy kernel: ata1: EH complete
Aug  5 03:58:42 yyyyy last message repeated 4 times
Aug  5 03:58:45 yyyyy kernel: sd 0:0:0:0: SCSI error: return code = 0x08000002
Aug  5 03:58:45 yyyyy kernel: sda: Current: sense key: Medium Error
Aug  5 03:58:45 yyyyy kernel:     Additional sense: Unrecovered read error - auto reallocate failed
Aug  5 03:58:45 yyyyy kernel: end_request: I/O error, dev sda, sector 2063859255
Aug  5 03:58:45 yyyyy kernel: ata1: EH complete
Aug  5 03:58:59 yyyyy last message repeated 5 times
Aug  5 03:59:02 yyyyy kernel: sd 0:0:0:0: SCSI error: return code = 0x08000002
Aug  5 03:59:02 yyyyy kernel: sda: Current: sense key: Medium Error
Aug  5 03:59:02 yyyyy kernel:     Additional sense: Unrecovered read error - auto reallocate failed
Aug  5 03:59:02 yyyyy kernel: end_request: I/O error, dev sda, sector 2063859263
Aug  5 03:59:02 yyyyy kernel: ata1: EH complete
Aug  5 03:59:02 yyyyy kernel: SCSI device sda: 2930277168 512-byte hdwr sectors (1500302 MB)
Aug  5 03:59:02 yyyyy kernel: sda: Write Protect is off
Aug  5 03:59:02 yyyyy kernel: SCSI device sda: drive cache: write back
Aug  5 03:59:02 yyyyy kernel: SCSI device sda: 2930277168 512-byte hdwr sectors (1500302 MB)
Aug  5 03:59:02 yyyyy kernel: sda: Write Protect is off
Aug  5 03:59:02 yyyyy kernel: SCSI device sda: drive cache: write back
Aug  5 03:59:03 yyyyy kernel: RAID1 conf printout:
Aug  5 03:59:03 yyyyy kernel:  --- wd:1 rd:2
Aug  5 03:59:03 yyyyy kernel:  disk 0, wo:0, o:1, dev:sda1
Aug  5 03:59:03 yyyyy kernel:  disk 1, wo:1, o:1, dev:sdb1
Aug  5 03:59:03 yyyyy kernel: RAID1 conf printout:
Aug  5 03:59:03 yyyyy kernel:  --- wd:1 rd:2
Aug  5 03:59:03 yyyyy kernel:  disk 0, wo:0, o:1, dev:sda1
Aug  5 03:59:03 yyyyy kernel: RAID1 conf printout:
Aug  5 03:59:03 yyyyy kernel:  --- wd:1 rd:2
Aug  5 03:59:03 yyyyy kernel:  disk 0, wo:0, o:1, dev:sda1
Aug  5 03:59:03 yyyyy kernel:  disk 1, wo:1, o:1, dev:sdb1
Aug  5 03:59:03 yyyyy kernel: md: syncing RAID array md1
Aug  5 03:59:03 yyyyy kernel: md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc.
Aug  5 03:59:03 yyyyy kernel: md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reconstruction.
Aug  5 03:59:03 yyyyy kernel: md: using 128k window, over a total of 1465135936 blocks.
Aug  5 04:10:15 yyyyy -- MARK --

Bon j’ai la preuve, le recovery plante a chaque fois qu’il atteind 70.4%.
Pourtant j’ai fait un scandisk dessus… (e2fsck -cfv -C 0 /dev/md1)