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

  • État Nouveau
  • Pourcentage achevé
    0%
  • Type Anomalie
  • Catégorie Freebox OS → Interface Web
  • 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.15
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes
  • Privée

FS#39812 - URGENT ! Anomalie RAID 5. Impossible de resynchroniser.

L’assistance n’a pas de solution pour moi. Je les ai contacté le 14 octobre.
Je viens de rédiger un message détaillé et votre serveur vient de tout perdre avec un message wrongtoken !

EN GROS J’ai un gros problème avec mon RAID 5 sur Freebox Delta.
4 disques 2 TO. 6 TO de données de sauvegarde.
1 disque en panne. J’en achète un autre OK et testé.
Je le change. L’OS le reconnait et permet de le formater. Le RAID 5 ne veut pas le reconnaitre.
RAID : Affiche 1 disque manquant. Erreur à l’activation. Impossible d’ajouter le 4ème disque.

Résultat, 6 TO de sauvegarde précieuses inaccessibles.

Comment récupérer mes données et rétablir la synchronisation du RAID 5 ?

brutal69 a commenté le 04.11.2024 16:06

Copie d'écran Array RAID (valable 30j)
https://transfert.free.fr/D13cfzb

brutal69 a commenté le 04.11.2024 16:16

Copie écran des 4 disques reconnus (valable 30j)
https://transfert.free.fr/MsEMzVp

nbanba a commenté le 05.11.2024 18:08

Bonjour

Déjà pour le wrong token, si vous utilisez Firefox ou Chrome il suffit de faire flèche retour arrière dans le navigateur et vous retrouverez en cache ce qui était tapé dans la zone de commentaire (je ne sais pas si ça fonctionne avec les navigateurs web de Windows type internet explorer ou edge, microsoft ne fais jamais rien comme tout le monde ni jamais rien de bien d'ailleurs).

Pour votre soucis, normalement avec 3 disques la grappe fonctionne en mode dégradée (ne pas trop la solliciter pour éviter la perte d'un second disque)

mais avant tout, il faudrait essayer d'avoir plus de détail, et notamment le RaidArray object soit l'output de :

GET /api/v12/storage/raid/

ensuite il faut en déduire le RaidMember concerné puis le RaidDisk concerné.
Ici, RaidMember et RaidDisk sont des objets JSON composant l'objet RaidArray

Avez vous remove le 'faulty' device de la grappe raid (pas le disque de la box, j'ai bien compris que vous l'aviez changé physiquement, mais au niveau logiciel, il faut retirer de la grappe le disque en erreur avant de changer le disque)

1) stop array (sur ma box ça donne):
l'objet JSON de type RaidArray envoyé doit contenir 'state:stopped'

PUT /api/v12/storage/raid/0

2) remove faulty

DELETE /api/v12/storage/raid/O/members/faulty

3) remove disk physically from Freebox and put new dick

4) re-add disk dans l'array (envoyez un RaidMember object)

PUT /api/v12/storage/raid/0/members

5) start l'array :
l'objet RaidArray envoyé doit contenir 'state:running'

PUT /api/v12/storage/raid/0

Si ça ne fonctionne pas et que le disque apparait en spare, vous pouvez :
Re-add out-of-sync disk :

POST /api/v12/storage/raid/0/members/addspares

Et vous pouvez essayer de force restart array :

POST /api/v12/storage/raid/0/forcestart

