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 | ||
btrfs [Le 10/04/2013, 22:03] 88.190.229.4 [La compression] |
btrfs [Le 17/08/2023, 09:01] (Version actuelle) 171.16.208.3 [Principaux types de raids] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag>système partitions}} | {{tag>système partitions}} | ||
---- | ---- | ||
- | |||
- | <note>Cette page est en cours de rédaction. Quiconque veut y participer et l'améliorer est le bienvenu... Il s'agit surtout de synthétiser et de traduire la documentation disponible ici: https://help.ubuntu.com/community/btrfs et/ou ici: https://btrfs.wiki.kernel.org/index.php/UseCases</note> | ||
====== Le système de fichiers BTRFS ====== | ====== Le système de fichiers BTRFS ====== | ||
- | 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 ([[https://fr.wikipedia.org/wiki/Arbre_B|B-tree]] File System, 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 ===== | + | |
+ | Les fonctionnalités principales sont les suivantes : | ||
* Capacité maximale de 2^64 octets == 16 Eo. max. | * Capacité maximale de 2^64 octets == 16 Eo. max. | ||
* Meilleure gestion de l'espace occupé par les petits fichiers | * Meilleure gestion de l'espace occupé par les petits fichiers | ||
Ligne 19: | Ligne 16: | ||
* 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) | ||
| | ||
- | ===== Commencer avec BTRFS ===== | + | ===== Installation ===== |
- | Attention ! Je vous conseille de faire un essai sur une partition de test ! Vous pouvez par exemple formater une clé USB vide et vous familiariser avec les commandes de BTRFS avant de l'utiliser pour vos données... | + | Il est conseillé de faire un essai sur une partition de test ! Vous pouvez par exemple formater une clé USB vide et vous familiariser avec les commandes de BTRFS avant de l'utiliser pour vos données... |
- | 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 ! | + | Si vous choisissez de déplacer des données sur votre partition BTRFS, faites une sauvegarde que vous êtes prêt à restaurer ! |
+ | Pour pouvoir formater une partition en BTRFS [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt>btrfs-tools]]**. | ||
+ | Si c'est trop virtuel, essayer en ligne de commande | ||
+ | <code bash>sudo apt install btrfs-progs</code> | ||
+ | |||
+ | =====Utilisation===== | ||
==== 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 [[gnome-disk-utility|gestionnaire de disque d'Ubuntu]] ou [[gparted]], ou bien en ligne de commande: |
- | ''mkfs.btrfs /dev/sdaX'' | + | <code>mkfs.btrfs /dev/sdaN</code> |
- | //où sdaX est la partition que vous souhaitez formatter.// | + | //où sdaN est la partition que vous souhaitez formater.//* |
+ | ==== Utiliser la partition existante ==== | ||
+ | Pour utiliser la partition, il est nécessaire de la [[:mount_fstab|monter.]] | ||
- | ==== Convertir une partition ext4 vers BTRFS ==== | + | Un exemple en ligne de commande |
- | Utiliser la commande btrfs-convert /dev/<device> | + | <code bash>sudo mkdir -v /media/BTRFS && sudo chown :$USER /media/BTRFS |
+ | sudo mount -v /dev/sdaN /media/BTRFS </code> | ||
+ | ==== Convertir une partition ext4 vers BTRFS ==== | ||
+ | Utiliser la commande : | ||
+ | <code>btrfs-convert /dev/<device></code> | ||
+ | <note>Si vous avez une version très ancienne de btrfs-convert (<4.6), 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 [[http://www.overclock.net/t/1373950/solved-btrfs-root-booting-read-only|ici]]. Par contre, cet utilitaire a été réécrit depuis (en 2016), et les versions >=4.6 sont stables (voir https://en.wikipedia.org/wiki/Btrfs#In-place_conversion_from_ext2/3/4_and_ReiserFS). Il n'y a donc plus ce risque, au moins depuis Ubuntu 18.04 (bionic)</note> | ||
+ | ==== Convertir une structure BTRFS vers une autre structure==== | ||
+ | Utiliser la commande : | ||
+ | <code>btrfs restore <device> <path></code> | ||
+ | L'entrée peut être une partition, un raid. La sortie peut être dans un répertoire stocké dans n'importe quel type de partition. voir [[https://man7.org/linux/man-pages/man8/btrfs-restore.8.html|le mode d emploi]]. Exemples | ||
+ | <code bash>mkdir RECUP | ||
+ | sudo btrfs restore /dev/sda28 -D -o -i -m -v RECUP | ||
+ | time sudo btrfs restore /dev/sda28 -vvv -s -S -x -m -i -c --path-regex '^/(|Rugby2019(|/CoupeDuMonde2019(|/CAPTVTY(|/.*))))$' RECUP</code> | ||
===== Utilisation des fonctions avancées ===== | ===== Utilisation des fonctions avancées ===== | ||
Ligne 44: | Ligne 61: | ||
=== Créer un sous-volume === | === Créer un sous-volume === | ||
- | ''btrfs subvolume create test'' | + | <code>btrfs subvolume create test</code> |
pour créer un sous-volume intitulé //test// (en supposant que vous êtes quelque part dans votre système de fichiers BTRFS) | pour créer un sous-volume intitulé //test// (en supposant que vous êtes quelque part dans votre système de fichiers BTRFS) | ||
=== Supprimer un sous-volume === | === Supprimer un sous-volume === | ||
- | "sudo btrfs subvolume delete test" | + | <code>btrfs subvolume delete test</code> |
==== Les snapshots ==== | ==== Les snapshots ==== | ||
- | Un snapshot est une image du système de fichiers ou d'un de ses sous-volumes que vous "fixez" à un instant précis, dans le but de pouvoir y accéder ou la restaurer plus tard. Une fois créé, un snapshot se comporte comme un dossier ordinaire de votre système de fichiers : vous pouvez le copier, le déplacer vers un support externe, le renommer... | + | Un snapshot, ou [[points_de_restauration_pour_un_systeme_linux|point de restauration]], est une image du système de fichiers ou d'un de ses sous-volumes que vous sauvegardez à un instant précis, dans le but de pouvoir y accéder ou la restaurer plus tard. L'objectif principal est de restaurer un système devenu instable. |
+ | |||
+ | Une fois créé, un snapshot se comporte comme un dossier ordinaire de votre système de fichiers : vous pouvez le copier, le déplacer vers un support externe, le renommer... | ||
=== Prendre un snapshot === | === Prendre un snapshot === | ||
- | Pour créer un snapshot du système de fichiers entier : | + | Pour créer un snapshot du système de fichiers entier en ligne de commande : |
- | ''btrfs subvolume snapshot test test_v1'' | + | <code>btrfs subvolume snapshot test test_v1</code> |
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). | ||
+ | |||
+ | Le logiciel [[timeshift|timeshift]] permet aussi de prendre un **point de restauration** (//snapshot//) btrfs en mode graphique. | ||
===Restaurer un snapshot === | ===Restaurer un snapshot === | ||
Ligne 68: | Ligne 89: | ||
* lzo : plus rapide et prend moins de charge CPU, mais compresse moins | * lzo : plus rapide et prend moins de charge CPU, mais compresse moins | ||
- | Pour ceci, il faut éditer le fichier /etc/fstab : | + | Pour ceci, il faut [[:tutoriel:comment_modifier_un_fichier|éditer]] le fichier **/etc/fstab** : |
- | <code># <file system> <mount point> <type> <options> <dump> <pass> | + | <file bash># <file system> <mount point> <type> <options> <dump> <pass> |
proc /proc proc nodev,noexec,nosuid 0 0 | proc /proc proc nodev,noexec,nosuid 0 0 | ||
# / was on /dev/sda2 during installation | # / was on /dev/sda2 during installation | ||
Ligne 77: | Ligne 98: | ||
# swap was on /dev/sda5 during installation | # swap was on /dev/sda5 during installation | ||
UUID=a3da3212-876f-4350-94b3-4b5b5040c871 none swap sw 0 0 | UUID=a3da3212-876f-4350-94b3-4b5b5040c871 none swap sw 0 0 | ||
- | </code> | + | </file> |
C'est le compress ligne 4 qui agit. | C'est le compress ligne 4 qui agit. | ||
Pour compresser en lzo, tapez <code>compress=lzo</code> | Pour compresser en lzo, tapez <code>compress=lzo</code> | ||
- | <note warning>GRUB2 ne lit pas les partitions en btrfs compressées !</note> | ||
+ | =====Le RAID de disques===== | ||
+ | Notons que le mot **disques** dans ce chapitre fait référence au disque physique lui-même ou a une [[:partitions|partition]] du disque. | ||
+ | ==== Principaux types de raids ==== | ||
+ | * single: Une seule copie des informations. 100% de l’espace disque est utilisé. Le second disque ne sera utilisé que lorsque le premier est rempli. Le troisième que lorsque les deux premiers seront remplis. | ||
+ | * dup: Chaque disque contient les données en double. | ||
+ | * raid0: Une seule copie des informations. 100% de l’espace disque est utilisé. Tous les disques seront utilisés simultanément. | ||
+ | * raid1: Copie en double. 50% de l’espace disque est utilisé. Un disque peut tomber en panne. | ||
+ | * raid1c3: Copie en triple. 33% de l’espace disque est utilisé. deux disques peuvent tomber en panne. | ||
+ | * raid1c4: Copie en quadruple. 25% de l’espace disque est utilisé. trois disques peuvent tomber en panne. | ||
+ | * raid10: Mélange de RAID1 et RAID0. | ||
+ | * raid5: Une copie et une copie de parité distribuée. Un disque peut tomber en panne. L’espace disque utilisable est 100x(**N**-1)/**N** %. **N** étant le nombre de disques. | ||
+ | * raid6: Une copie et deux copies de parité distribuées. deux disques peuvent tomber en panne. L’espace disque utilisable est 100x(**N**-2)/**N** %. **N** étant le nombre de disques. | ||
+ | Pour les explications détaillées, voir [[https://linuxhint.com/set-up-btrfs-raid/|ici]] | ||
- | ===== Liens ===== | ||
- | * Le wiki officiel du projet [[https://btrfs.wiki.kernel.org/index.php/Main_Page]] | + | Notons que si les disques ne possèdent pas la même taille, l’espace disque utilisable n’est pas ramené à la taille du plus petit disque. Il reste bien la somme des tailles des disques. |
+ | |||
+ | |||
+ | ==== Créer le raid de disques ==== | ||
+ | Quelques exemples: | ||
+ | |||
+ | Création d'un raid 1 avec un disque de spare | ||
+ | <code bash>sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc /dev/sdd</code> | ||
+ | Création d'un raid 5 en utilisant des partitions préalablement [[:gnome-disk-utility#creer_une_partition|créées]] de préférence [[:gparted|non formatées.]] | ||
+ | <code bash>sudo mkfs.btrfs -m raid1 -d raid5 -L Test-BTRFS -f /dev/sda20 /dev/sda23 /dev/sda2[5-8] | ||
+ | btrfs-progs v5.16.2 | ||
+ | See http://btrfs.wiki.kernel.org for more information. | ||
+ | |||
+ | WARNING: RAID5/6 support has known problems is strongly discouraged | ||
+ | to be used besides testing or evaluation. | ||
+ | |||
+ | NOTE: several default settings have changed in version 5.15, please make sure | ||
+ | this does not affect your deployments: | ||
+ | - DUP for metadata (-m dup) | ||
+ | - enabled no-holes (-O no-holes) | ||
+ | - enabled free-space-tree (-R free-space-tree)</code> | ||
+ | |||
+ | <note important>Il est important de mettre les données techniques en protection RAID1 car la protection RAID5 n'est pas totalement au point. | ||
+ | |||
+ | Une conséquence importante: Au montage, il est possible de ne pas indiquer un disque qui contient ces données. Le message d'erreur est inquiétant<code bash>mount: /media/RaidBTRFS: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or helper program, or other error.</code> La solution est d'indiquer un autre disque qui aura la structure RAID1.</note> | ||
+ | |||
+ | ==== Monter un raids pour utilisation ==== | ||
+ | Voir le début du document expliquant comment monter une partition. il est possible d'utiliser n'importe lequel des "disques" du raid. | ||
+ | |||
+ | Si les noms des éléments constituants le RAID sont oubliés et qu'il n'y a qu'un seul raids BTRFS de défini, il est possible de lancer cette commande | ||
+ | <code bash>udisksctl mount -b /dev/disk/by-uuid/$(sudo btrfs filesystem show | grep uuid | cut -d':' -f3 | cut -c2-) | ||
+ | Mounted /dev/sda28 at /media/a/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281</code> | ||
+ | ==== Voir le type de raid actuel ==== | ||
+ | Commande pour visualiser le raid en cours | ||
+ | <code>btrfs fi df /home | ||
+ | Data, RAID5: total=168.00GiB, used=165.12GiB | ||
+ | System, RAID5: total=64.00MiB, used=16.00KiB | ||
+ | Metadata, RAID5: total=2.00GiB, used=319.66MiB | ||
+ | GlobalReserve, single: total=190.94MiB, used=0.00B</code> | ||
+ | <code bash>btrfs fi df /media/$USER/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281 | ||
+ | Data, RAID5: total=89.14GiB, used=89.14GiB | ||
+ | System, RAID5: total=13.12MiB, used=16.00KiB | ||
+ | Metadata, RAID5: total=853.12MiB, used=113.28MiB | ||
+ | GlobalReserve, single: total=112.83MiB, used=0.00B</code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Vérifier le raid de disques ==== | ||
+ | Voir la synthèse de système RAID BTRFS : | ||
+ | <code bash>sudo btrfs filesystem usage /home | ||
+ | Overall: | ||
+ | Device size: 1.36TiB | ||
+ | Device allocated: 300.02GiB | ||
+ | Device unallocated: 1.07TiB</code> | ||
+ | <code>sudo btrfs filesystem usage /media/$USER/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281 | ||
+ | Overall: | ||
+ | Device size: 124.99GiB | ||
+ | Device allocated: 118.99GiB | ||
+ | Device unallocated: 6.00GiB | ||
+ | Device missing: 0.00B | ||
+ | Used: 118.10GiB | ||
+ | Free (estimated): 4.54GiB (min: 3.00GiB) | ||
+ | Free (statfs, df): 0.00B | ||
+ | Data ratio: 1.32 | ||
+ | Metadata ratio: 1.20 | ||
+ | Global reserve: 112.83MiB (used: 0.00B) | ||
+ | Multiple profiles: no | ||
+ | |||
+ | Data,RAID5: Size:89.14GiB, Used:89.14GiB (100.00%) | ||
+ | /dev/sda20 9.83GiB | ||
+ | /dev/sda23 11.83GiB | ||
+ | /dev/sda25 15.83GiB | ||
+ | /dev/sda26 22.83GiB | ||
+ | /dev/sda27 28.83GiB | ||
+ | /dev/sda28 28.83GiB | ||
+ | |||
+ | Metadata,RAID5: Size:853.12MiB, Used:113.28MiB (13.28%) | ||
+ | /dev/sda20 170.62MiB | ||
+ | /dev/sda23 170.62MiB | ||
+ | /dev/sda25 170.62MiB | ||
+ | /dev/sda26 170.62MiB | ||
+ | /dev/sda27 170.62MiB | ||
+ | /dev/sda28 170.62MiB | ||
+ | |||
+ | System,RAID5: Size:13.12MiB, Used:16.00KiB (0.12%) | ||
+ | /dev/sda20 2.62MiB | ||
+ | /dev/sda23 2.62MiB | ||
+ | /dev/sda25 2.62MiB | ||
+ | /dev/sda26 2.62MiB | ||
+ | /dev/sda27 2.62MiB | ||
+ | /dev/sda28 2.62MiB | ||
+ | |||
+ | Unallocated: | ||
+ | /dev/sda20 1.00MiB | ||
+ | /dev/sda23 1.00MiB | ||
+ | /dev/sda25 1.00MiB | ||
+ | /dev/sda26 1.00MiB | ||
+ | /dev/sda27 1.00MiB | ||
+ | /dev/sda28 6.00GiB</code> | ||
+ | ou <code bash>btrfs fi usage volume_btrfs</code> | ||
+ | |||
+ | |||
+ | |||
+ | <code bash>btrfs fi usage /media/$USER/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281 | ||
+ | WARNING: cannot read detailed chunk info, per-device usage will not be shown, run as root | ||
+ | Overall: | ||
+ | Device size: 124.99GiB | ||
+ | Device allocated: 0.00B | ||
+ | Device unallocated: 124.99GiB | ||
+ | Device missing: 0.00B | ||
+ | Used: 0.00B | ||
+ | Free (estimated): 0.00B (min: 8.00EiB) | ||
+ | Free (statfs, df): 0.00B | ||
+ | Data ratio: 0.00 | ||
+ | Metadata ratio: 0.00 | ||
+ | Global reserve: 112.83MiB (used: 0.00B) | ||
+ | Multiple profiles: no | ||
+ | |||
+ | Data,RAID5: Size:89.14GiB, Used:89.14GiB (100.00%) | ||
+ | |||
+ | Metadata,RAID5: Size:853.12MiB, Used:113.28MiB (13.28%) | ||
+ | |||
+ | System,RAID5: Size:13.12MiB, Used:16.00KiB (0.12%)</code> | ||
+ | |||
+ | |||
+ | Pour vérifier l'état du système BTRFS passez par la commande : | ||
+ | <code bash>sudo btrfs device stats /home | ||
+ | [/dev/sdb].write_io_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</code> | ||
+ | <code bash>sudo btrfs device stats /media/$USER/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281 | ||
+ | [/dev/sda20].write_io_errs 0 | ||
+ | [/dev/sda20].read_io_errs 0 | ||
+ | [/dev/sda20].flush_io_errs 0 | ||
+ | [/dev/sda20].corruption_errs 0 | ||
+ | [/dev/sda20].generation_errs 0 | ||
+ | [/dev/sda23].write_io_errs 0 | ||
+ | [/dev/sda23].read_io_errs 0 | ||
+ | [/dev/sda23].flush_io_errs 0 | ||
+ | [/dev/sda23].corruption_errs 0 | ||
+ | [/dev/sda23].generation_errs 0 | ||
+ | [/dev/sda25].write_io_errs 0 | ||
+ | [/dev/sda25].read_io_errs 0 | ||
+ | [/dev/sda25].flush_io_errs 0 | ||
+ | [/dev/sda25].corruption_errs 0 | ||
+ | [/dev/sda25].generation_errs 0 | ||
+ | [/dev/sda26].write_io_errs 0 | ||
+ | [/dev/sda26].read_io_errs 0 | ||
+ | [/dev/sda26].flush_io_errs 0 | ||
+ | [/dev/sda26].corruption_errs 0 | ||
+ | [/dev/sda26].generation_errs 0 | ||
+ | [/dev/sda27].write_io_errs 0 | ||
+ | [/dev/sda27].read_io_errs 0 | ||
+ | [/dev/sda27].flush_io_errs 0 | ||
+ | [/dev/sda27].corruption_errs 0 | ||
+ | [/dev/sda27].generation_errs 0 | ||
+ | [/dev/sda28].write_io_errs 0 | ||
+ | [/dev/sda28].read_io_errs 0 | ||
+ | [/dev/sda28].flush_io_errs 0 | ||
+ | [/dev/sda28].corruption_errs 0 | ||
+ | [/dev/sda28].generation_errs 0</code> | ||
+ | ou <code bash>btrfs device stats volume_btrfs | ||
+ | btrfs device stats /media/$USER/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281 | ||
+ | ERROR: getting device info for /media/a/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281 failed: Operation not permitted</code> | ||
+ | |||
+ | Pour voir l'état des disques de votre RAID BTRFS passez par la commande : | ||
+ | <code bash>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> | ||
+ | <code bash>sudo btrfs filesystem show | ||
+ | Label: none uuid: c2b6e6ec-10d6-4c48-a28a-0dfc6f62d728 | ||
+ | Total devices 6 FS bytes used 89.26GiB | ||
+ | devid 1 size 10.01GiB used 10.00GiB path /dev/sda20 | ||
+ | devid 2 size 12.00GiB used 12.00GiB path /dev/sda23 | ||
+ | devid 3 size 16.00GiB used 16.00GiB path /dev/sda25 | ||
+ | devid 4 size 23.00GiB used 23.00GiB path /dev/sda26 | ||
+ | devid 5 size 29.00GiB used 29.00GiB path /dev/sda27 | ||
+ | devid 6 size 35.00GiB used 29.00GiB path /dev/sda28 | ||
+ | |||
+ | Label: none uuid: 54cceaf6-7772-4fcc-9548-d9ae0247f9fa | ||
+ | Total devices 6 FS bytes used 148.80GiB | ||
+ | devid 1 size 76.25GiB used 56.13GiB path /dev/sdc17 | ||
+ | devid 2 size 76.25GiB used 56.13GiB path /dev/sdd3 | ||
+ | devid 3 size 76.25GiB used 56.13GiB path /dev/sdd4 | ||
+ | devid 4 size 76.25GiB used 13.24GiB path /dev/sdd5 | ||
+ | devid 5 size 76.25GiB used 13.24GiB path /dev/sdd6 | ||
+ | devid 6 size 76.25GiB used 13.24GiB path /dev/sdd7</code> | ||
+ | ou <code bash>btrfs fi show</code> | ||
+ | <code bash>sudo btrfs fi show | ||
+ | Label: none uuid: c2b6e6ec-10d6-4c48-a28a-0dfc6f62d728 | ||
+ | Total devices 6 FS bytes used 89.26GiB | ||
+ | devid 1 size 10.01GiB used 10.00GiB path /dev/sda20 | ||
+ | devid 2 size 12.00GiB used 12.00GiB path /dev/sda23 | ||
+ | devid 3 size 16.00GiB used 16.00GiB path /dev/sda25 | ||
+ | devid 4 size 23.00GiB used 23.00GiB path /dev/sda26 | ||
+ | devid 5 size 29.00GiB used 29.00GiB path /dev/sda27 | ||
+ | devid 6 size 35.00GiB used 29.00GiB path /dev/sda28 | ||
+ | |||
+ | Label: none uuid: 54cceaf6-7772-4fcc-9548-d9ae0247f9fa | ||
+ | Total devices 6 FS bytes used 148.80GiB | ||
+ | devid 1 size 76.25GiB used 56.13GiB path /dev/sdc17 | ||
+ | devid 2 size 76.25GiB used 56.13GiB path /dev/sdd3 | ||
+ | devid 3 size 76.25GiB used 56.13GiB path /dev/sdd4 | ||
+ | devid 4 size 76.25GiB used 13.24GiB path /dev/sdd5 | ||
+ | devid 5 size 76.25GiB used 13.24GiB path /dev/sdd6 | ||
+ | devid 6 size 76.25GiB used 13.24GiB path /dev/sdd7</code> | ||
+ | |||
+ | Pour voir le détail des disques de votre RAID BTRFS passez la commande : | ||
+ | <code bash>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 | ||
+ | ... | ||
+ | </code> | ||
+ | <code bash>sudo btrfs device usage /media/$USER/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281 | ||
+ | /dev/sda20, ID: 1 | ||
+ | Device size: 10.01GiB | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID5/6: 9.83GiB | ||
+ | Metadata,RAID5/6: 170.62MiB | ||
+ | System,RAID5/6: 2.62MiB | ||
+ | Unallocated: 1.00MiB | ||
+ | |||
+ | /dev/sda23, ID: 2 | ||
+ | Device size: 12.00GiB | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID5/6: 9.83GiB | ||
+ | Data,RAID5/5: 1.99GiB | ||
+ | Metadata,RAID5/6: 170.62MiB | ||
+ | System,RAID5/6: 2.62MiB | ||
+ | Unallocated: 1.00MiB | ||
+ | |||
+ | /dev/sda25, ID: 3 | ||
+ | Device size: 16.00GiB | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID5/6: 9.83GiB | ||
+ | Data,RAID5/5: 1.99GiB | ||
+ | Data,RAID5/4: 4.00GiB | ||
+ | Metadata,RAID5/6: 170.62MiB | ||
+ | System,RAID5/6: 2.62MiB | ||
+ | Unallocated: 1.00MiB | ||
+ | |||
+ | /dev/sda26, ID: 4 | ||
+ | Device size: 23.00GiB | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID5/6: 9.83GiB | ||
+ | Data,RAID5/5: 1.99GiB | ||
+ | Data,RAID5/4: 4.00GiB | ||
+ | Data,RAID5/3: 7.00GiB | ||
+ | Metadata,RAID5/6: 170.62MiB | ||
+ | System,RAID5/6: 2.62MiB | ||
+ | Unallocated: 1.00MiB | ||
+ | |||
+ | /dev/sda27, ID: 5 | ||
+ | Device size: 29.00GiB | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID5/6: 9.83GiB | ||
+ | Data,RAID5/5: 1.99GiB | ||
+ | Data,RAID5/4: 4.00GiB | ||
+ | Data,RAID5/3: 7.00GiB | ||
+ | Data,RAID5/2: 6.00GiB | ||
+ | Metadata,RAID5/6: 170.62MiB | ||
+ | System,RAID5/6: 2.62MiB | ||
+ | Unallocated: 1.00MiB | ||
+ | |||
+ | /dev/sda28, ID: 6 | ||
+ | Device size: 35.00GiB | ||
+ | Device slack: 0.00B | ||
+ | Data,RAID5/6: 9.83GiB | ||
+ | Data,RAID5/5: 1.99GiB | ||
+ | Data,RAID5/4: 4.00GiB | ||
+ | Data,RAID5/3: 7.00GiB | ||
+ | Data,RAID5/2: 6.00GiB | ||
+ | Metadata,RAID5/6: 170.62MiB | ||
+ | System,RAID5/6: 2.62MiB | ||
+ | Unallocated: 6.00GiB</code> | ||
+ | |||
+ | |||
+ | ==== Augmenter/Diminuer le système de fichier du raid de disques ==== | ||
+ | Visualiser l'espace libre disponible, puis augmenter la taille du système de fichiers sur le raid : | ||
+ | <code bash>sudo btrfs filesystem resize +10G /home | ||
+ | Resize '/home' of '+10G'</code> | ||
+ | |||
+ | Diminuer la taille du système de fichier sur le raid | ||
+ | <code bash>sudo btrfs filesystem resize -10G /home | ||
+ | Resize '/home' of '-10G'</code> | ||
+ | |||
+ | |||
+ | ==== Réparer le raid de disques ==== | ||
+ | Voir l'état des disques : | ||
+ | <code bash>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 204890173 | ||
+ | [/dev/sdc].read_io_errs 19080823 | ||
+ | [/dev/sdc].flush_io_errs 10027539 | ||
+ | [/dev/sdd].generation_errs 0</code> | ||
+ | |||
+ | <code bash> | ||
+ | sudo btrfs balance start -v -mconvert=dup -dconvert=single /home | ||
+ | sudo btrfs device remove /dev/sdc | ||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | sudo btrfs device usage /home | ||
+ | sudo btrfs fi show | ||
+ | sudo btrfs fi usage | ||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | sudo btrfs device add /dev/sdc /home | ||
+ | sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /home | ||
+ | </code> | ||
+ | ===== Liens ===== | ||
+ | * UN complément fort utile : https://sebsauvage.net/wiki/doku.php?id=btrfs | ||
+ | * Le [[https://btrfs.wiki.kernel.org/index.php/Main_Page|wiki officiel du projet]] | ||
+ | * **ANGLAIS** [[https://askubuntu.com/questions/967172/grub2-does-not-detect-btrfs-partition|Faire détecter une installation de UBUNTU par un autre Ubuntu]] |