Jump to content

[RESOLU] RAID1 - disque défect, doit changer hda


Recommended Posts

Salut,

Et bien me voici confronté pour la première fois à un disque dur qui flanche avec un RAID de de type 1 (logiciel en partition RAID Linux).

Ma config:

Très simple, j'ai 2 disques durs IDE de 30 GO. Un disque positioné comme hda (primary master) et l'autre comme hdc (secondary master). Le disque en erreur est le hda.

J'ai 4 partitions RAID sur chacun des disques en mirroir total. (/dev/hda1 ou /dev/hdc1 = /boot, /dev/hda2 ou /dev/hdc2 = /, /dev/hda3 ou /dev/hdc3 = swap et /dev/hda4 ou /dev/hdc4 = /serveur).

Voici la ligne qui me confirme que c'est bien lui:

raid1: Disk failure on hda4, disabling device.

Actuellement mon serveur Linux n'a pas encore été arrêté depuis cet erreur et il fonctionne en mode dégradé sur uniquement un disque.

Operation continuing on 1 devices
raid1: hda4: rescheduling block 16777256
md3: no spare disk to reconstruct array! - continuing in degraded mode
md2: no spare disk to reconstruct array! - continuing in degraded mode
md1: no spare disk to reconstruct array! - continuing in degraded mode
raid1: hdc4: redirecting sector 16777256 to another mirror
....et ainsi de suite avec d'autres erreurs.

Bon pour me rassurer quel est la bonne chose à faire en premier avant d'arrêter le système si je veux être certain que lorsque je remplacerai le disque 'hda' que je n'aurai pas de problème pour que Linux s'amorce ?

Merci

Link to comment
Share on other sites

Faire une priere? :transpi:

Si vous me cherchez, je suis déja dehors :craint:

Plus sérieusement,, si je ne me trompe pas, il suffit de brancher ton nouveau disque et il va reconstruire l'array lui-même...

Je n'ai jamais eu le cas mais je me souviens avoir lu ca quelque part :troll:

Link to comment
Share on other sites

Fais-nous un cat /proc/mdstat please.

A mon avis tu devrais commencer par ré-ajouter le disque dans ton raid1.

Si il re-merde dans pas longtemps, c'est que le disque est effectivement mort.

Donc tu le remplaces, et si tu as bien fait ton installe et que tu as bien insallé grub ou lilo sur tous les disques, ça devrait bien se passer.

Link to comment
Share on other sites

Fais-nous un cat /proc/mdstat please.

A mon avis tu devrais commencer par ré-ajouter le disque dans ton raid1.

Si il re-merde dans pas longtemps, c'est que le disque est effectivement mort.

Donc tu le remplaces, et si tu as bien fait ton installe et que tu as bien insallé grub ou lilo sur tous les disques, ça devrait bien se passer.

C'est ce qui me fait peur, je ne suis pas certain de la validité de mon installation (si GRUB est bien présent sur les 2 disques, la partition /boot est bien là sur un des mdx, mais le "tag" d'amorce je ne suis pas sur qu'il soit présent sur les 2 disques). J'avais fait l'installation du RAID1 lors de l'installation initiale à l'aide de Disk Druid. Je ne suis pas certain que les 2 disques contiennent une amorce... et vu que c'est le hda (je suis en IDE/ATA) qui est en problème ça m'embête un peu si je ferme le tout et que rien ne veut redémarrer !

1- Comment déterminer si GRUB loader est bien présent sur les 2 disques ?

2- Voici mon cat /proc/mdstat:

Personalities : [raid1] 
read_ahead 1024 sectors
md3 : active raid1 hda4[0](F) hdc4[1]
  27599552 blocks [2/1] [_U]

md2 : active raid1 hda3[0](F) hdc3[1]
  329216 blocks [2/1] [_U]

md1 : active raid1 hda2[0](F) hdc2[1]
  2048192 blocks [2/1] [_U]

md0 : active raid1 hda1[0] hdc1[1]
  48064 blocks [2/2] [UU]

unused devices: <none>

Probablement que le paramètre [uU] ou [_U] représente l'état du RAID, mais je ne sais pas l'interpréter correctement.