PS: chez moi l'object JSON RaidArray ressemble à ça :

 
18:43:24 nba@14RV-SERVER-739:~$ cd fbxapi
18:43:27 nba@14RV-SERVER-739:~/fbxapi$ . loginfbx 
18:43:33 nba@14RV-SERVER-739:~/fbxapi$ get_freebox_api storage/raid/0 | jq
{
  "success": true,
  "result": {
    "degraded": false,
    "raid_disks": 4,
    "next_check": 0,
    "sync_action": "idle",
    "level": "raid5",
    "uuid": "71decdd1-9887-e82e-c93f-08c77fb864f6",
    "sysfs_state": "clear",
    "id": 0,
    "sync_completed_pos": 0,
    "members": [
      {
        "total_bytes": 8000000000000,
        "active_device": 3,
        "id": 2000,
        "corrected_read_errors": 0,
        "array_id": 0,
        "disk": {
          "firmware": "SVQ02B6Q",
          "temp": 42,
          "serial": "S5SSNF0T203815L",
          "model": "Samsung SSD 870 QVO 8TB"
        },
        "role": "active",
        "sct_erc_supported": true,
        "sct_erc_enabled": true,
        "dev_uuid": "792bc37e-6ab9-41d1-f97c-fed4b0accdb1",
        "device_location": "sata-internal-p0",
        "set_name": "FBX24T",
        "set_uuid": "71decdd1-9887-e82e-c93f-08c77fb864f6"
      },
      {
        "total_bytes": 8000000000000,
        "active_device": 1,
        "id": 3000,
        "corrected_read_errors": 0,
        "array_id": 0,
        "disk": {
          "firmware": "SVQ02B6Q",
          "temp": 36,
          "serial": "S5SSNF0T203885P",
          "model": "Samsung SSD 870 QVO 8TB"
        },
        "role": "active",
        "sct_erc_supported": true,
        "sct_erc_enabled": true,
        "dev_uuid": "3466f047-bfbb-ec3a-3c46-b4f3adfef98f",
        "device_location": "sata-internal-p1",
        "set_name": "FBX24T",
        "set_uuid": "71decdd1-9887-e82e-c93f-08c77fb864f6"
      },
      {
        "total_bytes": 8000000000000,
        "active_device": 0,
        "id": 4000,
        "corrected_read_errors": 0,
        "array_id": 0,
        "disk": {
          "firmware": "SVQ02B6Q",
          "temp": 40,
          "serial": "S5SSNF0T203878Y",
          "model": "Samsung SSD 870 QVO 8TB"
        },
        "role": "active",
        "sct_erc_supported": true,
        "sct_erc_enabled": true,
        "dev_uuid": "765fd2e0-f6f3-d2dc-3a98-c579fae9b99d",
        "device_location": "sata-internal-p2",
        "set_name": "FBX24T",
        "set_uuid": "71decdd1-9887-e82e-c93f-08c77fb864f6"
      },
      {
        "total_bytes": 8000000000000,
        "active_device": 2,
        "id": 5000,
        "corrected_read_errors": 0,
        "array_id": 0,
        "disk": {
          "firmware": "SVQ02B6Q",
          "temp": 36,
          "serial": "S5SSNF0T203864V",
          "model": "Samsung SSD 870 QVO 8TB"
        },
        "role": "active",
        "sct_erc_supported": true,
        "sct_erc_enabled": true,
        "dev_uuid": "c17b6f02-1c05-a072-5a39-c29163d66f3a",
        "device_location": "sata-internal-p3",
        "set_name": "FBX24T",
        "set_uuid": "71decdd1-9887-e82e-c93f-08c77fb864f6"
      }
    ],
    "array_size": 24000000000000,
    "state": "running",
    "sync_speed": 0,
    "name": "FBX24T",
    "check_interval": 0,
    "disk_id": 6000,
    "last_check": 1656092640,
    "sync_completed_end": 0,
    "sync_completed_percent": 0
  }
}
18:43:43 nba@14RV-SERVER-739:~/fbxapi$ 

Si on regarde bien cet object 'RaidArray' est composé de 'members' eux même composés de 'disk'
On en déduit donc les objets 'RaidMember' et RaidDisk attendus par la freebox :

RaidMember (ici le premier member, pour le 3è mettre dans la commande [2] au lieu de [0])

18:48:57 nba@14RV-SERVER-739:~/fbxapi$ get_freebox_api storage/raid/0 | jq .result.members[0]
{
  "total_bytes": 8000000000000,
  "active_device": 3,
  "id": 2000,
  "corrected_read_errors": 0,
  "array_id": 0,
  "disk": {
    "firmware": "SVQ02B6Q",
    "temp": 42,
    "serial": "S5SSNF0T203815L",
    "model": "Samsung SSD 870 QVO 8TB"
  },
  "role": "active",
  "sct_erc_supported": true,
  "sct_erc_enabled": true,
  "dev_uuid": "792bc37e-6ab9-41d1-f97c-fed4b0accdb1",
  "device_location": "sata-internal-p0",
  "set_name": "FBX24T",
  "set_uuid": "71decdd1-9887-e82e-c93f-08c77fb864f6"
}
18:49:06 nba@14RV-SERVER-739:~/fbxapi$

et RaidDisk (lui même dépendant du RaidMember):

