RAID - Procédure de remplacement d'un disque

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

RAID - Procédure de remplacement d'un disque

Messagepar fraedhrim » 25 Mars 2007 14:52

Salut,

J'étais en train d'adpater le how-to de Darrel May sur le recovery d'un disque RAID à ma petite installation dans le but de faire une petite procédure "au cas où" quand je me suis aperçu avec effroi que contrairement à ce qu'utilise le how-to il n'y a pas sur ma SME 7 de "raidhotadd"...

Comment qu'on fait-on alors ? Quelqu'un a-t-il une procédure plus récente (le how-to date de la v5) ?

Merci pour l'info.

Pour rappel le how-to en question (qui a disparu des mirroirs) :
RAID1 Recovery HowTo
Suitable for: e-smith 4.1.2/Mitel SME5
Author: Darrell May
Contributor:

Problem: You want to easily recover from a RAID1 failure.

Solution: Implement the steps outlined in the RAID1 Monitor HowTo. Next follow these steps:
STEP 1: Backup your computer!

I can not stress this point strongly enough. Your first priority on a failed RAID1 system should be to perform an immediate backup.

So, DO IT NOW!

[root@myezserver /root]# /sbin/e-smith/backup
STEP 2: Power down, replace the failed drive, power up.

First, before we continue, I just want to show you that for testing purposes only, to completely erase a drive, do the following:

[root@myezserver /root]# dd if=/dev/zero of=/dev/hdb

This will write zeroes across the entire /dev/hdb drive. Remember for all command-line entries in this HowTO to substitute your correct /dev/hdX where:

/dev/hda = primary master
/dev/hdb = primary slave
/dev/hdc = secondary master
/dev/hdd = secondary slave

Step 3: Recover the partition information and use this information to quickly prepare the replacement drive.

[root@myezserver /root]# cat /root/raidmonitor/sfdisk.out
# partition table of /dev/hda
unit: sectors

/dev/hda1 : start= 63, size= 530082, Id=fd, bootable
/dev/hda2 : start= 530145, size=39487770, Id= 5
/dev/hda3 : start= 0, size= 0, Id= 0
/dev/hda4 : start= 0, size= 0, Id= 0
/dev/hda5 : start= 530208, size= 32067, Id=fd
/dev/hda6 : start= 562338, size=39455577, Id=fd
# partition table of /dev/hdb
unit: sectors

/dev/hdb1 : start= 63, size= 530082, Id=fd, bootable
/dev/hdb2 : start= 530145, size=39487770, Id= 5
/dev/hdb3 : start= 0, size= 0, Id= 0
/dev/hdb4 : start= 0, size= 0, Id= 0
/dev/hdb5 : start= 530208, size= 32067, Id=fd
/dev/hdb6 : start= 562338, size=39455577, Id=fd

Cut and paste your correct # partition table of /dev/hdX. In my case I am replacing /dev/hdb so this is the information I need to transfer into a file for quick import:

[root@myezserver /root]# pico hdb.out

Which now contains the following entries, right?:

# partition table of /dev/hdb
unit: sectors

/dev/hdb1 : start= 63, size= 530082, Id=fd, bootable
/dev/hdb2 : start= 530145, size=39487770, Id= 5
/dev/hdb3 : start= 0, size= 0, Id= 0
/dev/hdb4 : start= 0, size= 0, Id= 0
/dev/hdb5 : start= 530208, size= 32067, Id=fd
/dev/hdb6 : start= 562338, size=39455577, Id=fd

Next perform the partition table import using the sfdisk command as shown below:

[root@myezserver /root]# sfdisk /dev/hdb < hdb.out
Checking that no-one is using this disk right now ...
OK

Disk /dev/hdb: 2491 cylinders, 255 heads, 63 sectors/track
Old situation:
Empty

New situation:
Units = sectors of 512 bytes, counting from 0

Device Boot Start End #sectors Id System
/dev/hdb1 * 63 530144 530082 fd Linux raid autodetect
/dev/hdb2 530145 40017914 39487770 5 Extended
/dev/hdb3 0 - 0 0 Empty
/dev/hdb4 0 - 0 0 Empty
/dev/hdb5 530208 562274 32067 fd Linux raid autodetect
/dev/hdb6 562338 40017914 39455577 fd Linux raid autodetect
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
STEP 4: Review your last known good RAID configuration:

