
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.