web-dev-qa-db-fra.com

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

J'ai installé Ubuntu 11.10 avec btrfs en tant que système de fichiers/(c'était un peu un foutoir, je vais expliquer si les gens sont intéressés) pour pouvoir étendre le système de fichiers principal dans le deuxième disque du système (*) .

Après avoir installé le système, j’ai exécuté btrfs device add /dev/sdb1 /, qui a ajouté le nouveau périphérique et développé le système de fichiers, et tout s’est bien passé. Mais selon le (mauvais) manuel que je lisais, je devais aussi exécuter btrfs filesystem balance et ceci a apparemment converti mon système de fichiers en mode "raid1" afin que tout soit 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 je voulais utiliser "raid0" (stripping). J'ai essayé de supprimer le nouveau périphérique afin de pouvoir l'ajouter de nouveau, mais lorsque j'essaie, un message d'erreur s'affiche et syslog contient 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 où vous en avez besoin - contrairement à LVM.

6
Guss

btrfs balance start -dconvert=raid0 /

C'est tout ce que vous devez faire. Le système déplacera activement les données existantes dans raid0 (en bandes, sans parité) et toutes les autres données seront également écrites de cette façon.

METAdata sera toujours écrit en double. Si vous voulez vivre EXTRA SUPER dangereusement, n'hésitez pas à ajouter un argument -mconvert raid0 à la commande ci-dessus. Les données ET les métadonnées du tableau situé dans/seront converties en raid0.

11
Jim Salter

Vous avez lu le bon manuel; vous devez exécuter Balance après avoir ajouté le lecteur afin de conserver vos données sur le nouveau disque. Il arrive également que certains morceaux de DUP soient convertis en RAID1, et les options par défaut de mkfs utilisent RAID1 ou DUP pour les métadonnées, que vous disposiez de plusieurs disques ou non. Il n’existe actuellement aucun moyen de reconvertir, mais il existe des correctifs restriper qui flottent sur la liste de diffusion btrfs et qui permettront à terme ce genre de choses.

2
psusi