[root@myezserver /root]# /usr/local/bin/raidmonitor -v

ALARM! RAID configuration problem

Current configuration is:

Personalities : [raid1]
read_ahead 1024 sectors
md2 : active raid1 hda1[0] 264960 blocks [2/1] [U_]
md0 : active raid1 hda5[0] 15936 blocks [2/1] [U_]
md1 : active raid1 hda6[0] 19727680 blocks [2/1] [U_]
unused devices: <none>

Last known good configuration was:

Personalities : [raid1]
read_ahead 1024 sectors
md2 : active raid1 hdb1[1] hda1[0] 264960 blocks [2/2] [UU]
md0 : active raid1 hdb5[1] hda5[0] 15936 blocks [2/2] [UU]
md1 : active raid1 hdb6[1] hda6[0] 19727680 blocks [2/2] [UU]
unused devices: <none>
STEP 5: Add your newly prepared and correctly partitioned hard drive into the RAID1 array. You use the information above as your guide:

[root@myezserver /root]# /sbin/raidhotadd /dev/md2 /dev/hdb1
[root@myezserver /root]# /sbin/raidhotadd /dev/md0 /dev/hdb5
[root@myezserver /root]# /sbin/raidhotadd /dev/md1 /dev/hdb6
STEP 6: Use raidmonitor to watch the recovery process. Note this information will also be e-mailed to root every 15 min. until the recovery is completed.

[root@myezserver /root]# /usr/local/bin/raidmonitor -v

ALARM! RAID configuration problem

Current configuration is:

Personalities : [raid1]
read_ahead 1024 sectors
md2 : active raid1 hdb1[1] hda1[0] 264960 blocks [2/2] [UU]
md0 : active raid1 hdb5[1] hda5[0] 15936 blocks [2/2] [UU]
md1 : active raid1 hdb6[2] hda6[0] 19727680 blocks [2/1] [U_] recovery=5% finish=10.0min
unused devices: <none>

Last known good configuration was:

Personalities : [raid1]
read_ahead 1024 sectors
md2 : active raid1 hdb1[1] hda1[0] 264960 blocks [2/2] [UU]
md0 : active raid1 hdb5[1] hda5[0] 15936 blocks [2/2] [UU]
md1 : active raid1 hdb6[1] hda6[0] 19727680 blocks [2/2] [UU]
unused devices: <none>

STEP 7: Recover and restore the last known good master boot record (MBR) onto the drive you just replaced:

[root@myezserver /root]# /sbin/lilo -C /root/raidmonitor/lilo.conf -b /dev/hdb

STEP 8: Shutdown the server, reboot and test the RAID functions

If you have the time, you should test the RAID functionality to make sure the server will boot under simulated hdd failures.

* start by booting with both drives attached
* power down, disconnect one of the drives, power up, check boot
* power down, reconnect the drive, power up and rebuild the array as above repeating steps 5 and 6 only
* power down, disconnect the other drive, power up, check boot
* power down, reconnect the drive, power up and rebuild the array as above repeating steps 5 and 6 only

OK, now you can confidently say your ready for anything. Remember if anything goes wrong here, you simply reconnect all the hardware, perform a fresh RAID install and then restore from your backup tape. You did perform STEP 1 correct?

STEP 9: When all looks well, re-initialze raidmonitor:

[root@myezserver /root]# /usr/local/bin/raidmonitor -iv

STEP 10: Go have drink. Job well done ;->
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar cyberjuls » 26 Mars 2007 08:54

Salut,

j'ai un disque aussi qui apparement a rendu l'âme. Je ne tourne donc plus que sur un disque.
Ma question est de savoir si l'on peut remplacer le disque défaillant par un disque différent de capacité équivalente ou plus importante, ou faut-il le même disque dur?
Avatar de l’utilisateur
cyberjuls
Second Maître
Second Maître
 
Messages: 43
Inscrit le: 14 Jan 2004 01:00

Messagepar shwing » 26 Mars 2007 09:29

Salut,
Pour le RAID 1 si les tailles ne sont pas identiques, alors ce sera la taille la plus petite qui sera pris en compte. enfin seulement si j'ai bien compris ;)

