Outils pour utilisateurs

Outils du site


net-sys:admin:btrfs-convert

Procédure de conversion d'un système de fichiers en EXT-4 vers BTRFS

0 – Prérequis

Assurez-vous d'avoir un kernel récent ; le plus récent sera le mieux. La version stable actuellement est la 4.14.
Assurez-vous que le kernel a le support de BTRFS soit en module, soit (encore mieux) en compilé:

zgrep CONFIG_BTRFS_FS /proc/config.gz

(vous devez voir au moins deux entrées en =m ou =y)

Assurez-vous également que le système de fichiers à convertir soit suffisamment grand (~ 10-20Gio minimum) et possède au grand minimum 50% d'espace libre, autrement la duplication des données induites par la conversion empêchera btrfs de correctement travailler et vous pourriez rendre votre système de fichiers complètement illisible.

1 – Rendre le périphérique accessible

Commencez par vous connecter à un shell en root et désactivez tous les services et programmes inutiles l'utilisant (ie, tout sauf la base, sshd etc)
Vous pouvez en faire une liste à l'aide de:

fuser -vm /path/to/filesystem/

Démontez ensuite le système de fichiers à convertir.

2 – Conversion

Lancez la commande, en root:

btrfs-convert -n /path/to/device

Vous pouvez désormais remonter le système de fichiers, dans /mnt:

mount /path/to/dev /mnt

Vous pouvez à présent supprimer le sous-volume de sauvegarde (vous pouvez néanmoins le monter quelque part et en faire une copie ailleurs par sécurité si vous le souhaitez):

btrfs sub del -C /mnt/ext2_saved

Avec btrfs sub list -d /mnt/, attendez de ne plus avoir d'entrée notée 'DELETED' avant de continuer. Btrfs est actuellement en train de supprimer les liens entre l'ancien sous-volume ext2_saved et le volume btrfs actuel.

3 – Nettoyage des métadonnées

Il faut maintenant nettoyer les métadonnées du système de fichiers.
Commencez par une défragmentation:

btrfs fi defrag -vrf /mnt/

Puis un balance complet suivi d'un balance de conversion des métadonnées (attention: cette opération est longue) ; lancez dmesg -w dans un second terminal pour avoir le log en temps réel:

btrfs balance start --full-balance /mnt/
btrfs balance start -mconvert=dup /mnt/

Pour finir, remontez le système de fichier avec les bonnes options:

mount /mnt -o remount,defaults,rw,noatime,nodiratime,compress=lzo,space_cache,autodefrag
Si votre système de fichiers se trouve sur un SSD, remplacez l'option autodefrag par ssd

4 – Vérification

Pour vérifier que le système de fichiers est OK, lancez un scrub:

btrfs scrub start /mnt/

Le résultat est disponible avec btrfs scrub status /mnt/ et si des erreurs devaient survenir, elles seraient écrites dans le log kernel (commande dmesg)

5 – Création des sous-volumes et correction du fstab

Créez les sous-volumes que vous souhaitez avoir, créez aussi un /media/btrfs qui contiendra le système de fichiers dans son ensemble.

Dans le fstab, éditez les entrées qui doivent avoir changé suite à la conversion ; UUID, type de fs et les options de montage comme en (3).

L'option à passer au montage pour pouvoir sélectionner le volume adéquat est subvol=<chemin à partir de la racine du système de fichiers>

Références

net-sys/admin/btrfs-convert.txt · Dernière modification: 2018-01-12 18:45 par electron