Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

  • État Nouveau
  • Pourcentage achevé
    0%
  • Type Anomalie
  • Catégorie Matériel → Disques externes
  • Assignée à Personne
  • Système d'exploitation Freebox Server V7 (Delta)
  • Sévérité Haute
  • Priorité Très Basse
  • Basée sur la version 4.8.17.1
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes
  • Privée
Concerne le projet: Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)
Ouverte par Thierry2100 - 18/12/2024
Dernière modification par Thierry2100 - 18/12/2024

FS#39915 - Erreur lors du démarrage du RAID

Bonjour,
A cause de la version 4.8.17 buggée de mon serveur Delta qui nous a donné l’impossibilité de voir nos disques, la version corrigée 4.8.17.1 me permet de les voir à nouveau.

Cependant mon RAID 5 est impossible à démarrer.
Pire, depuis j’ai un disque en Disque de Remplacement, un en état dégradé et les deux autres en actifs.

Je dispose de 4 disques de 5To.

Comment réparer tout ça, alors que tout fonctionnait bien avant ce bug ?

Merci

nbanba a commenté le 18.12.2024 10:59

Bonjour

Ça ne sent vraiment pas bon cette histoire … surtout dans une box sans accès root au système / kernel de la box

Alors perso si j'étais vous je sortirai les disques de la box sans faire d'autres opérations puis :

1) je lirais l'article : "When things goes wrong" de ce lien : (n'utilisez pas les commandes, lisez juste le principe)
https://archive.kernel.org/oldwiki/raid.wiki.kernel.org/index.php/RAID_Recovery.html

2) je prendrait connaissance (approfondie) de la doc suivante :
https://docs.kernel.org/admin-guide/md.html

3) je brancherait les 4 disques sur une machine Linux et je réparerai manuellement

La dernière fois que j'ai du le faire (suite à la perte d'un switch PCIE sur lequel était branché 3 grappes de disques NVME), voici la procédure que j'ai utilisé

### RAID 5 REBIND : 
0) see:
https://docs.kernel.org/admin-guide/md.html
https://archive.kernel.org/oldwiki/raid.wiki.kernel.org/index.php/RAID_Recovery.html

1) backup the superblock info
mdadm --examine /dev/nvme[0-3]n1p1 >raid.status.p1
mdadm --examine /dev/nvme[0-3]n1p2 >raid.status.p2
mdadm --examine /dev/nvme[0-3]n1p3 >raid.status.p3

2) find the device with the most AAAA (or AAA. or AA.. or badly A...)
grep active raid.status.p* | grep A

3) find the nurber of write events on each drives for each partions :
mdadm --examine /dev/nvme[0-3]n1p3 |egrep 'Event|/dev/nvme'
mdadm --examine /dev/nvme[0-3]n1p1 |egrep 'Event|/dev/nvme'
mdadm --examine /dev/nvme[0-3]n1p2 |egrep 'Event|/dev/nvme'

4) stop the array 
mdadm --stop /dev/md125
mdadm --stop /dev/md126
mdadm --stop /dev/md127

5) if number of events between drives in LESS than 50 do :
mdadm --assemble --force /dev/md125 /dev/nvme[0-3]n1p2
mdadm --assemble --force /dev/md126 /dev/nvme[0-3]n1p3
mdadm --assemble --force /dev/md127 /dev/nvme[0-3]n1p1

6) wait for stable UUU_ if the 4th device don't comes up by itself, readd it : 
mdadm --manage /dev/md125  --add /dev/nvme0n1p2
mdadm --manage /dev/md126  --add /dev/nvme0n1p3
mdadm --manage /dev/md127  --add /dev/nvme0n1p1

7) if that failed retry assembling the raid5 with only 3 disk and re-add the 4th disk

8) WARNING (no return back, if failed => data loss) if all failed try to recreate the raid5 array 
ex not from this server: 
mdadm --create --assume-clean --level=6 --raid-devices=10 --size=1953513344 /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 missing missing /dev/sdl1 /dev/sdk1 /dev/sdj1  



PS 1: le nombre de 'write events' entre les différents disques doit être inférieur à 50 sinon 'mdadm –assemble –force …' ne fonctionne pas.

