@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).
-
Cree archivos dispersos vacíos de cualquier tamaño. Que sean 5 terabytes:
[email protected]:~$ truncate -s 5T ext4.sparse btrfs.sparse
-
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
-
Crear puntos de montaje:
[email protected]:~$ mkdir ext4_mount btrfs_mount
-
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
- ¡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
- 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
-
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
-
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