regarde ce poste:
http://forums.ixus.fr/viewtopic.php?t=36927
Avatar de l’utilisateur
shwing
Amiral
Amiral
 
Messages: 1246
Inscrit le: 14 Mars 2004 01:00
Localisation: GE/CH

Messagepar antolien » 26 Mars 2007 12:30

Tu peux utiliser un disque différent et de capacité égale où superieure.
Il te suffit de recréer les partitions sur le nouveau disque (type FD -> raid autodetect) éventuellement ajouter le flag maximize.
et enfin ajouter les nouvelles partitions sur ton raid avec mdadm (exemple : mdadm --add /dev/md0 /dev/hda1) et attendre que ça se synchronise.
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar cyberjuls » 26 Mars 2007 14:02

Ok donc
1- si j'ai un disque IDE de capacité 40Go, je peux le remplacer par un ide, sata ou scsi de 40go ou plus.

2- Je recopie les infos de partition en procédant comme D May avec la commande
Code: Tout sélectionner
cat /root/raidmonitor/sfdisk.out

Cf le tutorial cité plus haut.

3- Le flag maximize quézako?

4- Ajouter les nouvelles partitions sur mon raid, ok Cf tutorial.
Avatar de l’utilisateur
cyberjuls
Second Maître
Second Maître
 
Messages: 43
Inscrit le: 14 Jan 2004 01:00

Messagepar fraedhrim » 26 Mars 2007 14:09

4- Ajouter les nouvelles partitions sur mon raid, ok Cf tutorial


Non justement le tuto ne colle pas avec la SME 7. Il faut suivre les infos données par Antolien pour l'ajout des partoches.
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar cyberjuls » 26 Mars 2007 14:15

Oui sauf que perso je suis sous 6.1 encore.

Sinon pour la 7 ok suivre les infos d'antolien.
Avatar de l’utilisateur
cyberjuls
Second Maître
Second Maître
 
Messages: 43
Inscrit le: 14 Jan 2004 01:00

Messagepar fraedhrim » 26 Mars 2007 20:23

Ah ok !

Donc tu m'as pourri mon topic avec une question différente ET une version différente de SME par rapport à l'objet de ma demande. Je le note.
:lol:

(Merci Antolien pour la réponse concernant le topic au fait)
A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar cyberjuls » 26 Mars 2007 20:44

bon ne m'en veux pas,

je viens de passer à la 7 et comme je vais tester un peu les défaillances système, je vais essayer de faire un peu le tour de toute les possibilitées de défaillance et de bien sûr t'en faire profiter.
désolé pour le post
A+
Avatar de l’utilisateur
cyberjuls
Second Maître
Second Maître
 
Messages: 43
Inscrit le: 14 Jan 2004 01:00

Messagepar fraedhrim » 27 Mars 2007 11:27

Ouaf !

C'était une boutade. J'avais eu ma réponse.

A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar cyberjuls » 27 Mars 2007 11:34

:lol:

Au passage SME7 déchire, j'ai un instant hésité à changer pour M$ server 2003 et puis, je n'ai pas pu....
Non sans déconner, je trouve que sme 7 est vraiment tip top. installation ultrarapide et simple.

Reste à essayer de faire un bon tutorial newbie style pour permettre de vérifier régulièrement l'état des disques (SMART?) de diagnostiquer une panne DD ou RAID (les commandes, leur rôle), et de faire les opérations nécéssaires à la remise en route d'un serveur RAID opérationnel. Il y a a peu près tout sur les forums, suffira de tout regrouper.

a+
Avatar de l’utilisateur
cyberjuls
Second Maître
Second Maître
 
Messages: 43
Inscrit le: 14 Jan 2004 01:00

Messagepar fraedhrim » 27 Mars 2007 17:30

Faut pas faire un newbie kit, faut faire une contrib !

Tu l'auras finie quand ?

8)
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar Gaston » 27 Mars 2007 23:48

Salut Fraedhrim,
fatigué ce soir, mais si tu regardes sur contribs les posts sur le raid + mdadm tu devrais retrouver les infos (un certain gaston94 je crois ;) ) que tu cherches ???