PS2: en altérant les données des superblock avec 'dd' on peut écraser le compteur de write (DANGEREUX, mais qq fois il faut mieux remonter une grappe avec des données un peu altérés que de ne pas remonter la grappe tout court)

PS3 : À moins qu'un sysop linux confirmé avec expertise stockage de chez Free n'accède au shell root de votre box pour réparer à la main (avec la procédure ci dessus ???), je pense que vous allez devoir réparer tout seul (enfin si vous tenez aux data sur les disques)
Donc à votre place je m'empresserait de sortir les disques de la box (en repérant soigneusement leurs positions slot_sata/serial_number, ça peut servir si un des superblock à morflé et est illisible) et surtotu EVITEZ les reboot de la box (ça augmente les compteurs de 'write events')

Pour terminer, ATTENTION en utilisant la procédure fournie ici, vous devez être à l'aise avec le shell Linux, le kernel, le stockage et surtout vous devez comprendre parfaitement ce qu'elle fait pourquoi et comment avant de l'utiliser.

Cordialement
nbanba

nbanba a commenté le 18.12.2024 11:08

Bonjour

Aussi si vous avez la voluméterie suffisante ailleurs, commencez par backup 100% des 4 disques :

dd if=/dev/disk-a-backup of=/path/image-disque.dd bs=1G status=progress

Let's assume the 4 disks are /dev/sd[efg] and backup path is /mnt/bigshare.
Command to use to backup would be :

dd if=/dev/sde of=/mnt/bigshare/image-sde.dd bs=1G status=progress
dd if=/dev/sdf of=/mnt/bigshare/image-sdf.dd bs=1G status=progress
dd if=/dev/sdg of=/mnt/bigshare/image-sdg.dd bs=1G status=progress
dd if=/dev/sdh of=/mnt/bigshare/image-sdh.dd bs=1G status=progress

After, you can try to rebuild the raid based on the image files you create without using the physical drives which can let you recover data and test the RAID recovery process before using it on the physical drives.

Regards
nbanba

Merci pour votre réponse rapide.
Hélas je n’y connais rien en Linux
Je crains de perdre toutes mes données.

J’espère qu’un dev aura une solution à me proposer.
Encore merci

nbanba a commenté le 18.12.2024 20:00

Bonjour

Pour commencer, désolé pour le passage du français à l'anglais dans mon dernier message, je n'ai pas l'habitude d'écrire des commentaires techniques en français, désolé !

Pour répondre à votre dernier retour, dans le cas ou vous devrez réparer tout seul (probabilitée supérieur à 90%), surtout NE RE-DÉMARREZ PAS INOPINÉMENT la FREEBOX DELTA même et surtout si demandé par le 3244
Ne rebootez la box que si demandé pas certains devs de ce forum maitrisant Linux comme Marios Makassikis @mmakassikis ou Anis Astier @aastier (il y en a probablement d'autres, mais personellement je ne ferais confiances qu'au 2 personnes citées).

Et en toute fin de course, si les données sont critiques et que le problème n'a pas été résolu ici, contactez moi je pourrais éventuellement tenter de remonter manuellement la grappe raid de ~15 Terra effectifs et de la réparer, voir au pire d'en faire des low level backups et d'en extraire tout octet de données présent et encore accessible.

Si besoin, n'hésitez pas à me contacter, on essayera de trouver une solution (je connais un peu linux et le stockage) et surtout je dispose d'un LAB équipé avec du matériel permettant de travailler sur ce type de problèmes.

Bien cordialement
nbanba

Merci nbanba mais hélas j’ai déjà rebooté à plusieurs reprises le serveur, déconnectés les disques (ils sont dans un boîtier externe, les 5To ne rentrant pas dans la box)

Ça signifie quoi « disque de remplacement » ?

nbanba a commenté le 19.12.2024 10:17

Bonjour

Disque de remplacement (ou de 'spare') est une fonctionnalité de 'multi-devices' le logiciel gérant le software RAID permettant d'avoir 1 ou plusieurs disques dans la grappe prêts à prendre le relais tout seuls si un disque devenait défaillant.

