Zettabyte File System – ZFS

En esta pagina mostraremos como se crean volúmenes dentro de un zpool. Cada zpool consiste en un espacio de almacenamiento con una arquitectura concreta. Sobre este espacio se crearán volúmenes que se añadirán a la estructura de carpetas del sistema operativo.

Cuando se crea un zpool se crea un volumen principal que se montará sobre la carpeta raiz del sistema operativo. Si creamos un zpool con el nombre tank, se creará por defecto la carpeta /tank con todo el espacio asignado.

Creación de un volumen ZFS

Para crear un volumen con el nombre export en el zpool tank ejecutaremos el comando:

# zfs create tank/export

Este volumen se montará en la carpeta /tank/export. El montaje se realiza de manera automática. El espacio disponible es todo el espacio del zpool, pero debemos tener en cuenta que, cualquier incremento de la ocupación, hará disminuir el espacio libre en todos los volúmenes ZFS.

Si queremos limitar el tamaño máximo de este volumen podemos modificarlo con el comando:

# zfs set quota=10G tank/export

También podemos cambiar el punto de montaje respecto al punto de montaje por defecto.

# zfs set mountpoint=/export tank/export

Estos cambios se realizan de manera automática sin necesidad de ejecutar comandos como mount o mkfs.

Snapshots

Un snapshot es una foto concreta de un volúmen ZFS en un momento concreto. Esta foto no se muestra pero nos puede ser útil para recuperar la información de ese momento concreto. Para crear un snapshot ejecutaremos el siguiente comando:

# zfs snapshot tank/export@friday

La ocupación de este snapshot no es el tamaño completo del volumen. Su ocupación dependerá de las diferencias con el volumen original. Si no hay muchas diferencias, la ocupación del snapshot, será mínima. En cambio, si hay muchas diferencias, la ocupación puede ser grande.

Un vez creado podemos recuperar en el volumen el contenido del snapshot

# zfs rollback tank/export@friday

O también podemos borrar el snapshot si alterar el volumen original.

# zfs destroy tank/export@friday

También podemos enviar el contenido del snapshot a otro volumen ZFS

# zfs send tank/export@friday | zfs recv tank/export-friday

Este envío también puede ser a otro servidor

sys1# zfs send tank/export@friday | ssh sys2 zfs recv tank/export

La conexión utiliza el protocolo SSH por lo que debemos probar primero dicha conexión y disponer de los credenciales necesarios.

Listado de volúmenes ZFS

Podemos mostrar la lista de volúmenes ZFS con el siguiente comando:

# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
tank                   476K  16.5G    21K  /tank
tank/clone              18K  16.5G    18K  /tank/clone
tank/home              296K  16.5G    19K  /tank/home
tank/home/marks        277K  16.5G   277K  /tank/home/marks
tank/home/marks@snap      0      -   277K  -
tank/test               18K  16.5G    18K  /test

Podemos mostrar solo los volúmenes ZFS de un zpool concreto:

zfs list -r tank

También podemos mostrar solo los snapshots

zfs list -t snap