lundi 30 décembre 2013

Convertir un Raid1 Btrfs en Raid5

Toujours un peu joueur dans l'âme, j'ai monté il y a peu de temps un Raid1 natif avec Btrfs (donc sans LVM). Je dois avouer que ça fonctionne plutôt pas mal pour le moment. Le seul problème reste la sortie de df qui indique la taille totale des disques, alors que ça devrait être la moitié pour ce type de Raid. Une fois qu'on le sait, c'est moins génant.

Mais comme je suis encore plus joueur, j'ai décidé d'acheter un disque de 3T de plus et de switcher en Raid5. Je n'ai pas trouvé rapidement de solution pour le faire (et encore moins en français). Après avoir créé les bonnes partitions sur le disque, voici la procédure :

   # on formate la partition
   mkfs.btrfs /dev/sdXY
   # on ajoute la partition au raid existant
   btrfs device add /dev/sdXY /mount/path/
   # on converti en raid5
   btrfs balance start -dconvert=raid5 -mconvert=raid5 /mount/path/

Je vous conseille de lancer ça dans un screen, ça prend du temps. On peut vérifier que tout se passe bien via la sortie de dmesg (elle indique les extends qui sont déplacés). Deux commandes utiles également :

   btrfs fi show
   btrfs fi df /mount/path/

Vous verrez progressivement les données passer de Raid1 à Raid5, tout ça à chaud, le système de fichiers toujours accessible. C'est pas classe ?