18:49:06 nba@14RV-SERVER-739:~/fbxapi$ get_freebox_api storage/raid/0 | jq .result.members[0].disk
{
  "firmware": "SVQ02B6Q",
  "temp": 42,
  "serial": "S5SSNF0T203815L",
  "model": "Samsung SSD 870 QVO 8TB"
}
18:49:31 nba@14RV-SERVER-739:~/fbxapi$ 

Afin de bien comprendre ce que vous faites (pour ne rien casser), je vous invite à lire et à comprendre 100% du chapitre 'storage' de la documentation développeur de la Freebox présente ici :

https://mafreebox.freebox.fr/#Fbx.os.app.help.app

Aussi des bases sur la gestion du stockage sous Linux avec 'multi-device' (mdadm) qui est recommandé https://docs.kernel.org/admin-guide/md.html.

Cordialement
nbanba

Bbbend2 a commenté le 06.11.2024 19:17

Avant tout, rappelons un point essentiel : un système RAID ne remplace pas une sauvegarde. Bien que le RAID 5 offre une tolérance de panne en permettant l’accès aux données même si un disque est défaillant, il ne protège pas contre la perte complète de données. Assurez-vous donc d’avoir une sauvegarde indépendante de vos données importantes.

### Étapes pour réparer un RAID 5 sur Freebox OS

1. Vérifiez l’état du RAID

 Connectez-vous à l’interface Freebox OS et allez dans la section de gestion du RAID pour vérifier l’état de la grappe RAID 5. Vous devriez voir le disque manquant, remplacé ou défaillant signalé dans la configuration actuelle.

2. Remplacez le disque défaillant

 Si ce n’est pas déjà fait, retirez le disque dur défaillant et insérez un nouveau disque de capacité équivalente ou supérieure dans l’emplacement correspondant.

3. Ajoutez le nouveau disque au RAID

 Dans Freebox OS, vous devriez voir une icône en forme de disque avec un signe « + ». Cliquez dessus pour ajouter le nouveau disque à la grappe RAID 5.

4. Démarrez la reconstruction du RAID

 Une fois le disque ajouté, Freebox OS commencera automatiquement la reconstruction du RAID pour réintégrer le nouveau disque à la grappe et restaurer la tolérance de panne. Ce processus peut prendre plusieurs heures, en fonction de la capacité du RAID et des performances des disques.

5. Surveillez la progression

 Suivez l’avancement de la reconstruction dans l’interface Freebox OS. Évitez d’accéder aux données pendant ce processus pour ne pas ralentir la reconstruction.

6. Vérifiez l’intégrité du RAID

 Une fois la reconstruction terminée, assurez-vous que la grappe RAID est de nouveau opérationnelle et que tous les disques sont en bon état.

En suivant ces étapes, vous devriez pouvoir restaurer votre RAID 5 sur Freebox OS et rétablir la tolérance de panne.

nbanba a commenté le 07.11.2024 11:10

Bonjour

Merci @Bbbend2… Je ne savais pas le faire dans freeboxOS !

Cordialement
nbanba

brutal69 a commenté le 07.11.2024 16:15

merci pour ces infos mais le retour après wrongtoken ne me ramène aucun cache. Je perd tout ma saisie. ici aussi.

brutal69 a commenté le 07.11.2024 16:18

Merci @Bbbend2 mais j'ai déjà eu ces infos et l'étape 3 "Ajouter un nouveau disque" n'est pas accessible.
L'icone "Activer cet Array Raid" se termine en erreur et désactive le bouton "Ajouter un disque".

brutal69 a commenté le 07.11.2024 16:19

Je suis donc bloqué à l'étape 2

brutal69 a commenté le 07.11.2024 16:22

Merci @nbanba pour tes infos mais je ne suis pas développeur freebox.
Comment obtenir une console pour entrer les commandes http (GET PUT…) ?
Comment obtenir une console pour entrer les ordres linux ?

J'ai essayé putty (client telnet et https) mais je n'arrive pas à le connecter avec l'adresse https de ma freebox et le port associé à freebox os.

brutal69 a commenté le 07.11.2024 16:27

Pour info @Bbbend2, l'erreur lors de l'étape 3 est
"Erreur RAID : Erreur lors du démarrage du raid"
c'est à dire j'ai planté mais je te dirais pas pourquoi.

brutal69 a commenté le 07.11.2024 16:33

