Como señalamos la semana pasada, Ubuntu 19.10 ha llegado oficialmente y trae consigo una serie de características realmente interesantes. Aunque la mayoría de esas nuevas opciones se dirigen a los usuarios de escritorio, hay una característica particularmente emocionante que beneficiará tanto a los usuarios de escritorio como de servidor. Esa característica es la compatibilidad con ZFS.

Desarrollado por primera vez por Sun Microsystems para su distribución Solaris Unix, ZFS es una combinación de sistema de archivos de 128 bits y gestor de volúmenes lógicos que ofrece las siguientes características:

  • Es escalable.
  • Ofrece compatibilidad con una gran capacidad de almacenamiento y una compresión de datos más eficiente.
  • Incluye snapshots y rollbacks.
  • Soporta clones de copia en escritura.
  • Revisa continuamente la integridad y la reparación automática.
  • Direccionamiento de 128 bits
  • Y mucho más.

Pregunte a cualquier administrador y estará de acuerdo en que la adición de ZFS es un gran negocio para Ubuntu. ¿Por qué? Las instantáneas y las funciones de reversión por sí solas valen el precio de la entrada (que, por cierto, es gratuita). Con esta función, los administradores pueden revertir sus sistemas a un estado de funcionamiento (o a un estado que incluya datos borrados accidentalmente). Eso es algo muy importante.

Por supuesto, las instantáneas y las reversiones no son algo nuevo. De hecho, muchas plataformas han incluido esta herramienta durante años. Así que tal vez Ubuntu está un poco detrás de la curva en esto. Pero para cualquiera que use Ubuntu este es un caso de «más vale tarde que nunca»

¿Pero cómo funciona ZFS en Ubuntu? Me alegro de que lo preguntes. Déjame mostrarte.

Una advertencia

Antes de que te sumerjas en esto, debes saber que el soporte de ZFS en Ubuntu 19.10 es experimental. Aunque he encontrado que es increíblemente estable, usted podría pensar dos veces antes de usarlo en un entorno de producción (hasta que ya no está catalogado como «experimental»).

También, tenga en cuenta que el soporte ZFS se ofrece actualmente sólo durante la instalación de la versión de escritorio. Eso no significa que no se pueda añadir soporte para el sistema de archivos en la versión de servidor, pero no es tan sencillo. Debido a esto, voy a estar demostrando en la versión de escritorio de Ubuntu 19.10.

Instalación

El primer paso es habilitar ZFS en el momento de la instalación de Ubuntu 19.10. Durante la instalación, encontrará una nueva opción en la fase de tipo de instalación (Figura 1).

Figura 1: Selección de la opción ZFS durante la instalación.

Una vez completada la instalación, reinicie e inicie sesión.

Si está utilizando la versión de servidor de Ubuntu 19.10, siempre se puede instalar el soporte ZFS con el comando:

1
sudo apt-get install zfsutils-linux

Por supuesto, en caso de que vayas por esa ruta, tendrás que dar algunos pasos adicionales (como crear conjuntos de datos). Con la instalación de escritorio, encontrará que toda su jerarquía de directorios está hecha de conjuntos de datos ZFS, por lo que hay mucho menos trabajo que hacer.

Primeros pasos con ZFS

Una vez que haya iniciado sesión en el escritorio, querrá abrir una ventana de terminal y obtener una lista de sus conjuntos de datos. Con las instalaciones de Ubuntu que no utilizan ZFS, normalmente se trabaja con rutas de directorios como /home/jack o /usr/local/. Este no es el caso de los sistemas con ZFS. En su lugar, trabajan con conjuntos de datos. Un conjunto de datos es un tipo de sistema de archivos que comparte un pool de almacenamiento (el bloque de construcción más básico de ZFS).

Para encontrar sus conjuntos de datos, emita el comando

1
zfs list

Como puede ver (en la Figura 2), cada directorio se encuentra en el pool bpool (de arranque) o rpool (de raíz).

Figura 2: Nuestro listado de conjuntos de datos.

Trabajemos con el directorio personal de un usuario. En este caso, el conjunto de datos rpool/USERDATA/jack_bwcn4u.

Crear una instantánea

Lo primero que vamos a hacer es crear una nueva instantánea del directorio /home/jack (que, recordemos, es el conjunto de datos rpool/USERDATA/jack_bwcn4u). Digamos que queremos crear una instantánea etiquetada con la fecha de hoy. El comando para esto sería:

1
sudo zfs snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19

O se podría incluir el comando de la fecha así:

1
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@`date +%F`

Para verificar que tu instantánea fue tomada, emite el comando:

1
zfs list -t snapshot

Debería ver todas las instantáneas actuales listadas (Figura 3).

Figura 3: Se ha creado nuestra nueva instantánea.

Regresar una instantánea

Digamos que, por la razón que sea, se ha eliminado accidentalmente un directorio fuera de ese directorio principal. ¿Qué hace usted? Afortunadamente, usted ha tomado una instantánea y puede hacer retroceder esa instantánea, de tal manera que el directorio eliminado regresa.

Primero, vamos a borrar el directorio ~/Documentos con el comando:

1
rm -rf /home/jack/Documents

Ejecuta el comando ls y podrás ver que el directorio Documents ha desaparecido (Figura 4).

Nuestro directorio Documentos ha sido eliminado.

Ahora retrocederemos la instantánea del viernes para recuperar ese directorio. Para ello, emite el comando:

1
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19

Después de que el comando se complete, vuelva a ejecutar ls para ver que los documentos han vuelto (Figura 5).

Figura 5: Documentos ha vuelto.

Destrucción de instantáneas

Supongamos que ha creado varias instantáneas, o que una de ellas tiene datos corruptos o faltantes. Es posible que quieras eliminar esa instantánea. Digamos que queremos eliminar la instantánea rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19. Para ello, el comando sería:

1
sudo zfs destroy rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19

Una vez que has destruido una instantánea no se puede recuperar, así que usa ese comando con cuidado. Si tienes una instantánea especialmente importante que no quieres que se destruya, puedes retenerla. Para poner una retención en nuestra instantánea rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19, debes emitir el comando

1
sudo zfs hold keep rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19

Ahora, si intenta destruir esa instantánea, verás un error (Figura 6).

Figura 6: No se puede destruir esta instantánea.

Para destruir una instantánea retenida, hay que añadir la opción -d así:

1
<i>sudo zfs destroy -.d rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19</i>

Ya está, la instantánea retenida ha desaparecido.

Y eso es lo básico para crear y destruir instantáneas con la recién añadida función ZFS en Ubuntu 19.10. Pruebe esto en un entorno de prueba y ver lo bien que funciona. Hasta ahora sólo he descubierto un problema que, al tratar de hacer retroceder una instantánea, tuve que reiniciar la máquina antes de que el comando de retroceso se ejecutara con éxito. Aparte de ese problema, todo ha ido bien con ZFS y Ubuntu 19.10.

.

Articles

Deja una respuesta

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