Archivo Disperso o Thin provisioning
By: Date: junio 23, 2015 Categories: Personal

Mis lectores mas antiguos recordaran un articulo llamado

¿Como comprime 650MB en 1MB?

El actual es un articulo muy similar trata de un comportamiento muy común en las virtualizaciones de disco duro de cualquier software mediamente bueno.

A esta técnica se le llama Archivo Disperso o Thin provisioning. Este tipo de archivo tiene un comportamiento especial, simula tener un espacio físico que realmente no tiene, incluso puede tener un tamaño irreal, por ejemplo almacenar un archivo de 5000 TB en un disco duro 1 GB y es completamente valido y usable en teoría.

¿ Donde usar archivos así ?

Prueba de sistemas de archivos, simulación, como un programador que escribe el driver del ext2, el ext3, XFS, ext4, etc. probando los limites de su sistema de archivos sin tener que comprar decenas de discos y arreglarlos ( RAID-0 ) , esto les permite crear lugares de trabajo virtual, algunos sistemas de archivos soportan discos teóricos que simplemente hoy en el 2015 no existen

En las maquinas virtuales es obvio, puedes asignarles discos virtuales de tamaños generosos, el archivo Thin provisioning solo ocupara el espacio real de lo que este almacenado en la maquina de virtual, asi que si el archivo Thin provisioning es de 50 GB pero realmente solo están almacenados 2 GB físicamente solo ocupara esos 2GB en disco, dejando el resto del espacio fisico para otras maquinas virtuales, que igualmente podrían tener discos virtuales de 100GB, 500GB aunque el disco duro solo tenga un máximo físico de 200 GB

¿ Para que querrías un archivo así ?

Este tipo de archivos son ideales para la escalacion de recursos, por ejemplo en una maquina virtual para un proyecto que se le ha dado un disco virtual Thin provisioning de 500 GB pero físicamente el servidor de virtualizacion solo tiene 200 GB , el departamento de T.I. Sabe que en el futuro la maquina requerirá esos 500 GB realmente , pero no hoy, hoy solo necesita 150 GB que es lo que están usando realmente, aunque eventualmente su almacenamiento crecerá, tiene tiempo de hacer su requerimiento de compra de mas discos duros, mientras tanto la maquina virtual del proyecto ya esta trabajando y no se frena por que el DEPTO de T.I. No tiene el recursos en ese momento.

¿ Como hago un archivo disperso o Thin provisioning ?

Este tipo de archivo en realidad debe estar recursivamente soportado pro el sistema de archivos que lo va a contener, asi que cualquier sistema moderno deberia poder soportarlo, en los sistemas tipo Unix como GNU/Linux prácticamente todos los sistemas de archivos como XFS, EXT2,3,4 y otros lo soportan, el NTFS en Windows también lo soporta.

En GNU/Linux hay 2 formas faciles de crear manualmente este tipo de archivos, con los comandos dd y truncate

usando dd

dd if=/dev/zero of=archivodisperso.img bs=1k seek=50G

usando truncate

truncate -s 50G archivodisperso.img

Ambos comandos hacen el mismo archivo, un archivo que solo ocupa físicamente 1Kbyte pero virtualmente es de 50 Gbytes

una vez con un archivo de este tipo se puede dar formato con el sistema de archivos favorito.

mkfs.ext4 archivodisperso.img

y montarlo como tal

mount archivodisperso /mnt/algunpuntodemontado

para este articulo simule un servidor de archivos con un almacenamiento de 2000 Terabytes.

Use Btrfs por que ext2,3,4 inclusive XFS tardan demasiado en crear el FS con un disco duro tan gigantesco

Archivo Disperso o Thin provisioning
Ver mas grande

un vídeo demostrativo.

Deja un comentario

Tu dirección de correo electrónico no será publicada.