J'ai eu un problème similaire début septembre où les 6 étapes décrites ci-dessus se sont passées sans problème.

nbanba a commenté le 07.11.2024 18:03

Bonjour

Si vous avez un PC sous Linux, vous pouvez utiliser mon projet qui permet d'avoir plein de fonctions requettant l'API Freebox directement dans la ligne de commande BASH

Le projet est ici : https://github.com/nbanb/fbx-delta-nba_bash_api.sh ou encore accessible dans la nouvelle organisation qui vient d'être créé pour l'héberger ici : https://github.com/freeboxos/freeboxos-bash-api

Une fois que vous avez télécharger la library et créé une application, vous pouvez utiliser les fonctions de type 'frontend' comme des commandes directement depuis le terminal bash (les fonctions 'backend' sont pour les scripts), par exemple :

18:36:52 nba@14RV-SERVER-681:~/fbxapi$ . loginfreebox
18:37:04 nba@14RV-SERVER-681:~/fbxapi$ list_dhcp_static_lease 

				DHCP ASSIGNED STATIC LEASES:

#:		id:			mac:			ip: 		state: 		hostname:
0:	3C:FD:FE:1A:66:40	3C:FD:FE:1A:66:40	192.168.100.25  	offline  	3C:FD:FE:1A:66:40
...
7:	60:F2:62:B6:93:1F	60:F2:62:B6:93:1F	192.168.100.55  	offline  	lap-nba
8:	14:DD:A9:D3:E8:B6	14:DD:A9:D3:E8:B6	192.168.100.59  	offline  	14:DD:A9:D3:E8:B6
...
10:	34:27:92:80:29:7C	34:27:92:80:29:7C	192.168.100.88  	online  	14RV-DEVIALET
11:	8C:97:EA:55:BB:B6	8C:97:EA:55:BB:B6	192.168.100.89  	online  	14RV-FBXAP
...
13:	38:AF:29:55:D3:0E	38:AF:29:55:D3:0E	192.168.100.95  	online  	14RV-CAM
14:	34:27:92:E5:76:96	34:27:92:E5:76:96	192.168.100.96  	online  	14RV-FBXCAM
15:	8C:DC:D4:C9:13:A1	8C:DC:D4:C9:13:A1	192.168.100.100  	offline  	8C:DC:D4:C9:13:A1

Ou encore lister les fichiers …

		
18:37:45 nba@14RV-SERVER-681:~/fbxapi$ ls_fs /FBX24T/dl
idx: 0    hidden  dir	20241102-18:03:12	size: 4 KB	name: .
idx: 1    hidden  dir	20241104-22:32:55	size: 4 KB	name: ..
idx: 2  	  dir	20240303-17:32:54	size: 4 KB	name: test3
idx: 3  	  dir	20240303-18:13:25	size: 4 KB	name: vm0
idx: 4  	  dir	20240603-06:58:19	size: 4 KB	name: vm1
idx: 5  	  dir	20230102-16:21:36	size: 4 KB	name: vm2
idx: 6  	  dir	20221222-17:21:22	size: 4 KB	name: vm3
idx: 7  	  dir	20221223-13:17:24	size: 4 KB	name: vm4
idx: 8  	  dir	20221227-17:30:28	size: 4 KB	name: vm5
idx: 9  	  dir	20230113-09:04:02	size: 4 KB	name: vm6
idx: 10  	  dir	20230218-17:09:56	size: 4 KB	name: vm7
idx: 11  	  dir	20230726-20:05:35	size: 4 KB	name: vm8
idx: 12  	  dir	20240304-21:49:55	size: 4 KB	name: vm9
idx: 13  	  dir	20240603-07:01:43	size: 4 KB	name: vm10
idx: 14  	  dir	20240304-21:55:28	size: 4 KB	name: vm11
idx: 15  	  dir	20240304-21:59:12	size: 4 KB	name: vm12
idx: 16  	  dir	20240603-07:00:30	size: 4 KB	name: vm13
idx: 17  	  dir	20240409-22:12:40	size: 4 KB	name: vm14
idx: 18  	  dir	20240409-22:12:42	size: 4 KB	name: vm15
idx: 19  	  dir	20240409-22:13:00	size: 4 KB	name: vm113
idx: 20  	  file	20221210-17:54:41	size: 2 MB	name: 14RV-FSRV-01.qcow2.efivars
idx: 21  	  file	20241101-11:00:43	size: 849 KB	name: debian-12.5.0-arm64-DVD-1a.iso
idx: 22  	  file	20221218-02:08:31	size: 438 MB	name: Fedora-Cloud-Base-36-1.5.aarch64.qcow2
idx: 23  	  file	20241102-18:03:12	size: 849 KB	name: takeout_tZZ.tgz

