Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[RAID1] comment remplacer un disque HS ?

6 réponses
Avatar
Nicolas.MICHEL
Bonjour

Sur un vieux serveur DELL sous Fedora qui est en prod,
lors d'un reboot (update kernel) j'ai vu passer une erreur SCSI,
disk failure.

Il y a 4 disques configuré en 2 paires de RAID1.
Il me semble que ce doit être du raid logiciel, puisque il est configuré
dans /etc/raidtab.

Donc j'ai fait un lsraid :
# lsraid -a /dev/md0
[dev 9, 0] /dev/md0 1928DCFE.[snip].CE77F6F1 online
[dev 8, 1] /dev/sda1 1928DCFE.[snip].CE77F6F1 good
[dev ?, ?] (unknown) 00000000.[snip].00000000 missing

Si je comprends bien le message, /dev/sdb1 est manquant, le disque doit
être naze mais grace au mirroring ça a continué de tourner quand-même ?

Donc j'aimerais remplacer le disque foutu, et profiter de l'occasion
pour mettre des disques plus gros.

toutes mes partitions, /, /boot, swap, ... sont en raid1.

Comment faire ?

Je suis en train de potasser ceci :
<http://tldp.org/HOWTO/Software-RAID-HOWTO.html>
tout en tentant ces manip sur un serveur de test,
mais un petit coup de main serait bien vennu.

Notament, si quelqu'un a une vue d'ensemble des différentes étapes à
suivre, ce serait super.

Par exemple puis-je dire au raid1 de ne tourner que sur une partition le
temps que je prépare le nouveau disque ou faut-il arrêter le raid ?
Si j'arrête le raid, pourrais-je booter sur la partition qui contenant
le "raid-device système" ?
...

Si vous avez une doc à ce sujet, un truc expliquant les cas de figure et
pas juste des man pages, je serais prenneur

Mille merci d'avance :)
--
Nicolas

6 réponses

Avatar
patpro ~ Patrick Proniewski
In article <1hs508z.1s8h53q1fuz0u0N%,
(Nicolas MICHEL) wrote:

Donc j'ai fait un lsraid :
# lsraid -a /dev/md0
[dev 9, 0] /dev/md0 1928DCFE.[snip].CE77F6F1 online
[dev 8, 1] /dev/sda1 1928DCFE.[snip].CE77F6F1 good
[dev ?, ?] (unknown) 00000000.[snip].00000000 missing

Si je comprends bien le message, /dev/sdb1 est manquant, le disque doit
être naze mais grace au mirroring ça a continué de tourner quand-même ?

Donc j'aimerais remplacer le disque foutu, et profiter de l'occasion
pour mettre des disques plus gros.
../..


Si vous avez une doc à ce sujet, un truc expliquant les cas de figure et
pas juste des man pages, je serais prenneur


Je fais tourner du raid soft avec mdadm et compagnie sur du debian, donc
je ne suis pas tout à fait dans ton cas de figure, mais je sais que mes
tests d'avant mise en prod on montré qu'un disque FAILED ou MISSING peut
être remplacé à chaud, le process mdadm se charge de tout ensuite
(remonter le raid proprement).

Par ailleurs, j'ai eu un disque missing après un reboot, alors que le
disque se portait très bien, j'ai réimporté mon disque dans le raid,
partition par partition, et le RAID a été reconstruit correctement pour
chacune.

Pour la manip consistant à augmenter la taille des disques, je ne sais
pas faire.

patpro

--
http://www.patpro.net/

Avatar
Nicolas.MICHEL
patpro ~ Patrick Proniewski wrote:

Je fais tourner du raid soft avec mdadm et compagnie sur du debian, donc
je ne suis pas tout à fait dans ton cas de figure, mais je sais que mes
tests d'avant mise en prod on montré qu'un disque FAILED ou MISSING peut
être remplacé à chaud, le process mdadm se charge de tout ensuite
(remonter le raid proprement).


Pour ce que j'ai compris de mdadm, c'est une appli qui peut être
utilisée conjointement aux raidtools, donc si les commandes changent
l'action devrait être similaire ... ?

Côté hardware, mon serveur n'est pas hot plugable et les 4 baies disque
sont prises donc je dois d'abord éteindre et retirer un disque avant
d'en ajouter un. (j'ai pas de spare-disk).
De plus, le système est sur du raid, comme tout le reste.

D'où ma question :
si je fais un raidstop sur le système ou sur le swap, que va-t-il se
passer ?

Ou faut-il que je fasse un truc genre :
raidsetfaulty /dev/md0 /dev/sda1
raidhotremove /dev/md0 /dev/sda1
pour ne tourner que sur un disque et donc pouvoir préparer l'autre ?

