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 26/05/2023, 15:27] geole création. |
btrfs [Le 08/02/2025, 21:26] (Version actuelle) 92.137.221.224 [Le RAID de disques] correction orthographe |
||
---|---|---|---|
Ligne 46: | Ligne 46: | ||
<code>btrfs-convert /dev/<device></code> | <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> | <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 96: | Ligne 103: | ||
=====Le RAID de disques===== | =====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. | + | Notons que le mot **disques** dans ce chapitre fait référence au disque physique lui-même ou à une [[:partitions|partition]] du disque. |
==== Principaux types de raids ==== | ==== 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. | * 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. | ||
Ligne 107: | Ligne 114: | ||
* 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. | * 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. | * 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, voi[[https://linuxhint.com/set-up-btrfs-raid/|ici]] | + | Pour les explications détaillées, voir [[https://linuxhint.com/set-up-btrfs-raid/|ici]] |
Ligne 113: | Ligne 120: | ||
+ | ==== 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 raid 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 ==== | ==== Voir le type de raid actuel ==== | ||
Commande pour visualiser le raid en cours | Commande pour visualiser le raid en cours | ||
Ligne 120: | Ligne 156: | ||
Metadata, RAID5: total=2.00GiB, used=319.66MiB | Metadata, RAID5: total=2.00GiB, used=319.66MiB | ||
GlobalReserve, single: total=190.94MiB, used=0.00B</code> | 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> | ||
+ | |||
+ | |||
+ | |||
- | ==== Créer le raid de disques ==== | ||
- | Création d'un raid 1 avec un disque de spare | ||
- | <code>mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc /dev/sdd</code> | ||
==== Vérifier le raid de disques ==== | ==== Vérifier le raid de disques ==== | ||
Ligne 131: | Ligne 172: | ||
Device size: 1.36TiB | Device size: 1.36TiB | ||
Device allocated: 300.02GiB | Device allocated: 300.02GiB | ||
- | Device unallocated: 1.07TiB | + | 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> | ||
- | </code> ou <code bash>btrfs fi usage volume_btrfs</code> | ||
Pour vérifier l'état du système BTRFS passez par la commande : | Pour vérifier l'état du système BTRFS passez par la commande : | ||
Ligne 141: | Ligne 250: | ||
[/dev/sdc].write_io_errs 12897745 | [/dev/sdc].write_io_errs 12897745 | ||
[/dev/sdc].read_io_errs 6026751 | [/dev/sdc].read_io_errs 6026751 | ||
- | [/dev/sdc].flush_io_errs 700547 | + | [/dev/sdc].flush_io_errs 700547</code> |
- | + | <code bash>sudo btrfs device stats /media/$USER/c2b6e6ec-10d6-4c48-a28a-0dfc6f62d7281 | |
- | </code> ou <code bash>btrfs device stats volume_btrfs</code> | + | [/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 : | Pour voir l'état des disques de votre RAID BTRFS passez par la commande : | ||
Ligne 151: | Ligne 292: | ||
devid 1 size 465.76GiB used 100.00GiB path /dev/sdb | devid 1 size 465.76GiB used 100.00GiB path /dev/sdb | ||
devid 3 size 465.76GiB used 100.01GiB path /dev/sdd | devid 3 size 465.76GiB used 100.01GiB path /dev/sdd | ||
- | *** Some devices missing | + | *** Some devices missing=</code> |
- | </code> ou <code bash>btrfs fi show</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 : | Pour voir le détail des disques de votre RAID BTRFS passez la commande : | ||
Ligne 168: | Ligne 345: | ||
... | ... | ||
</code> | </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 ==== | ==== Augmenter/Diminuer le système de fichier du raid de disques ==== | ||
Ligne 208: | Ligne 448: | ||
</code> | </code> | ||
===== Liens ===== | ===== 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]] | * 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]] | * **ANGLAIS** [[https://askubuntu.com/questions/967172/grub2-does-not-detect-btrfs-partition|Faire détecter une installation de UBUNTU par un autre Ubuntu]] |