Bref, je ne vais pas réécrire le README.md qui est bien détaillé mais en gros les fonctions pour faire les get / post / put / delete sont

GET : get_freebox_api
POST: add_freebox_api
PUT : update_freebox_api
DELETE: del_freebox_api

Il existe aussi les 2 alias suivant plus parlant pour PUT et POST :
put_fbx_api
post_fbx_api

Les fonctions n'ont besoin que de la fin de l'URL de l'API par exemple :

18:39:04 nba@14RV-SERVER-681:~/fbxapi$ get_freebox_api storage/disk
...

Et non de l'URL complète à savoir https://<freebox_url>/api/v12/storage/disk

Pour toutes les requêtes brut, la box renvoi du JSON et je vous recommande d'installer le parseur 'jq' : https://jqlang.github.io/jq/ pour une meilleur lisibilité

Si vous n'avez pas de machines sous Linux, 2 options s'offrent à vous :
1) installer un Linux dans une VM sous virtualbox par exemple
2) je ne connais pas Windows, mais depuis la version 10 le noyau NT est un noyau hybrid NT/Linux supportant un système s'appelant 'WSDL'. Ce système permet de déployer un Linux sur une machine windows à priori facilement (je ne l'ai jamais fait je n'ai pas de machines windows) de la manière suivante :
- Lancer en ADMINISTRATEUR un invite de command (touche windows + R puis tapper 'cmd' puis faire clic droit sur l'icone de 'cmd' et selectionner 'lancer en temps qu'administrateur)
- Tappez qqch comme :

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
wsl --list --online
wsl --install -d Debian12

Et vous devriez obtenir un "joli" linux dans votre windows ⇒ ensuite installez git et jq puis

user@wsdl-linux$ git clone  https://github.com/nbanb/fbx-delta-nba_bash_api.sh

La doc est dans le README.md (et je conseil de la lire à minima les parties permettant de créer une application et d'utiliser la library) et si vous n'avez pas de markdown reader permettant de récupérer les images en ligne, je vous conseil de regarder la doc (qui est illustrée) directement sur la page du projet sur github.

Cordialement
nbanba

nbanba a commenté le 08.11.2024 10:32

Bonjour

En fait je pense que tout est mieux expliquer ici: https://wiki.debian.org/InstallingDebianOn/Microsoft/Windows/SubsystemForLinux

que dans mon dernier post sur une techno que je ne maîtrise pas, et visiblement il faut activer WSL2 …

Cordialement
nbanba

nbanba a commenté le 08.11.2024 10:35

Bonjour

@brutal69 pesez à mettre à jour votre email dans les paramètres de ce forum, à chaque fois qu'on répond à ce ticket on à une erreur liée à votre mail :

Unhandled exception: Address in mailbox given [brutal69] does not comply with RFC 2822, 3.6.2.
This should never happen, please inform Flyspray Developers.

If you are an Administrator of this Flyspray installation you might enable temporarly! DEBUG_EXCEPTION in constants.inc.php for more details.

Merci
Cordialement
nbanba

brutal69 a commenté le 08.11.2024 13:06

OK. Et si j'ai un PC sous Windows ?

nbanba a commenté le 08.11.2024 14:00

Bonjour

Si vous n'avez pas de machines linux, vous pouvez installer un Linux dans une VM avec Virtualbox ou utiliser la fonctionnalité WSL de Windows qui permet d'installer un linux sous Windows.

Je ne connais pas le logiciel proposé par @Bbbend2 mais d'expérience si vous deviez sortir les disques de la box pour réparer la grappe raid dans une machine n'étant pas la box , je déconseille que cette machine soit sous un autre système que Linux et je déconseille de tenter de réparer une grappe raid multi-device avec un autre logiciel que multi-device lui même (mdadm)

Cordialement
nbanba

OK. Et si j'ai un PC sous Windows ?

Utilisez WSL pour avoir un BASH sur votre machine Windows

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche