Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
btrfs [Le 10/07/2012, 22:22] YoBoY Correction des niveaux des titres |
btrfs [Le 17/10/2018, 10:24] sefran Le RAID de disques |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
Btrfs (souvent prononcé "ButterFS") est un système de fichiers développé par Oracle et placé sous licence GPL. Au contraire d'ext4 qui est une évolution des systèmes de fichiers ext2/3, btrfs se veut conçu différemment, et apporte certaines fonctionnalités inédites. | Btrfs (souvent prononcé "ButterFS") est un système de fichiers développé par Oracle et placé sous licence GPL. Au contraire d'ext4 qui est une évolution des systèmes de fichiers ext2/3, btrfs se veut conçu différemment, et apporte certaines fonctionnalités inédites. | ||
- | Il est à noter que, officiellement, ce système de fichiers est toujours en bêta. Cependant, il est proposé dans Ubuntu et tout à fait utilisable pour un ordinateur personnel. Il est simplement recommandé d'utiliser un kernel récent (donc une version d'Ubuntu récente). | + | Officiellement, ce système de fichiers est [[https://btrfs.wiki.kernel.org/index.php/Main_Page#Stability_status | stable]]. |
===== Fonctionnalités ===== | ===== Fonctionnalités ===== | ||
Ligne 19: | Ligne 19: | ||
* Sauvegarde incrémentale intégrée au système de fichiers | * Sauvegarde incrémentale intégrée au système de fichiers | ||
* Défragmentation à chaud | * Défragmentation à chaud | ||
+ | * conscient des SSD (stockage flash) (TRIM / Élimination de la notification blocs libres pour réutilisation) et optimisations (par exemple en évitant des optimisations de recherche inutiles, l'envoi d'écritures en cluster, même si elles proviennent de fichiers indépendants. Cela se traduit par des opérations d'écriture plus grandes et plus rapide en débit d'écriture) | ||
| | ||
Ligne 26: | Ligne 27: | ||
Je vous conseille également d'utiliser la dernière version d'Ubuntu, et si vous choisissez de déplacer des données sur votre partition BTRFS, faites une sauvegarde que vous êtes prêt à restaurer ! | Je vous conseille également d'utiliser la dernière version d'Ubuntu, et si vous choisissez de déplacer des données sur votre partition BTRFS, faites une sauvegarde que vous êtes prêt à restaurer ! | ||
+ | Il faut d'abord [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>btrfs-tools]]**. | ||
==== Créer une nouvelle partition ou formater une partition existante ==== | ==== Créer une nouvelle partition ou formater une partition existante ==== | ||
Utilisez simplement le gestionnaire de disque d'Ubuntu, ou bien en ligne de commande: | Utilisez simplement le gestionnaire de disque d'Ubuntu, ou bien en ligne de commande: | ||
''mkfs.btrfs /dev/sdaX'' | ''mkfs.btrfs /dev/sdaX'' | ||
- | //où sdaX est la partition que vous souhaitez formatter.// | + | //où sdaX est la partition que vous souhaitez formater.// |
==== Convertir une partition ext4 vers BTRFS ==== | ==== Convertir une partition ext4 vers BTRFS ==== | ||
- | Procédure à documenter. | + | Utiliser la commande btrfs-convert /dev/<device> |
- | + | <note important>Il est possible, voire probable que le système de fichiers ainsi créé se corrompe et se retrouve accessible uniquement en lecture. Donc, à utiliser avec énormément de prudence et avec une sauvegarde. Voir ici : http://www.overclock.net/t/1373950/solved-btrfs-root-booting-read-only </note> | |
===== Utilisation des fonctions avancées ===== | ===== Utilisation des fonctions avancées ===== | ||
Ligne 59: | Ligne 60: | ||
Cette commande va prendre un snaphsot du sous-volume (répertoire) test. Cette version figée de votre répertoire sera accessible à travers le répertoire "test_v1". Les modifications faites dans chacun des deux répertoires sont indépendantes. Le système de fichiers gère les modifications pour qu'elles soient transparentes aux yeux de l'utilisateur (avec ext4, il aurait fallu créer une copie du répertoire, ce qui aurait occupé le double d'espace disque. Un snapshot ne consomme pas d'espace disque supplémentaire). | Cette commande va prendre un snaphsot du sous-volume (répertoire) test. Cette version figée de votre répertoire sera accessible à travers le répertoire "test_v1". Les modifications faites dans chacun des deux répertoires sont indépendantes. Le système de fichiers gère les modifications pour qu'elles soient transparentes aux yeux de l'utilisateur (avec ext4, il aurait fallu créer une copie du répertoire, ce qui aurait occupé le double d'espace disque. Un snapshot ne consomme pas d'espace disque supplémentaire). | ||
- | === Restaurer un snapshot === | + | ===Restaurer un snapshot === |
Utilisez simplement la commande "mv". Notez que vous pouvez faire la même chose à travers votre gestionnaire de fichiers en mode graphique. Les snapshots apparaissent comme des répertoires que vous pouvez manipuler à votre guise. | Utilisez simplement la commande "mv". Notez que vous pouvez faire la même chose à travers votre gestionnaire de fichiers en mode graphique. Les snapshots apparaissent comme des répertoires que vous pouvez manipuler à votre guise. | ||
+ | ====La compression==== | ||
+ | Ceci permet de compresser les données lorsqu'elles seront écrites sur le disque. Deux algorithmes de compression sont disponibles : | ||
+ | * zlib (par défaut) | ||
+ | * lzo : plus rapide et prend moins de charge CPU, mais compresse moins | ||
+ | |||
+ | Pour ceci, il faut éditer le fichier /etc/fstab : | ||
+ | <code bash># <file system> <mount point> <type> <options> <dump> <pass> | ||
+ | proc /proc proc nodev,noexec,nosuid 0 0 | ||
+ | # / was on /dev/sda2 during installation | ||
+ | UUID=07e198ed-18a3-41ed-9e48-bde82ead65fc / btrfs defaults,compress 0 1 | ||
+ | # /boot was on /dev/sda1 during installation | ||
+ | UUID=90983817-83f8-464f-a50c-39cd02317447 /boot ext2 defaults 0 2 | ||
+ | # swap was on /dev/sda5 during installation | ||
+ | UUID=a3da3212-876f-4350-94b3-4b5b5040c871 none swap sw 0 0 | ||
+ | </code> | ||
+ | C'est le compress ligne 4 qui agit. | ||
+ | Pour compresser en lzo, tapez <code>compress=lzo</code> | ||
+ | |||
+ | ====Le RAID de disques==== | ||
+ | === Créer le raid de disques === | ||
+ | Création d'un raid 1 avec un disque de spair | ||
+ | <code>mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc /dev/sdd</code> | ||
+ | |||
+ | === Vérifier le raid de disques === | ||
+ | Voir la synthèse de système RAID BTRFS **btrfs filesystem usage volume_btrfs** ou **btrfs fi usage volume_btrfs** | ||
+ | <code>sudo btrfs filesystem usage /home | ||
+ | Overall: | ||
+ | Device size: 1.36TiB | ||
+ | Device allocated: 300.02GiB | ||
+ | Device unallocated: 1.07TiB | ||
+ | Device missing: 465.76GiB | ||
+ | Used: 292.88GiB | ||
+ | Free (estimated): 551.43GiB (min: 551.43GiB) | ||
+ | Data ratio: 2.00 | ||
+ | Metadata ratio: 2.00 | ||
+ | Global reserve: 175.81MiB (used: 0.00B) | ||
+ | |||
+ | Data,RAID1: Size:149.00GiB, Used:146.20GiB | ||
+ | /dev/sdb 99.00GiB | ||
+ | /dev/sdc 100.00GiB | ||
+ | /dev/sdd 99.00GiB | ||
+ | |||
+ | Metadata,RAID1: Size:1.00GiB, Used:239.05MiB | ||
+ | /dev/sdb 1.00GiB | ||
+ | /dev/sdd 1.00GiB | ||
+ | |||
+ | System,RAID1: Size:8.00MiB, Used:48.00KiB | ||
+ | /dev/sdc 8.00MiB | ||
+ | /dev/sdd 8.00MiB | ||
+ | |||
+ | Unallocated: | ||
+ | /dev/sdb 365.76GiB | ||
+ | /dev/sdc 365.75GiB | ||
+ | /dev/sdd 365.75GiB | ||
+ | </code> | ||
+ | |||
+ | Pour vérifier l'état du système BTRFS passez par la commande **btrfs device stats volume_btrfs** | ||
+ | <code>sudo btrfs device stats /home | ||
+ | [/dev/sdb].write_io_errs 0 | ||
+ | [/dev/sdb].read_io_errs 0 | ||
+ | [/dev/sdb].flush_io_errs 0 | ||
+ | [/dev/sdb].corruption_errs 0 | ||
+ | [/dev/sdb].generation_errs 0 | ||
+ | [/dev/sdc].write_io_errs 12897745 | ||
+ | [/dev/sdc].read_io_errs 6026751 | ||
+ | [/dev/sdc].flush_io_errs 700547 | ||
+ | [/dev/sdc].corruption_errs 0 | ||
+ | [/dev/sdc].generation_errs 0 | ||
+ | [/dev/sdd].write_io_errs 0 | ||
+ | [/dev/sdd].read_io_errs 0 | ||
+ | [/dev/sdd].flush_io_errs 0 | ||
+ | [/dev/sdd].corruption_errs 0 | ||
+ | [/dev/sdd].generation_errs 0 | ||
+ | </code> | ||
+ | |||
+ | Pour voir l'état des disques de votre RAID BTRFS passez par la commande **btrfs filesystem show** ou **btrfs fi show** | ||
+ | <code>sudo btrfs filesystem show | ||
+ | Label: none uuid: c5f42f5d-7802-4f4f-bee6-3c8e0994bbe8 | ||
+ | Total devices 3 FS bytes used 146.43GiB | ||
+ | devid 1 size 465.76GiB used 100.00GiB path /dev/sdb | ||
+ | devid 3 size 465.76GiB used 100.01GiB path /dev/sdd | ||
+ | *** Some devices missing | ||
+ | </code> | ||
+ | |||
+ | Pour voir le détail des disques de votre RAID BTRFS passez la commande **sudo btrfs device usage volume_btrfs** | ||
+ | <code>sudo btrfs device usage /home | ||
+ | /dev/sdb, ID: 1 | ||
+ | Device size: 465.76GiB | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID1: 99.00GiB | ||
+ | Metadata,RAID1: 1.00GiB | ||
+ | Unallocated: 365.76GiB | ||
+ | |||
+ | /dev/sdc, ID: 2 | ||
+ | Device size: 0.00B | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID1: 100.00GiB | ||
+ | System,RAID1: 8.00MiB | ||
+ | Unallocated: 365.75GiB | ||
+ | |||
+ | /dev/sdd, ID: 3 | ||
+ | Device size: 465.76GiB | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID1: 99.00GiB | ||
+ | Metadata,RAID1: 1.00GiB | ||
+ | System,RAID1: 8.00MiB | ||
+ | Unallocated: 365.75GiB | ||
+ | </code> | ||
+ | |||
+ | === Réparer le raid de disques === | ||
+ | <code> | ||
+ | sudo btrfs balance start -v -mconvert=dup -dconvert=single /home | ||
+ | sudo btrfs device remove /dev/sdc | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | sudo btrfs device usage /home | ||
+ | sudo btrfs fi show | ||
+ | sudo btrfs fi usage | ||
+ | </code> | ||
+ | <code> | ||
+ | sudo btrfs device add /dev/sdc /home | ||
+ | sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /home | ||
+ | </code> | ||
===== Liens ===== | ===== Liens ===== | ||
* Le wiki officiel du projet [[https://btrfs.wiki.kernel.org/index.php/Main_Page]] | * Le wiki officiel du projet [[https://btrfs.wiki.kernel.org/index.php/Main_Page]] |