Cependant, ce terme est également utilisé lorsqu'un disque est 'mal sorti' de la grappe (encore présent en status 'failed' dans la grappe) et que ce disque est débranché physiquement puis rebranché et de nouveau détecté (c'est également ce phénomène qui se passe quand on reboot la box avec un disque en failed dans la grappe raid, le disque est redetecté au reboot)

Il faut faire 2 choses :
- retirer proprement de la grappe le disque en failed
- re-add le disque noté 'spare' ou remplacement dans la grappe

Pour faire ça, je vous invite à lire (intégralement) le contenu de ce ticket ou je décrit la procédure depuis l'API FreeboxOS (et d'autres expliquent comment faire en mode graphique, ce que je ne sais pas faire)
https://dev.freebox.fr/bugs/task/39812

Par contre, j'utilise des disques de 8T DANS la box donc pour ma compréhension de vos dires:
Vous avez 1 boitier externe branché en USB avec plusieurs disques dedans ?
La Freebox voit chacun des disques du boitier ? (la box voit les disques avec la marque des disques ou avec la marque du boitier ?)
Et vous avez monter le RAID dans FreeboxOS ? pas dans l'interface de gestion du boitier, c'est bien ça ?

En vous remerciant d'avance
Cordialement
nbanba

PS: Si j'ai bien compris, alors … en mettant 1 disque 2,5'' autre que ceux du RAID dans la Delta on peut installer une VM Linux
en passant le port USB à la VM, on pourrait réparer la grappe RAID depuis la VM sans sortir les disques ni de chez vous ni de leur boitier …

nbanba a commenté le 19.12.2024 10:25

Bonjour

Le PS précédent est le point le plus important !
En passant les disques à une VM Linux dont on a le contrôle en 'root' et sur laquelle on peut installer des tools (genre mdadm, testdisk, ddrescue, etc…), on est en mesure de réparer la grappe RAID manuellement grace à l'accès root au driver multi-device
Et à priori depuis un Linux sur lequel je suis root, je dois savoir faire, contrairement à la freebox qui ne me donne pas d'accès root au kernel / driver (peut-être "heureusement" d'ailleurs)

Cordialement
nbanba

Merci pour toutes vos précisions.
Non mes 4 disques sont en Sata. J’ai pris 4 câbles Sata courts reliés à un boîtier externe qui possède sa propre alimentation électrique. Comme mes disques de 5To sont trop épais pour entrer dans le boîtier du serveur delta, ils sont donc en extérieur.
Cela fonctionne ainsi depuis très longtemps jusqu’à cette foutue mise à jour qui m’a tout flingué !

Je vais voir si j’ai un ami qui maîtrise Linux et le faire venir.

Encore merci pour votre aide. Dommage qu’un dev ne vienne pas aussi à ma rescousse…

nbanba a commenté le 19.12.2024 20:48

Bonjour

Merci pour votre retour.
Ok je comprends mieux la topologie du stockage que vous utilisez.
Cependant le fait que les cycles d'alimentation électrique des disques soient indépendants de celui de la box peut poser problème en cas de crash même si au quotidien c'est probablement mieux et garanti assez de courant pour les HDD (voir + de courant que la box ce qui est nécessaire pour certains gros disques ou certains disques rotatifs travaillant à 10000 tours/minutes ou +).

Pour réparer la grappe raid il faut donc un serveur de test sous Linux disposant de 4 ports SATA libres.
Aussi si ce serveur dispose de + de 20T de libre, il sera possible de faire une image de chaque disques (backup) puis de travailler avec ces images et non avec les disques physiques jusqu'à reconstruction de la grappe.

Concernant une de vos connaissance maîtrisant Linux, on parle ici de reconstruire du stockage HS ce qui est plutôt délicat et assez risqué pour les données ⇒ prenez quand même quelques précautions: ne cherchez pas quelqu'un disant connaître Linux mais une personne connaissant réellement Linux (soit quelqu'un dont c'est le métier, genre un "SYSOPS LINUX option storage" avec plus de 5 ans d'expérience à ce poste dans une entreprise du monde de la tech)

PS: d'ici réparation de la grappe essayez de tenir un changelog de toutes les actions effectuées sur la grappe raid (avec date, heure, description + but de l'opération)

Et en dernier recours, contactez moi

Cordialement
nbanba

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche