GNU/Linux >> Tutoriels Linux >  >> Linux

Conteneur avec compression intégrée, qui ajuste automatiquement sa taille

@Tetsujin m'a donné la bonne direction, OS X est sparse bundles/images ont analog sous Linux et ce sont des fichiers clairsemés.

Les fichiers épars grandissent à mesure que les données qu'ils contiennent augmentent. Ils peuvent contenir n'importe quel système de fichiers Linux, y compris toutes les variantes modernes avec compression intégrée, telles que btrfs.

Ce qui suit montre comment créer une image btrfs compressée clairsemée. btrfs le support dans Debian et ses dérivés (comme Ubuntu) peut être activé par l'installation de btrfs-tools forfaits (sudo apt-get install btrfs-tools ). J'ai ajouté un ext4 clairsemé image ainsi pour comparer la vitesse et la taille. Toutes les opérations ont été effectuées sur Debian 7.8 Wheezy (ancienne version au 30 avril 2015).

  1. Créez des fichiers clairsemés vides de n'importe quelle taille. Soit 5 téraoctets :

     [email protected]:~$ truncate -s 5T ext4.sparse btrfs.sparse
    
  2. Formatez-les

vers ext4 :

    [email protected]:~$ mkfs.ext4 ext4.sparse
    mke2fs 1.42.5 (29-Jul-2012)
    <...>
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done

à btrfs :

    [email protected]:~$ mkfs.btrfs btrfs.sparse

    WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
    WARNING! - see http://btrfs.wiki.kernel.org before using

    fs created label (null) on btrfs.sparse
            nodesize 4096 leafsize 4096 sectorsize 4096 size 5.00TB
    Btrfs Btrfs v0.19
  1. Créer des points de montage :

     [email protected]:~$ mkdir ext4_mount btrfs_mount
    
  2. Montez-les. N'oubliez pas loop choix :

ext4 :

    [email protected]:~$ sudo mount -o loop -t ext4 ext4.sparse ext4_mount

btrfs (n'oubliez pas compress option (peut être zlib ou lzo )):

    [email protected]:~$ sudo mount -o loop,compress=lzo -t btrfs btrfs.sparse btrfs_mount
  1. C'est tout ! Les systèmes de fichiers sont créés et montés, apparaissent comme 5 To pour le système d'exploitation, mais occupent en réalité très peu d'espace :

df :

    [email protected]:~$ df -h | grep _mount
    /dev/loop0                         5.0T  189M  4.8T   1% /home/a/ext4_mount
    /dev/loop1                         5.0T  120K  5.0T   1% /home/a/btrfs_mount

du :

    [email protected]:~$ du -h *.sparse
    4.3M    btrfs.sparse
    169M    ext4.sparse
  1. A des fins de test, j'ai créé un énorme fichier texte de 1,3 Go avec un motif répétitif. Ce sera cp 'd aux deux systèmes de fichiers nouvellement créés :

ext4 :

    [email protected]:~$ time sudo cp /store/share/bigtextfile ext4_mount/

    real    0m12.344s
    user    0m0.008s
    sys     0m1.708s

btrfs :

    [email protected]:~$ time sudo cp /store/share/bigtextfile btrfs_mount/

    real    0m3.714s
    user    0m0.016s
    sys     0m1.204s
  1. Comme on l'a vu à l'étape précédente, btrfs s'est avéré beaucoup plus rapide lors d'un transfert de données hautement compressibles, par rapport au bon vieux ext4 . Vérifions ensuite la taille des systèmes de fichiers :

     [email protected]:~$ df -h | grep _mount
     /dev/loop0                         5.0T  1.5G  4.8T   1% /home/a/ext4_mount
     /dev/loop1                         5.0T   46M  5.0T   1% /home/a/btrfs_mount
    
  2. btrfs s'est avéré beaucoup plus économe en espace. Enfin, vérifions également la taille des fichiers fragmentés :

     [email protected]:~$ du -h *.sparse
     50M     btrfs.sparse
     1.4G    ext4.sparse
    

C'est ça. Si nécessaire, les fichiers épars peuvent être encore agrandis. btrfs peut également être redimensionné en ligne.

Solution cool pour rsync ordinaire sauvegardes. Mais n'oubliez pas de sauvegarder ces fichiers de manière plus traditionnelle également, depuis btrfs est toujours un système de fichiers expérimental .

Plus d'informations sur Arch Wiki :https://wiki.archlinux.org/index.php/Sparse_file et https://wiki.archlinux.org/index.php/Btrfs


Linux
  1. Pouvez-vous utiliser des ancres ^ $ avec Ls ?

  2. Comment dupliquer un fichier sans copier ses données avec Btrfs ?

  3. Quelle commande sous Linux [expliqué avec des exemples]

  4. Gestion de la mémoire avec la structure epoll_event

  5. Size() vs ls -la vs du -h laquelle est la bonne taille ?

Premiers pas avec btrfs pour Linux

Comment trouver des applications installées avec une taille installée sous Linux

Télécharger les sous-titres automatiquement avec VLC Media Player

Compresser les fichiers zip avec une compression plus élevée

Taille d'un dossier avec du

Quel système d'exploitation s'exécute dans mon conteneur Docker ?