RAID5 : reconstruction

Bonjour

J’ai monté il y a plus de 2 ans un RAID5 avec 4 disques durs, pilotés par un Ubuntu via VMWare.

Tout fonctionnait bien jusqu’à aujourd’hui. En lançant la VM, l’OS avait disparu (je soupçonne la defragmentation de la veille d’avoir fait de la casse).

Je réinstalle donc un Linux sur la VM, mdadm je m’apprête à reconstruire ma grappe.

Probléme : tout ne se passe pas comme je le pensais … et je crais avoir faire une belle betise >_<

le mdconf est configuré automatiquement

mdadm --examine --scan --verbose ARRAY /dev/md0 level=raid5 num-devices=4 UUID=b0e68bcd:ca637bf3:2c67ae2:5e7e931d spares=1 devices=/dev/sdd1,/dev/sdc1,/dev/sdb1,/dev/sda1

Je lance la commande mdadm -C /dev/md0 --level=5 raid-devices=4 /dev/sdd1 /dev/sdc1 /dev/sdb1/dev/sda1

Puis,je controle :

cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sda1[0] sdd1[4] sdc1[2] sdb1[1] 2930279808 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_] [>....................] recovery = 0.9% (9526816/976759936) finish=2455.7min speed=6562K/sec unused devices: <none>

Le process prenait 230.00000 plombes à s’executer.
J’ai regardé a nouveau les details :

[code]

root@tiste-desktop:~# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
root@tiste-desktop:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
unused devices:
root@tiste-desktop:~#
root@tiste-desktop:~#
root@tiste-desktop:~# mdadm --examine --scan --verbose
ARRAY /dev/md0 level=raid5 num-devices=4 UUID=b0e68bcd:ca637bf3:2c673ae2:5e7e931d
spares=1 devices=/dev/sdd1,/dev/sdc1,/dev/sdb1,/dev/sda1
root@tiste-desktop:~# mdadm --details /dev/sda1
mdadm: unrecognized option '–details’
Usage: mdadm --help
for help
root@tiste-desktop:~# mdadm --detail /dev/sda1
mdadm: /dev/sda1 does not appear to be an md device[/code]

Enfin, j’ai lancé un assemblage :

et pareil, le processus mettait super longtemps à s’executer…

DAns le doute, j’ai tout arrêté (meme la VM).

J’ai le sentiment qu’en recréant le disque, j’ai fait plus que réassembler la grappe : j’ai supprimé mes données et je vais repartir d’un disque virtuel vierge.
Est-ce cela ?

Si oui, est-ce vraiment tout perdu ? ou il y a un espoir de récuperer des données ?

Merci beaucoup

P.S. je n’aurai pas acces au Net pendant 15 jours, mais je reviendrai avec grand interet savoir ce qui s’est passé… et si j’ai effectivement fait une grosse c******

Je ne suis pas sur de bien comprendre : tu fait du raid sur une machine virtuelle, avec VMWARE ?!

J’imagine que tu as un dos dans le coin, qui, par hasard, aurait tout péter, pensant être chez lui ?

C’est normal, la reconstruction d’un raid est longue, en fonction de la taille des volumes, puisqu’il faut tout recalculer et écrire
M’enfin, on note surtout que tu as perdu un disque (le dernier, a priori) :

Bref, a mon avis, il te faut remettre un nouveau disque (ou valider que l’ancien est valide etc), et laisser faire la reconstruction

M’enfin, faire du raid sur VM, ça me semble toujours être une (très) mauvaise idée, parcque c’est au mieux contre productif

Bonjour

J’ai un raid logiciel qui est piloté par un Linux (Ubuntu), installé sur une VM (via VMWare)
je l’utilise de temps en temps pour faire du stockage (films, photos, etc … ). je ne recherche pas spécialement la performance, mais l’idée de base était de ne pas etre dépendant d’une carte controleur

Je ne comprends pas :confused:

Ok, j’aurais donc perdu un disque …
Quel outils ou moyen me permet de vérifier que ce disque est vraiment fichu (= bon pour la poubelle) ?

Sachant que je n’ai toujours pas accés à mes données, et que la reconstruction du raid était réalisée dans ce but, que dois-je faire afin de retrouver mes données ?
Un create -C ?
un assemble ?
Quelles sont les options à ma disposition ?

Vue les copies du code que j’ai réalisé, les résultats et les manipulations que j’ai fait, est-ce que je peux récupérer mes données ?
Autrement dit, est-ce que le fait d’avoir executé un Create (réalisé à 1%) a détruit mes données ou pas ?

Je vous remercie :slightly_smiling:

Si je regarde bien tu as au moins 2T à reconstruire, le temps de reconstruction se chiffre en dizaines d’heures ici. Tu n’aurais pas du interrompre le processus. Relance le et sois patient.

Bonsoir

Merci pour vos réponses.

Je souhaite récapituler pour ne pas faire de bourde.

  • J’ai un disque HS. Action à faire : rien.
  • Je lance la commande mdadm -C /dev/md0 --level=5 raid-devices=4 /dev/sdd1 /dev/sdc1 /dev/sdb1/dev/sda1 et j’attends
  • a la fin du processus, je retrouve toutes mes données

Correct ?

Questions subsidiaires : dans quel cas lancer un mdadm --assemble dans ma situation ?

Pourquoi fais tu un «create» au lieu d’un «assemble»? Il me semble qu’il te faut juste retirer le disque defectueux du raid (remove) puis rajouter le bon disque et et le raid se reconstruit. Un create me parait dangereux comme commande.

Justement, je crois que la boulette qui me mets en émoi vient de là : de la confusion “create/assemble” …

Donc, pour mon disque, je le “remove”, mais est-ce que j’ai un moyen de savoir ce qu’il a exactement ?

Et pour le Raid, je lance un “assemble” (je poste la commande exacte ce soir, à mon retour)

Re, voici la commande que je compte utiliser pour reconstruire mon raid.
mdadm --assemble --run /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Est-ce qu’il est absolument nécessaire de retirer le disque qui pose problème ? Comment puis-je savoir lequel exactement qui pose soucis ?

Non, lance et laisse agir. Commetu ne sais pas d’oùvient le souci, il te le dira si un des disques pose pbm

Ok, je lance.
si tout se passe bien, je pourrai bien retrouver mes données à la fin (il me suffira de faire un mount), si j’ai bien compris. Correct ?

Ben oui du moins on espère, le pbm du raid5 est que les données ne sont pas en totalité sur un seul disque donc tu ne peux pas retrouver les données sans reconstruire le raid. C’est pour cette raison que je préfère le raid1 (plus gourmand en disques).

tres vrai pour le raid1…
Le 5 m’avait plu pour la possibilité d’avoir un grand espace, en plus de la redondance

Ce soir, je lance l’assemblage et vous tiens au courant de l’evolution.

J’ai lancé la commande :

tiste@tiste-desktop:~$ mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 mdadm: failed to create /dev/md0 tiste@tiste-desktop:~$

Pour information, j’ai aussi lu le /proc/mdstat

[code]tiste@tiste-desktop:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d0 : inactive sdc12
976759936 blocks

unused devices: [/code]

D’aprés ce que je comprends, le md0, n’est pas créé… et il faut le créé
Pour cela, j’ai besoin de la commande mdadm -C /dev/md0 --level=5 raid-devices=4 /dev/sdd1 /dev/sdc1 /dev/sdb1/dev/sda1
Or, ca ne risque de pas détruire mes données ?

Là il faut lire le man, mdadm --create crée le raid mais ne détruit pas les données, il refait juste les tables. Si c’est le même matériel, cela ne devrait rien changer. Ensuite il met en cohérence les parités. En théorie donc tu devrais récupérer les données. Mais il faut lire le «man», je ne suis pas sûr de moi

linuxmanpages.com/man8/mdadm.8.php

[quote]Assemble
Assemble the parts of a previously created array into an active array. Components can be explicitly given or can be searched for. mdadm checks that the components do form a bona fide array, and can, on request, fiddle superblock information so as to assemble a faulty array.

Build
Build a legacy array without per-device superblocks.

Create
Create a new array with per-device superblocks. [/quote]

J’avoue que ce n’est guére explicite.
De même, je ne comprends pas bien la différence profonde entre crete et assemble

assemble suppose que les méta données (qui structurent le RAID) sont présentes, create doit les fabriquer. Je pense qu’elles sont mortes ici. Je pense également que si tu refabriques le raid, il va recréer les bits de parité à partir des données. Tu devrais récupérer celles qui sont intactes donc

Ok, je comprends mieux.

C’est le Build qui refabrique et “formate” le RAID, c’est bien cela.
En revanche, d’apres ce que je comprends, le create se charge donc de generer les bits de parité, l’array, sans porter atteinte à l’intégrité des données. Suis-je juste?

ben pour autant que j’ai bien compris, oui.

Finalement, j’ai réussi à lancer l’assemblage. Il fallait que j’arrete le raid. Meme si le processus de creation n’était pas terminé, il était quand meme activé.

L’assemblage est en cours et est très long.

Là où je butte à présent, mais c’est peut-être normal, est que je ne parviens pas à monter le lecteur /dev/md0.
J’ai un permission denied quand je veux éditer mon mdadm.conf (alors que je suis sudo )

tiste@tiste-desktop:~$ sudo mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
tiste@tiste-desktop:~$ cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid5 sda1[0] sdd1[4] sdc1[2] sdb1[1]
      2930279808 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
      [>....................]  recovery =  1.5% (15600884/976759936) finish=2886.3min speed=5547K/sec
      
unused devices: <none>


tiste@tiste-desktop:~$ sudo mdadm --detail --scan --verbose >> /etc/mdadm/mdadm.conf
bash: /etc/mdadm/mdadm.conf: Permission denied

Dans le même temps, j’ai voulu faire le montage du lecteur qui a échoué (je pense parce qu’il lui faut d’abord termier cet assemblage ? )

tiste@tiste-desktop:~$ sudo mdadm --examine /dev/md0
mdadm: No md superblock detected on /dev/md0.

tiste@tiste-desktop:~$ sudo mount /dev/md0 /mnt/
mount: you must specify the filesystem type

tiste@tiste-desktop:~$ sudo mount -t ext4 /dev/md0 /mnt/
mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so


tiste@tiste-desktop:~$ sudo fdisk -l /dev/md0
Disk /dev/md0: 3000.6 GB, 3000606523392 bytes
2 heads, 4 sectors/track, 732569952 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Hum, pas très bon signe tout ça… Laisse la reconstruction se terminer.