btrfs
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
btrfs [2020/01/20 09:40] – [Migration de version de Linux Mint par ré-installation] sebsauvage | btrfs [2020/06/24 14:06] – [À l'installation de Mint] sebsauvage | ||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
* Meilleure gestion des petits fichiers qu' | * Meilleure gestion des petits fichiers qu' | ||
* Meilleures performances: | * Meilleures performances: | ||
- | * Avec la compression | + | * Avec la compression, |
* En btrfs, les répertoires sont indexés. | * En btrfs, les répertoires sont indexés. | ||
* La duplication d'un fichier ou dossier existant est instantané, | * La duplication d'un fichier ou dossier existant est instantané, | ||
Ligne 22: | Ligne 22: | ||
Je note ici en vrac des infos utiles ou mes interrogations. | Je note ici en vrac des infos utiles ou mes interrogations. | ||
+ | < | ||
Ligne 192: | Ligne 193: | ||
* Quel que soit votre choix, btrfs décompresse de manière transparente. (Vous n'avez pas besoin d' | * Quel que soit votre choix, btrfs décompresse de manière transparente. (Vous n'avez pas besoin d' | ||
* Il existe 3 algorithmes de compression : lzo (le plus rapide, impacte minimal sur le CPU), zstd et zlib (plus puissant, mais beaucoup plus gourmand en CPU). | * Il existe 3 algorithmes de compression : lzo (le plus rapide, impacte minimal sur le CPU), zstd et zlib (plus puissant, mais beaucoup plus gourmand en CPU). | ||
+ | * Même si vous n'avez pas activé la compression dans les options de montage, vous pouvez sans problème lire et écrire les partitions btrfs contenant des données compressées. | ||
+ | |||
+ | Il y a donc 2 endroits où vous pouvez compresser: | ||
+ | * **Dans les options de montage de la partition btrfs** (en ajoutant '' | ||
+ | * **En compressant manuellement des fichiers/ | ||
+ | |||
+ | |||
+ | |||
+ | |||
Mon expérience: | Mon expérience: | ||
- | * J'ai choisi d' | + | * <del>J'ai choisi d' |
* Je ne constate aucun ralentissement, | * Je ne constate aucun ralentissement, | ||
* Le disque " | * Le disque " | ||
Ligne 204: | Ligne 214: | ||
* Voir occupé/ | * Voir occupé/ | ||
- | * Compresser tous les fichiers: < | + | * Compresser tous les fichiers: < |
* Exemple pratique: Sur un système Linux Mint 19.2 fraîchement installé (dans une VM): | * Exemple pratique: Sur un système Linux Mint 19.2 fraîchement installé (dans une VM): | ||
* Avant compression: | * Avant compression: | ||
* Après compression: | * Après compression: | ||
* On gagne 4 Go d'un coup ! | * On gagne 4 Go d'un coup ! | ||
- | * Pour que les nouveaux fichiers créés soient compressés automatiquement, | + | * Pour que les nouveaux fichiers créés soient compressés automatiquement, |
* La compression a un peu d' | * La compression a un peu d' | ||
* La compression s' | * La compression s' | ||
* La compression est parfaitement compatible avec les snapshots et la déduplication. | * La compression est parfaitement compatible avec les snapshots et la déduplication. | ||
* Une fois un fichier compressé, on ne peut pas " | * Une fois un fichier compressé, on ne peut pas " | ||
- | * Pourquoi lzo et pas zlib ou zstd ? Je n'ai qu'un Core-i3, et je veux le moins d' | ||
* La compression ne fonctionne pas pour les fichiers ou répertoires qui sont en //NOCOW//. | * La compression ne fonctionne pas pour les fichiers ou répertoires qui sont en //NOCOW//. | ||
- | * Pour savoir ce que vous gagnez comme place avec la compression, | + | * Pour savoir ce que vous gagnez comme place grâce à la compression, |
<hidden Cliquez pour afficher comment installer et utiliser compsize> | <hidden Cliquez pour afficher comment installer et utiliser compsize> | ||
Ligne 252: | Ligne 261: | ||
Certains outils de déduplication fonctionnent au niveau **fichier** (les fichiers identiques //en entier// seront dédupliqués), | Certains outils de déduplication fonctionnent au niveau **fichier** (les fichiers identiques //en entier// seront dédupliqués), | ||
- | |||
- | Même si les outils fonctionnant au niveau bloc sont a priori plus efficaces, ils consomment beaucoup plus de CPU et de mémoire, prennent plus de temps, mais surtout sont **fortement déconseillés avec certaines anciennes versions de btrfs et du noyau**. La solution safe pour dédupliquer est donc (pour le moment) de faire une déduplication au niveau fichiers. | ||
Voici différents outils: | Voici différents outils: | ||
- | <hidden Déduplication au niveau | + | <hidden Déduplication au niveau |
+ | * Installation: | ||
+ | * Utilisation: | ||
+ | * **-r** : traiter les sous-répertoires | ||
+ | * **-d** : soumettre les déduplications de blos de données à btrfs. | ||
+ | * **-h** : affichage des tailles lisible (k/M/G) | ||
+ | * **%%--hashfile=/ | ||
+ | * Le premier lancement sera **long**, car il va faire la checksum de //tous// les fichiers du disque. | ||
+ | * Les lancements suivants seront nettement plus rapides, car il n'ira examiner que les fichiers nouveaux/ | ||
+ | * Le fichier '' | ||
+ | * À la fin de chaque exécution, duperemove vous affichera le gain potentiel de place gagnée par la déduplication. | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | <hidden Déduplication au niveau fichiers avec jdupes | ||
jdupes possède une option spécifique pour btrfs. | jdupes possède une option spécifique pour btrfs. | ||
Ligne 286: | Ligne 308: | ||
</ | </ | ||
- | <hidden Déduplication au niveau blocs avec duperemove> | ||
- | * Installation: | ||
- | * Utilisation: | ||
- | * **-r** : traiter les sous-répertoires | ||
- | * **-d** : faire une déduplication btrfs | ||
- | * **-h** : affichage des tailles lisible (k/M/G) | ||
- | * **%%--hashfile=/ | ||
- | |||
- | </ | ||
<hidden Déduplication au niveau blocs avec bees> | <hidden Déduplication au niveau blocs avec bees> | ||
Ligne 371: | Ligne 384: | ||
* [[https:// | * [[https:// | ||
* Le **'' | * Le **'' | ||
- | * Ne pas utiliser btrfs avec des **périphériques USB** (disque dur, clés USB...). La cause n'est pas vraiment btrfs lui-même mais la qualité désastreuse des pilotes USB. | + | * Ne pas utiliser btrfs sur des **périphériques USB** (disque dur externe, clés USB...). La cause n'est pas vraiment btrfs lui-même mais la qualité désastreuse des pilotes USB. |
* Quand vous faites un snapshot d'un sous-volume, | * Quand vous faites un snapshot d'un sous-volume, | ||
Ligne 377: | Ligne 390: | ||
- | ===== Migration et utilisation dans Linux (Mint) ===== | + | ===== Migration et utilisation dans Linux (Ubuntu / Linux Mint) ===== |
- | Le noyau Linux (et Linux Mint) supporte nativement btrfs. Avantages: | + | Le noyau Linux (et Ubuntu/Linux Mint) supporte nativement btrfs. Avantages: |
- | * Linux Mint permet | + | * Permet |
* Linux Mint est fourni avec Timeshift qui prend de manière automatique des snapshots btrfs (quotidiens/ | * Linux Mint est fourni avec Timeshift qui prend de manière automatique des snapshots btrfs (quotidiens/ | ||
- | | + | * (Dans Ubuntu, // |
+ | | ||
- | L' | + | L' |
---- | ---- | ||
Ligne 438: | Ligne 452: | ||
Je monte mes sous-volumes btrfs avec ces options: | Je monte mes sous-volumes btrfs avec ces options: | ||
- | < | + | < |
- | UUID=e3dc85e3-0d2b-40e3-803b-7c2cb0bf543a /home | + | UUID=e3dc85e3-0d2b-40e3-803b-7c2cb0bf543a /home |
* '' | * '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
* '' | * '' | ||
Ligne 482: | Ligne 496: | ||
* Rebootez: Vous devriez avoir votre ''/ | * Rebootez: Vous devriez avoir votre ''/ | ||
* Pour gagner de la place, supprimer ensuite les sous-volumes @.ancien et @home.new. | * Pour gagner de la place, supprimer ensuite les sous-volumes @.ancien et @home.new. | ||
+ | |||
+ | ---- | ||
===== Questions ===== | ===== Questions ===== | ||
- | * Quelle est la maintenance régulière à faire, et à quelle fréquence ? (defrag, scrub, balance... ?) | + | * Quelle est la maintenance régulière à faire sur un système btrfs, et à quelle fréquence ? (defrag, scrub, balance... ?) |
* En dehors, bien sûr, de ne pas garder inutilement plein de snapshots (mais Timeshift est bien paramétrable de ce côté là). | * En dehors, bien sûr, de ne pas garder inutilement plein de snapshots (mais Timeshift est bien paramétrable de ce côté là). | ||
* Pour nettoyer l' | * Pour nettoyer l' | ||
Ligne 506: | Ligne 522: | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Après 7 mois sous btrfs ===== | ||
+ | |||
+ | Voici donc un petit bilan après avoir passé ma machine personnelle d'ext4 en btrfs il y a 7 mois (j'ai migré en novembre 2019, nous sommes en juin 2020). | ||
+ | |||
+ | * **Espace libre** : J'ai beaucoup **beaucoup** plus d' | ||
+ | * Au fait que ''/'' | ||
+ | * La compression (écriture/ | ||
+ | * La déduplication (les portions de fichiers identiques sont fusionnés au niveau du stockage disque) | ||
+ | * **Accès au données** : Je n'ai constaté aucun ralentissement. La consommation CPU dûe à la compression n'est pas perceptible. Et la compression réduisant les I/O disque pour les mêmes données, je suis gagnant. | ||
+ | * **Accès aux méta-données**: | ||
+ | * N' | ||
+ | * J'ai fait attention, tel que recommandé, | ||
+ | * **Maintenance**: | ||
+ | * Défragmentation (avec recompression éventuellement des blocs qui ne seraient pas compressés). | ||
+ | * (Car oui, btrfs fragmente un peu à cause du Copy-On-Write, | ||
+ | * Déduplication (avec // | ||
+ | * Ces deux opérations me ramènent // | ||
+ | * (il faut dire que Steam est partagé entre plusieurs comptes sur ma machine, et que même avec un répertoire d' | ||
+ | * Je n'ai eu absolument aucun incident. | ||
+ | * J'en suis tellement content que j'ai finalement passé ma machine de travail également en btrfs. Là encore le gain de place sur disque a été phénoménal. | ||
+ | * À cette occasion, j'ai également booté sur ma clé USB pour modifier ma partition btrfs avec GParted qui l'a géré sans problème (création+déplacement+agrandissement). | ||
+ | * J'ai la tranquillité d' | ||
+ | |||
+ | Alors c'est un gros **oui**. Je continue sous btrfs. Je gagne énormément de la place, je réduis les I/O disque, et j'ai des outils de snapshot extrêmement pratiques. | ||
+ | |||
+ | Comme avec la compression la quantité globales de données écrites et lues sur disque est moindre: | ||
+ | * C'est un gain de performances pour les disques durs traditionnels. | ||
+ | * C'est un gain de durée de vie pour les SSD puisque cela réduit les écritures. | ||
+ | |||
+ | Histoire de vous donner un ordre d' | ||
+ | * Mon système (''/'' | ||
+ | * Le ''/ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | **PS**: Puisqu' | ||
+ | * **Swap** : Dans les versions récentes, btrfs supporte un fichier de swap, mais je n'ai pas pris le temps d' | ||
+ | * J'ai activé zram ('' | ||
+ | * Comme les SSD n' | ||
+ | * Mettre ''/ | ||
+ | * Ces répertoires ne contiennent pas beaucoup de données, mais subissent des écritures très fréquentes. | ||
+ | * à ceux qui me diraient "//il ne faut pas mettre /var/tmp en RAM//", | ||
+ | * Passer le // | ||
+ | * Vous pouvez aussi regarder du côté de log2ram pour réduire la fréquence des écritures dans /var/log. |
btrfs.txt · Dernière modification : 2023/03/20 12:52 de sebsauvage