Et si je fais ça, le raid ne va-t-il pas repartir au reboot sur le
nouveau disque avant que j'aies pu le formater ?
(parce que je suppose que ce n'est pas automatique ...)

Pour éviter ça, puis-je commenter le disque à changer dans la raidtab ?
Donc un truc de ce genre :

raiddev /dev/md1
raid-level 1
nr-raid-disks 1
nr-spare-disks 0
persistent-superblock 1
device /dev/sdb6
raid-disk 0
# device /dev/sdc5
# raid-disk 1

Bon, j'ai remonté mon serveur de test et je vais pouvoir commencer les
tests ... Mais si quelqu'un a une expérience, ce serait intéressant.

Pour la manip consistant à augmenter la taille des disques, je ne sais
pas faire.


J'immagines que si le raid1 tient sur 2 partitions de tailles
différentes, il utilisera l'espace du plus petit disque.

Si c'est le cas alors je devrais pouvoir remplacer un des 2 disques par
un plus gros, attendre que la reconstruction soit finie, puis changer
l'autre disque ... non ?

Merci d'avance :)
--
Nicolas

Avatar
patpro ~ Patrick Proniewski
In article <1hs570b.m0eapv1q3h73fN%,
(Nicolas MICHEL) wrote:

patpro ~ Patrick Proniewski wrote:

Je fais tourner du raid soft avec mdadm et compagnie sur du debian, donc
je ne suis pas tout à fait dans ton cas de figure, mais je sais que mes
tests d'avant mise en prod on montré qu'un disque FAILED ou MISSING peut
être remplacé à chaud, le process mdadm se charge de tout ensuite
(remonter le raid proprement).


Pour ce que j'ai compris de mdadm, c'est une appli qui peut être
utilisée conjointement aux raidtools, donc si les commandes changent
l'action devrait être similaire ... ?


Je ne sais pas. D'après mes lectures rapides mdadm est l'évolution de
raidtools, donc peut être que certaines choses sont plus simples avec le
premier.

Côté hardware, mon serveur n'est pas hot plugable et les 4 baies disque
sont prises donc je dois d'abord éteindre et retirer un disque avant
d'en ajouter un. (j'ai pas de spare-disk).
De plus, le système est sur du raid, comme tout le reste.

D'où ma question :
si je fais un raidstop sur le système ou sur le swap, que va-t-il se
passer ?

Ou faut-il que je fasse un truc genre :
raidsetfaulty /dev/md0 /dev/sda1
raidhotremove /dev/md0 /dev/sda1
pour ne tourner que sur un disque et donc pouvoir préparer l'autre ?


C'est ce que je dois faire avec mdadm pour avoir un truc propre. Chez
moi ça donne un truc comme ca :

mdadm --fail /dev/md0 /dev/sdd1 (raid 1 pour /boot)
mdadm --fail /dev/md1 /dev/sdd2 (raid 5 pour /swap)
mdadm --fail /dev/md2 /dev/sdd5 (raid 5 pour /)

Cette première étape est importante pour moi, car elle permet au mdadm
de basculer /boot et /swap du disque "faulty" vers le disque de spare.
En effet, en cas de défaillance d'un disque, mdadm ne voit un problème
que si il essaye de lire ou écrire dessus. Ça se produit surtout sur /,
/swap et /boot sont épargnés en général. Il faut donc les marquer
"faulty" à la main, pour que le disque de spare soit utilisé
complétement, et que le disque "faulty" ne soit plus utilisé du tout.

Ensuite, on fait un remove pour virer le disque des différents volumes
RAID :

mdadm --remove /dev/md0 /dev/sdd1
mdadm --remove /dev/md1 /dev/sdd2
mdadm --remove /dev/md2 /dev/sdd5

Il est alors possible de mettre un nouveau disque, de le partitionner
comme les autres, et de faire un add :

mdadm --add /dev/md0 /dev/sdd1
mdadm --add /dev/md1 /dev/sdd2
mdadm --add /dev/md2 /dev/sdd5

Dans le cas qui m'interesse, le disque ajouté prend tout seul le rôle de
disque de spare, puisque le disque de spare a pris le rôle du disque
actif "faulty".

Et si je fais ça, le raid ne va-t-il pas repartir au reboot sur le
nouveau disque avant que j'aies pu le formater ?
(parce que je suppose que ce n'est pas automatique ...)


il faut, autant que je sache, que ton disque ait le bon formatage, ce
n'est pas raidtools qui va le faire.

Pour éviter ça, puis-je commenter le disque à changer dans la raidtab ?
Donc un truc de ce genre :

raiddev /dev/md1
raid-level 1
nr-raid-disks 1
nr-spare-disks 0
persistent-superblock 1
device /dev/sdb6
raid-disk 0
# device /dev/sdc5
# raid-disk 1


je ne m'y risquerai pas, le mieux c'est de le formater sur une autre
machine pour l'installer "prêt à l'emploi" dans la machine défecteuse.

Bon, j'ai remonté mon serveur de test et je vais pouvoir commencer les
tests ... Mais si quelqu'un a une expérience, ce serait intéressant.


pas avec raidtools...

Pour la manip consistant à augmenter la taille des disques, je ne sais
pas faire.


J'immagines que si le raid1 tient sur 2 partitions de tailles
différentes, il utilisera l'espace du plus petit disque.


oui

Si c'est le cas alors je devrais pouvoir remplacer un des 2 disques par
un plus gros, attendre que la reconstruction soit finie, puis changer
l'autre disque ... non ?


j'y ai pensé, mais il a de bonnes chances de rester cantonné au petit
espace initial si personne ne vient lui dire qu'il peut s'agrandir.


patpro

--
http://www.patpro.net/


Avatar
Nicolas.MICHEL
patpro ~ Patrick Proniewski wrote:

In article <1hs570b.m0eapv1q3h73fN%,
(Nicolas MICHEL) wrote:

Pour ce que j'ai compris de mdadm, c'est une appli qui peut être
utilisée conjointement aux raidtools, donc si les commandes changent
l'action devrait être similaire ... ?


Je ne sais pas. D'après mes lectures rapides mdadm est l'évolution de
raidtools, donc peut être que certaines choses sont plus simples avec le
premier.


A y regarder de plus prêt, c'est pas pareil : pas de raidtab.
Comme mon serveur de test (FC3) n'avait que mdadm, j'ai joué avec un
moment puis relancé une install de RH9 pour avoir les raidtools. Zut.

Ceci dit, on s'y attache vite à ce mdadm, il est bien :)

C'est ce que je dois faire avec mdadm pour avoir un truc propre. Chez
moi ça donne un truc comme ca :

mdadm --fail /dev/md0 /dev/sdd1 (raid 1 pour /boot)
[snip]

mdadm --remove /dev/md0 /dev/sdd1
[snip]

mdadm --add /dev/md0 /dev/sdd1


Oui, c'est en effêt un peu ce que j'ai fait hier soir dans mes tests.
J'ai utilisé une autre syntaxe, mais la tienne est plus claire.

je ne m'y risquerai pas, le mieux c'est de le formater sur une autre
machine pour l'installer "prêt à l'emploi" dans la machine défecteuse.


Sauf que des serveurs libres avec ce type de scsi, j'en ai aucun.
Il va faloir que j'y aille comme ça, mais avant de toucher au serveur je
vais me préparer au max.

j'y ai pensé, mais il a de bonnes chances de rester cantonné au petit
espace initial si personne ne vient lui dire qu'il peut s'agrandir.


On verra, je vous ferai part de mes tests.

Merci Patrick :)

--
Nicolas


Avatar
patpro ~ Patrick Proniewski
In article <1hs6kvw.1agmxe9edkmkzN%,
(Nicolas MICHEL) wrote:

je ne m'y risquerai pas, le mieux c'est de le formater sur une autre
machine pour l'installer "prêt à l'emploi" dans la machine défecteuse.


Sauf que des serveurs libres avec ce type de scsi, j'en ai aucun.
Il va faloir que j'y aille comme ça, mais avant de toucher au serveur je
vais me préparer au max.


alors a ta place, je ferai un truc dans ce genre :

- relevé de la table de partition
- extinction du serveur
- extraction de tous les disques
- reboot sur CD avec disque(s) dur(s) vierge(s) dans la machine
- formatage ad-hoc du ou des disques vierges
- remontage du serveur avec son disque OK et un disque vierge
- boot, et reconstruction du RAID.

Dans la foulée, prépare toi un disque de spare formaté comme il faut,
que tu garderas dans une armoire.

patpro

--
http://www.patpro.net/


Avatar
Nicolas.MICHEL
patpro ~ Patrick Proniewski wrote:

alors a ta place, je ferai un truc dans ce genre :

- relevé de la table de partition
- extinction du serveur
- extraction de tous les disques
- reboot sur CD avec disque(s) dur(s) vierge(s) dans la machine
- formatage ad-hoc du ou des disques vierges
- remontage du serveur avec son disque OK et un disque vierge
- boot, et reconstruction du RAID.

Dans la foulée, prépare toi un disque de spare formaté comme il faut,
que tu garderas dans une armoire.


De toutes façon, ma première étape sera un bon backup système.
Donc ensuite si j'ai le moindre problème je peux formater puis
restaurer.

Mais quite à avoir du raid, autant l'exploiter :
A part une extinction de 10 minutes pour changer les disques je devrais
pouvoir tout faire durant l'exploitation du serveur.
--
Nicolas