en vite et dirty : # mdadm -f /dev/md1 /dev/hdb1 -r /dev/hdb1 -a /dev/hdb1 ça doit rien faire du tout , non ? :oops:

pareil pour la partie grub qui doit remplacer la partie lilo

par contre je t'invite à regarder un script qui est appelé via la gestion de redondance de la console d'admin (/sbin/e-smith/add_drive_to_raid ) ça fait plein de chose tout seul (bon c'est du perl d'accord ...) même si je préfère la ligne de commande

G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar antolien » 28 Mars 2007 19:03

Gaston a écrit:
en vite et dirty : # mdadm -f /dev/md1 /dev/hdb1 -r /dev/hdb1 -a /dev/hdb1 ça doit rien faire du tout , non ? :oops:


ce serait bien que tu argumente un peu :)
tu retire la partition deffectueuse, et tu l'ajoute, ça relance la synchro normalement

après si ça marche pas, tu peux ajouter d'autres option comme --update et --force mais dans un premier temps c'est suffisant.

:roll:
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar Gaston » 28 Mars 2007 21:34

Désolé,
fatigué en ce moment. Ma commande ne fait rien car :
- mdadm -f /dev/md1 /dev/hdb1 : met le "disque" (la partition) en "faulty" : il y a pas vraiment de raison de le faire sur un RAID malade, le disk il s'est mit tout seul en faulty :( (me rappelle plus l'équivalent en raidtools :oops: )
- mdadm -r /dev/md1 /dev/hdb1 : retire le "disque" du device RAID (raidhotremove dans les raidtools)
- mdadm -a /dev/md1 /dev/hdb1 : joint le "disque" au device RAID existant (raidhotadd dans les raidtools)
J'ai donc retiré un disque sain d'un device RAID et rajouté le même disque, faut être con non ?

avec mdadm tu peux enfiler les commandes en une seule, ça peut rapidement devenir illisible surtout si tu utilises les options détaillée ( --remove, --set-faulty, --add) bien qu'elles soient préférable, vu que selon le mode dans lequel tu es, les options courtes, peuvent avoir des sens différents #-o ](*,)
en résumé :
Code: Tout sélectionner
[root@sme71fr ~]## creation d'un device RAID1 de 2 disques
[root@sme71fr ~]# mdadm --create  /dev/md3 --level=1 --raid-devices=2  /dev/sdb1 /dev/sdc1
mdadm: array /dev/md3 started.
[root@sme71fr ~]# cat /proc/mdstat | head -3
Personalities : [raid1]
md3 : active raid1 sdc1[1] sdb1[0]
      208768 blocks [2/2] [UU]
      [======>..............]  resync = 33.3% (70272/208768) finish=0.1min speed=11712K/sec
[root@sme71fr ~]## arrêt d'un des disques du device RAID
[root@sme71fr ~]# mdadm --set-faulty /dev/md3 /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md3
[root@sme71fr ~]# cat /proc/mdstat  | head -3
Personalities : [raid1]
md3 : active raid1 sdc1[2](F) sdb1[0]
      208768 blocks [2/1] [U_]
[root@sme71fr ~]## suppression du disque arrêté du device RAID
[root@sme71fr ~]# mdadm --remove /dev/md3 /dev/sdc1
mdadm: hot removed /dev/sdc1
[root@sme71fr ~]# cat /proc/mdstat  | head -3
Personalities : [raid1]
md3 : active raid1 sdb1[0]
      208768 blocks [2/1] [U_]
[root@sme71fr ~]## Ajout d'un disque au device RAID existant
[root@sme71fr ~]# mdadm --add /dev/md3 /dev/sdc1
mdadm: hot added /dev/sdc1
[root@sme71fr ~]# cat /proc/mdstat  | head -3
Personalities : [raid1]
md3 : active raid1 sdc1[2] sdb1[0]
      208768 blocks [2/1] [U_]
      [=>...................]  recovery =  5.8% (12800/208768) finish=0.2min speed=12800K/sec
[root@sme71fr ~]#

Il y a encore beaucoup de chose que l'on peut gérer avec mdadm => man mdadm ou Google
valavala, avec tout ça Fraedhrim va nous faire un super howto ;)
G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Suivant

Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité