7 votes

Comment convertir un système de fichiers btrfs en mode raid1 en raid0 ?

J'ai installé Ubuntu 11.10 avec btrfs comme système de fichiers / (c'était un peu le bordel à faire, je vais expliquer si les gens sont intéressés) afin que je puisse étendre le système de fichiers primaire dans le deuxième lecteur sur le système (*).

Après avoir installé le système, j'ai lancé btrfs device add /dev/sdb1 / et il a ajouté le nouveau périphérique et étendu le système de fichiers dessus, et tout était bon. Mais d'après le manuel (erroné) que je lisais, je devais aussi exécuter btrfs filesystem balance et cela a apparemment converti mon système de fichiers en mode "raid1", de sorte que tout est stocké de manière redondante deux fois - une fois sur chaque disque, et je ne peux utiliser que 50% de ma capacité totale :

$ btrfs filesystem df /
Data, RAID0: total=78.00GB, used=41.57GB
System, RAID1: total=8.00MB, used=16.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=3.75GB, used=355.06MB

C'est une fonctionnalité intéressante, mais j'avais envie d'utiliser "raid0" (stripping). J'ai essayé de supprimer le nouveau périphérique pour pouvoir le réinsérer, mais lorsque j'essaie, j'obtiens une erreur et le syslog affiche ceci :

btrfs: unable to go below two devices on raid1

Ma question est donc la suivante : comment puis-je reconvertir mon système de fichiers en raid0 pour pouvoir utiliser l'espace total des deux disques ?

(*) Comme cela peut être fait avec LVM, mais avec btrfs vous pouvez héberger plusieurs "partitions" sur le même "système de fichiers" et l'espace est alloué dynamiquement là où vous en avez besoin - contrairement à LVM.

12voto

Jim Salter Points 4233

btrfs balance start -dconvert=raid0 /

C'est tout ce que vous devez faire. Le système va s'affairer à déplacer les données existantes pour les mettre en raid0 (en bandes, sans parité) et toutes les autres données seront également écrites de cette façon.

Les METAdata seront toujours écrites en double. Si vous voulez vivre EXTRA SUPER dangereusement, n'hésitez pas à ajouter une balise -mconvert raid0 dans la commande ci-dessus, alors les données ET les métadonnées sur le tableau à / seront converties en raid0.

2voto

psusi Points 35613

Vous avez lu le bon manuel ; vous devez exécuter balance après avoir ajouté le disque afin de redresser vos données sur le nouveau disque. Cela convertit également tous les morceaux DUP en RAID1, et les options mkfs par défaut utilisent RAID1 ou DUP pour les métadonnées selon que vous avez plusieurs disques ou non. Il n'y a pas actuellement de moyen supporté pour reconvertir, mais il y a quelques patches de restriper flottant sur la liste de diffusion btrfs qui permettront éventuellement ce genre de chose.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X