GNU/Linux >> Tutoriales Linux >  >> Linux

Contenedor con compresión incorporada, que ajusta automáticamente su tamaño

@Tetsujin me dio la dirección correcta, OS X sparse de paquetes/imágenes tienen analog en Linux y estos son archivos dispersos.

Los archivos dispersos crecen a medida que crecen los datos que contienen. Pueden contener cualquier sistema de archivos de Linux, incluidas las variantes modernas con compresión integrada, como btrfs.

A continuación se muestra cómo crear una imagen btrfs comprimida dispersa. btrfs El soporte en Debian y sus derivados (como Ubuntu) se puede habilitar mediante la instalación de btrfs-tools paquetes (sudo apt-get install btrfs-tools ). He agregado un ext4 disperso imagen también para comparar la velocidad y el tamaño. Todas las operaciones se realizaron en Debian 7.8 Wheezy (antiguo estable a partir del 30 de abril de 2015).

  1. Cree archivos dispersos vacíos de cualquier tamaño. Que sean 5 terabytes:

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

a 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

a 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. Crear puntos de montaje:

     [email protected]:~$ mkdir ext4_mount btrfs_mount
    
  2. montarlos. No olvides loop opción:

ext4 :

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

btrfs (no olvides compress opción (puede ser zlib o lzo )):

    [email protected]:~$ sudo mount -o loop,compress=lzo -t btrfs btrfs.sparse btrfs_mount
  1. ¡Eso es todo! Los sistemas de archivos se crean y montan, aparecen como 5 TB para el sistema operativo, pero en realidad ocupan muy poco espacio:

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. Con el fin de realizar pruebas, he creado un enorme archivo de texto de 1,3 GB con un patrón repetitivo. Será cp 'd a ambos sistemas de archivos recién creados:

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. Como se ha visto en el paso anterior, btrfs demostró ser mucho más rápido durante una transferencia de datos altamente comprimibles, en comparación con el buen ext4 . Verifiquemos los tamaños de los sistemas de archivos después:

     [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 demostró ser mucho más eficiente en cuanto al espacio. Por último, verifiquemos también los tamaños de los archivos dispersos:

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

Eso es todo. Si es necesario, los archivos dispersos pueden ampliarse aún más. btrfs también se puede cambiar de tamaño en línea.

Solución genial para rsync normal copias de seguridad Pero no olvide hacer una copia de seguridad de estos archivos de forma más tradicional, desde btrfs es todavía un sistema de archivos experimental .

Más información sobre Arch Wiki:https://wiki.archlinux.org/index.php/Sparse_file y https://wiki.archlinux.org/index.php/Btrfs


Linux
  1. ¿Qué software de compresión de archivos para Linux ofrece la mayor reducción de tamaño?

  2. ¿Cómo usar Btrfs con compresión en un disco duro USB externo?

  3. Manejo de memoria con struct epoll_event

  4. Iniciar servicios automáticamente en Docker Container

  5. Ajusta el brillo de la pantalla automáticamente por la noche

Primeros pasos con btrfs para Linux

Cómo encontrar aplicaciones instaladas con tamaño instalado en Linux

Descargar subtítulos automáticamente con VLC Media Player

estrategia de partición y subvol con btrfs

Tamaño de una carpeta con du

cree una imagen vacía con dd para que sus sectores sean de 4096 bytes en lugar de 512