Pouvez-vous modifier la version des métadonnées sur un tableau existant?

21

Donc, grub nécessite la version 0.90 des métadonnées. Je me demande si je peux changer mes tableaux existants pour les utiliser au lieu de la valeur par défaut qui est 1.2. De cette façon, je n'ai pas besoin de réinstaller. Si oui, comment faire?

xénoterracide
la source

Réponses:

5

Le wiki GRUB confirme:

De plus, (à partir de 1.96 + 20080724) GRUB ne peut démarrer qu'à partir d'un RAID qui utilise un superbloc de métadonnées version 0.90 (c'est-à-dire créé avec l'option --metadata = 0.90 pour mdadm).

Curieusement, la page de manuel de mdadm dit

-e, --metadata =

Déclarez le style de superbloc (métadonnées de raid) à utiliser. La valeur par défaut est 0,90 pour --create et pour deviner pour d'autres opérations.

Je revérifierais mdadm -Q -D <device>pour en être certain.

Après cela, quel niveau RAID utilisez-vous? Le meilleur scénario auquel je peux penser pour un miroir (RAID 1) serait

  1. Prendre des sauvegardes
  2. Démonter le tableau 0
  3. Supprimer le périphérique A de la matrice 0 de npériphériques
  4. Zéro superbloc sur l'appareil A
  5. Créer le tableau 1 à l'aide du périphérique A et des n-1pièces de rechange, en utilisant explicitement l'ancien format de superbloc
  6. Répétez l'opération pour les B restants via les n-1appareils
  7. (Facultatif) renuméroter le tableau

... mais vérifiez très certainement que vous devez absolument passer par là!

Andrew
la source
donc je l'ai confirmé il y a longtemps. Je lance raid10, f2. évidemment, recréer le tableau était ce que j'essayais d'éviter.
xenoterracide
Avez-vous essayé la linux-raid at vger.kernel.orgliste de diffusion?
Andrew
étrange que je n'ai pas reçu de notification à ce sujet. non je n'ai pas essayé. Je viens de l'essuyer et de recréer le tableau. Je vais accepter cette réponse avec la solution courte de NON ou peut-être (ridiculement difficile)
xenoterracide
16

Cette information est probablement trop tardive pour aider le PO, mais peut-être qu'elle aidera quelqu'un d'autre.

La première commande efface les super blocs et la seconde commande crée un nouveau tableau mais suppose que les périphériques sont propres. Je viens de le faire et tout semble OK. Je recommanderais certainement une sauvegarde avant de faire cela. Je n'avais aucune donnée à perdre et donc aucune intégrité à vérifier. Je voulais juste éviter une nouvelle resynchronisation de 4 heures.

$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
    --level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90
Vex Mage
la source
1
probablement trop tard pour l'OP mais vous m'avez sauvé, merci pour votre réponse
neofutur
7

La création d'un tableau avec des métadonnées propres et incohérentes comme suggéré ci-dessus a certainement le potentiel d'endommager les données existantes, car les blocs de métadonnées 0.90 et 1.2 diffèrent non seulement en taille mais également en emplacement.

cela peut fonctionner pour 0.90 <-> 1.0, ce qui est une exception.

https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

masc
la source