¿Cómo puede el tamaño de la instantánea de AIX jfs2 ser menor que el tamaño de los datos en el fs?

¿Cómo puede el tamaño de la instantánea de AIX jfs2 ser menor que el tamaño de los datos en el fs?

En todos los sistemas operativos, creo instantáneas de un tamaño mayor que el espacio fs ocupado. Por ejemplo: si tuviera un fs llamado /try de 250 GB pero el espacio utilizado es de 100 GB, crearé una instantánea de 100 GB o un poco más. En AIX creo una instantánea con un tamaño inferior al espacio ocupado por fs... y funciona. En un volumen lógico de 2 GB creo un archivo de 590 MB

dd if=/dev/zero of=hello bs=1m count=590
590+0 records in
590+0 records out

luego creo la instantánea de 256 MB en lugar de 590 MB o más

snapshot -o snapfrom=/try -o size=256m 
Snapshot for file system /try created on /dev/fslv00

df informa el tamaño correcto de fs "try"

df -hT /try
/dev/try     jfs2    2,0G  591M    1,5G  29% /try

Puedo montar la instantánea

mount -o snapshot /dev/fslv00 /mnt/

¡El tamaño del informe df es de 256 MB para la instantánea, pero se utilizan 1,5 MB!

df -hT /mnt
/dev/fslv00    jfs2  256M  1,5M    255M   1% /mnt

Para el último intento, hice una verificación md5sum de un archivo... y funciona tanto para instantáneas como para fs reales.

b7fb2207c641085a9cf02064edf1742e  /mnt/hello
b7fb2207c641085a9cf02064edf1742e  /try/hello

Las preguntas son simples: ¿cómo puede ser que el tamaño de la instantánea sea inferior al tamaño del fs real? ¿Por qué el espacio en la instantánea (1,5 MB) está por debajo del espacio utilizado (591 MB) del fs real?

Respuesta1

Solución encontrada. Es "posible" crear una instantánea con un tamaño inferior al tamaño fs usado del fs real, pero es totalmente inútil. Cuando elimino el archivo original /try/hello, el tamaño de la instantánea se vuelve grande (debido a la transferencia de los bloques de archivos), pero debido a que lo creé con el tamaño de fs real, el fs se llena y el archivo "hello" se vuelve roto y devuelve un error de E/S.

df -hT /mnt
/dev/fslv00    jfs2    256M  256M     0 100% /mnt

md5sum /mnt/hello 
md5sum_64: /mnt/hello: There is an input or output error.

información relacionada