Et lorsque tu dis de ré-ajouter mon disque dans le RAID, tu parles du même disque physique ? ou un autre neuf au même endroit (hda), je ne suis pas en hotplug.

Voici comment grub.conf est configuré:

default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
password --md5 -------------------
title Red Hat Linux (2.4.20-28.7)
root (hd0,0)
kernel /vmlinuz-2.4.20-28.7 ro root=/dev/md1
initrd /initrd-2.4.20-28.7.img

La partition swap est sur /dev/md2 d'après /etc/fstab.

J'ajoute que dans un dmesg j'ai:

Kernel command line: ro root=/dev/md1

presqu'en partant.

Merci de votre aide.

Link to comment
Share on other sites

mais le "tag" d'amorce je ne suis pas sur qu'il soit présent sur les 2 disques

Je dirais que lorsqu'on fait un raid1, on fait un miroir PARFAIT du disque principal.... Ce qui voudrait donc dire que tu dois pouvoir booter sur l'un ou sur l'autre...

Link to comment
Share on other sites

Nope, le raid logiciel sous linux c'est uniquement sur des partitions, par sur des disques entiers (ça permet de faire des choses rigolottes avec LVM).

Le [_U] c'est effectivement l'état du RAID. T'en as un down et l'autre UP. Ce qui est bizarre c'est que sur le dernier les deux sont UP, donc ça vaut probablement le coup de tenter une réinsertion du disque dans le RAID.

Quand je parle de remettre le disque dans l'array, je parle d'un point de vue logiciel, c'est à dire :

mdadm /dev/md1 --add /dev/hda2

mdadm /dev/md2 --add /dev/hda3

mdadm /dev/md3 --add /dev/hda4

Pour savoir si grub est bien là sur /dev/hdc, j'imagine qu'on doit pouvoir regarder avec dd les premiers secteurs du disque. Sinon tu peux forcer l'install avec grub-install

Link to comment
Share on other sites

Merci Gauret t'es le King !

Bon avant de lancer ça et de faire une gaffe, j'ai cherché comme m'assurer de quel partition est associé à quel mount ? Mais je n'ai pas trouvé....

Dans dmesg je vois bien que md1 est pour hda2 & hdc2, md2 .... et ainsi de suite, ça m'en dit beaucoup. Par contre /dev/md1 correspond à quel mount (dossier), je n'ai pas l'info dans /etc/fstab. Bon, logiquement /boot sera /dev/md1 car c'est celui-là qui est spécifié dans grub.conf pour démarrer. Dans /etc/fstab, j'ai md3 qui est associé à swap également. Mais mon /dev/md2 et /dev/md4 qui sont existant en tant que dossiers accessibles car je sais qu'un est le "/" et l'autres est "/serveur", mais je ne trouve pas comment déterminer lequel est le qui ? Le système a-t-il un autre endroit où il monte des partitions à l'amorçage autre que /etc/fstab ?

Pour le dd, si je comprend bien je peut savoi si le disque à un "tag" d'amorce en lisant ses premiers secteurs d'une commande du genre:

dd if=/dev/hdc of=/tmp/lire.txt bs=446 count=1 (SVP confirmer)

Et c'est quoi dans le résultat qui va me confirmer que c'est bien présent ???

Merci encore

Link to comment
Share on other sites

Euuuhhh :pleure: question, est-ce que ça se peut qu'il existe une autre commande que "mdadm" pour la même chose ?

bash: mdadm: command not found

man mdadm (il n'y a pas de page de manuel pour mdadm.)

find / -name mdadm (rien)

J'ai pourtant le package raidtools d'installé :pleure:

Link to comment
Share on other sites

Bon finalement, je commence à me répondre tout seul :pleure:

Pour connaître mes partitions RAID associées aux dossiers montés, c'est dans /etc/mtab.

Pour connaître l'état de mon RAID, il y a "cat /proc/mdstat" et également la commande "lsraid -a /dev/mdX" (où X représente la valeur de la partition RAID.) et là ça donne un bon résumé !

Pour ce qui est de "mdadm", j'ai bien peur que ma distribution soit trop vieille :pleure: c'est une Red Hat 7.3 (c'est pour ça que les disques commencent à lâcher) et "mdadm 1.0.0" est là depuis Red Hat 8.0 uniquement. Et là je ne trouve pas de programme équivalent pour faire la tâche de ré-insérer le disque hda dans le RAID ?

----> Ha ha ! Je viens de comprendre... raidtools était le package utilisé "autrefois" (celui de ma distribution) qui a été remplacé par mdadm. Donc les outils que je peut avoir pour m'aider seront ceux fournits par raidtools. Ce pourrait-il que ma solution soit: "raidhotadd /dev/md1 /dev/hda2" ?

Link to comment
Share on other sites

Nope, le raid logiciel sous linux c'est uniquement sur des partitions, par sur des disques entiers (ça permet de faire des choses rigolottes avec LVM).

Le [_U] c'est effectivement l'état du RAID. T'en as un down et l'autre UP. Ce qui est bizarre c'est que sur le dernier les deux sont UP, donc ça vaut probablement le coup de tenter une réinsertion du disque dans le RAID.

Quand je parle de remettre le disque dans l'array, je parle d'un point de vue logiciel, c'est à dire :

mdadm /dev/md1 --add /dev/hda2

mdadm /dev/md2 --add /dev/hda3

mdadm /dev/md3 --add /dev/hda4

Pour savoir si grub est bien là sur /dev/hdc, j'imagine qu'on doit pouvoir regarder avec dd les premiers secteurs du disque. Sinon tu peux forcer l'install avec grub-install

[HS]

LVM... Ca ressemble avec le chipottage que m'avait fait Fediora lors de l'installation...

[/HS]

Je ne connaissais pas ce systeme de raid, donc je suis largué, donc je retourne dans mon lit :transpi:

Link to comment
Share on other sites

Merci de votre aide !!! Ça m'a beaucoup aidé pour trouver la solution.

J'ai terminé de refaire mon RAID avec un nouveau disque dur. Mais je demeure avec un problème ennuyeux que je dois absolument réaprer.

C'était le hda qui avait lâché, il ne me restait que le hdc en marche, j'ai fais une sauvegarde via FTP de toutes les données et j'ai ensuite créé une disquette d'amorçage avec "mkbootdisk" pour me protéger (ce qui m'a sauvé !)

Après un redémarrage avec le disque hda défectueux je pouvais encore lancer Linux, mais en enlevant celui-ci et en modifiant l'ordre de boot dans le BIOS vers hdc (ou encore en plaçant le bon disque hdc en position hda) je ne pouvais pas booter. Tout ce que j'avais c'était une fenêtre noir avec "GRUB" d'écris (pas de GRUB: ou autre pour une option) c'était gelé là. Donc mon GRUB n'est pas installé correctement sur mon hdc et ensuite j'ai ajouté un nouveau disque dur en hda.

J'ai utilisé ma disquette de boot (tout fonctionne bien avec !), j'ai ré-intégrer mon nouveau disque dur (fdisk, création des partitions et un "raidhotadd"), maintenant l'array est en marche [uU]. J'ai également ajouté hda1 avec une * (amorçable) dans fdisk... mais il m'est impossible de démarrer ni sur mon nouveau hda, ni sur mon hdc.

Ma question:

============

Je crois bien que les 2 disques ne contiennent pas d'ID d'amorce sur le MBR. Alors comment rendre ces 2 disques amorçables ? Remettre GRUB amorçable sur chacun d'eux ?

============

J'ai trouvé sur un site la commande "install-mbr /dev/hda", mais cette commande je ne la trouve pas dans ma distribution.

Link to comment
Share on other sites

Salut Gauret,

Désolé de ne pas avoir répondu avant... j'avais trouvé l'info sur le site GNU GRUB pour réinstaller GRUB de façon natif comme tu m'as expliqué.

prompt#> grub

grub>
grub> root (hd0,0)
grub> find /grub/stage1   *hda1 = md0 est /boot

(hd0,0)
(hd1,0)

grub> setup (hd0)
grub> quit

La chose qui m'embêtait et que tu sembles avoir confirmé... c'est comment installé GRUB dans la MBR des 2 disques durs faisant parti du RAID1, car lorsque l'on lance setup (hdx) il modifie grub.conf. En refaisant "setup (hd1)" je croyais ré-effacer celui lancé auparavant pour hd0.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...