ZFS (Zettabyte File System) es un nuevo filesystem desarrollado por Sun Microsystems.
ZFS destaca por su gran capacidad, integración de los conceptos de sistema de ficheros y administrador de volúmenes en un solo producto, nueva estructura sobre el disco, sistemas de archivos ligeros, y una administración de espacios de almacenamiento sencilla.
Con ZFS toda la administración se resume a 2 comandos: zfs y zpool.
ZFS trabaja con un pool que está formado por todos los dispositivos físicos. Las características del pool son:
A continuación vamos a crear un pool llamado "babilonia" de 4GB comprendido por los discos "c1d0" y "c1d1" ambos con un tamaño de 2GB.
zpool create -f data_pool c1d0
zpool destroy data_pool
zpool create -f data_pool mirror c1t1d0s3 c1t2d0s3
ZFS implemente un esquema de redundancia parecido al RAID 5 que se denomina RAID Z. Esta configuración evita el "agujero de escritura" del RAID 5 y la necesidad de la secuencia de leer/modificar/escribir para operaciones de escrituras pequeñas efectuando sólo escrituras de divisiones (stripes) completas, espejando los bloques pequeños en lugar de protegerlos con el cálculo de paridad, lo que resulta posible gracias a que el sistema de ficheros conoce la escritura de almacenamiento subyacente y puede gestionar el espacio adicional cuando lo necesita.
zpool create -f data_pool raidz c1t1d0s3 c1t2d0s3 c1t3d0s3
zpool attach -f rpool c1t0d0s0 c1t1d0s0
zpool detach rpool c1t0d0s0
zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
data_pool 82.5G 6.51G 76.0G 7% ONLINE -
logs_pool 14.9G 247K 14.9G 0% ONLINE -
rpool 32.5G 8.51G 24.0G 26% ONLINE -
zpool status
pool: data_pool
state: ONLINE
scrub: scrub completed after 0h0m with 0 errors on Wed Mar 11 17:56:13 2009
config:
NAME STATE READ WRITE CKSUM
data_pool ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c1t0d0s3 ONLINE 0 0 0
c1t1d0s3 ONLINE 0 0 0
c1t2d0s3 ONLINE 0 0 0
c1t3d0s3 ONLINE 0 0 0
errors: No known data errors
pool: rpool
state: ONLINE
scrub: scrub completed after 0h3m with 0 errors on Wed Mar 11 17:22:19 2009
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c1t0d0s0 ONLINE 0 0 0
c1t1d0s0 ONLINE 0 0 0
errors: No known data errors
El scrubbing comprueba todos los checksums del sistema de ficheros para ver si éste está limpio.
zpool scrub rpool
Vamos a crear 2 sistemas de ficheros: uno para instalar aplicaciones y otro para datos.
zfs create babilonia/aplicaciones
zfs create babilonia/datos
zfs list
NAME USED AVAIL REFER MOUNTPOINT
babilonia 138K 3,81G 27,5K /babilonia
babilonia/aplicaciones 24,5K 3,81G 24,5K /babilonia/aplicaciones
#babilonia/datos 24,5K 3,81G 24,5K /babilonia/datos
La salida nos muestra los nuevos sistemas de ficheros. Todos los sitemas de ficheros comparten el mismo espacio (3.81GB) que es el tamaño del pool.
Los sistemas de ficheros creados con ZFS se montan automáticamente y de forma persistente. No hace falta hacer un mount y/o editar el fichero "/etc/vfstab".
Los sitemas de ficheros ZFS tienen propiedades que pueden ser activadas o desactivadas. Esto lo realizamos mediante el comando "zfs" utilizando las opciones "set" para establecer o "get" para leer. A continuación se mostrarán algunos ejemplos.
Para cambiar el punto de motaje de un filesystem ZFS ejecutamos:
zfs set mountpoint=/mnt tank/home
Vamos a establecer una quota de 1GB para el sistema de ficheros "babilona/aplicaciones":
zfs set quota=1GB babilonia/aplicaciones
Una quota limita el espacio de un sistema de ficheros pero no garantiza dicho espacio. Reservaremos 1GB para el sistema de ficheros "babilonia/datos":
zfs set reservation=1GB babilonia/datos
El sistema de ficheros "babilonia/datos" tiene reservados 1GB del pool. Si el resto de ficheros llena el pool no peligra nuestro espacio reservado. Verificamos los resultados:
zfs list
NAME USED AVAIL REFER MOUNTPOINT
babilonia 1,00G 2,81G 27,5K /babilonia
babilonia/aplicaciones 24,5K 1024M 24,5K /babilonia/aplicaciones
babilonia/datos 24,5K 3,81G 24,5K /babilonia/datos
ZFS nos permite tener un sistema de ficheros con información comprimida. Lo activamos ejecutando:
zfs set compression=on babilonia/datos
Para obtener datos del ratio de compresión del sistema de ficheros ejecutamos:
zfs get compressratio babilonia/datos
NAME PROPERTY VALUE SOURCE
babilonia/datos compressratio 1.00x -
Para establecer un sistema de ficheros como solo lectura modificamos el siguiente parámetro:
zfs set readonly=on babilonia/datos
Para cambiar el nombre de un sistema de ficheros ZFS ejecutamos:
zfs rename babilonia/aplicaciones datapool/apps
Para ver los valores de las propiedades de un ZFS ejecutamos zfs con la opción get.
zfs get all babilonia/aplicaciones
NAME PROPERTY VALUE SOURCE
babilonia/aplicaciones type filesystem -
babilonia/aplicaciones creation Fri Jan 26 19:11 2007 -
babilonia/aplicaciones used 24,5K -
babilonia/aplicaciones available 1024M -
babilonia/aplicaciones referenced 24,5K -
babilonia/aplicaciones compressratio 1.00x -
babilonia/aplicaciones mounted yes -
babilonia/aplicaciones quota 1G local
babilonia/aplicaciones reservation none default
babilonia/aplicaciones recordsize 128K default
babilonia/aplicaciones mountpoint /babilonia/aplicaciones default
babilonia/aplicaciones sharenfs off default
babilonia/aplicaciones checksum on default
babilonia/aplicaciones compression off default
babilonia/aplicaciones atime on default
babilonia/aplicaciones devices on default
babilonia/aplicaciones exec on default
babilonia/aplicaciones setuid on default
babilonia/aplicaciones readonly off default
babilonia/aplicaciones zoned off default
babilonia/aplicaciones snapdir hidden default
babilonia/aplicaciones aclmode groupmask default
babilonia/aplicaciones aclinherit secure default
Comentarios recientes
42 weeks 3 days ago
42 weeks 3 days ago