btrfs compressera-t-il automatiquement les fichiers existants lorsque la compression est activée?

25

J'ai choisi btrfs comme format de mon système de fichiers / dans le programme d'installation de Ubuntu 12.04 LTS. Une fois l’installation terminée, j’ai ajouté compress=lzo aux options de montage de /etc/fstab , puis j’ai redémarré.

Les fichiers existants seront-ils automatiquement compressés maintenant ou dois-je explicitement faire quelque chose pour que cela se produise?

    
posée ændrük 01.05.2012 - 05:35
la source

6 réponses

26

Vous devrez exécuter btrfs fi defragment pour forcer la recompression des données existantes. Sinon, seules les nouvelles données seront compressées.

De la la FAQ :

...consider remounting with -o compress, and either rewrite particular files in-place, or run btrfs fi defragment to recompress everything. This may take a while.

    
réponse donnée Norbert Fabritius 01.05.2012 - 19:28
la source
10

J'ai réalisé ce que Norbert Fabritius avait dit, mais je n'ai pas remarqué de compression dans les fichiers existants - df -h / avant btrfs fi defragment = 658MB | df -h / après la défragmentation btrfs fi = 658MB. Les nouveaux fichiers sont ok. Chercher un peu m'apporte cette citation:

Running this:

# btrfs filesystem defragment ~/stuff

does not defragment the contents of the directory.

This is by design. btrfs fi defrag operates on the single filesystem object passed to >it. This means that the command defragments just the metadata held by the directory >object, and not the contents of the directory. If you want to defragment the contents >of the directory, something like this would be more useful:

# find -xdev -type f -exec btrfs fi defrag '{}' \;

Après cela, j'occupe 656 Mo. Rien d’énorme, mais il y a certainement une compression.

Source: lien

J'espère que cela vous aidera.

Désolé mon anglais.

    
réponse donnée J. Neto 17.05.2013 - 18:37
la source
8

Selon la documentation d'Oracle, vous pouvez compresser des fichiers existants sur un système de fichiers en ligne existant en défragmentant chaque fichier qu'il contient avec les options -c, -clzo ou -czlib. LZO est recommandé pour la vitesse.

find / -xdev \( -type f -o -type d \) -exec btrfs filesystem defragment -v -clzo -- {} +

Ceci utilise la commande find pour exécuter le défragmenteur btrfs sur chaque fichier du système de fichiers racine (indiqué par la barre oblique juste après la commande "find" au début). Si vous avez d'autres sous-volumes, vous pouvez les réutiliser avec le chemin d'un sous-volume (j'en ai un dans / home, par exemple) au lieu de la barre oblique simple.

Vous aurez besoin des privilèges root pour cela, donc ajoutez sudo au début si nécessaire.

Voir:

réponse donnée Geoff 05.09.2013 - 23:12
la source
2

Selon le lien . Les algorithmes de compression suivants sont disponibles:


compress,compress-force
Enable compression. Starting with kernel 2.6.38 you can choose the algorithm for compression:

 - compress=zlib - Better compression ratio. It's the default and safe for olders kernels.
 - compress=lzo - Faster compression.
 - compress=no - Disables compression (starting with kernel 3.6). 

compress-force= - Enable compression even for files that don't compress well, like videos and dd images of disks. The options compress-force=zlib and compress-force=lzo works for kernels >2.6.38.

Note that old (before 2012) btrfs-progs versions will probably fail some operations (e.g. fsck) on filesystems with LZO compression. 

Remarque: cet article est la réponse à la question supplémentaire de savoir quel type d'algorithme de compression est disponible, ce qui a été demandé ci-dessous ...     

réponse donnée Rostislav Stribrny 16.03.2013 - 12:22
la source
2

Selon ArchWiki :

Tip: Compression can also be enabled per-file without using the compress mount option; simply apply chattr +c to the file. When applied to directories, it will cause new files to be automatically compressed as they come.

Très bien! Que Dieu bénisse BTRFS!

De même, à partir de le wiki BTRFS :

Can I force compression on a file without using the compress mount option?

Yes. The utility chattr supports setting file attribute c that marks the inode to compress newly written data.

    
réponse donnée Geremia 12.03.2015 - 03:58
la source
-9

La compression est activée par défaut dans Btrfs. Par conséquent, à moins que vous ne le désactiviez explicitement, elle devrait être compressée.

    
réponse donnée Diego 06.05.2012 - 13:16
la source

Lire d'autres questions sur les étiquettes