Actividad: ZFS

ZFS es un sistema de archivos de nueva generación que aúna características del gestor de volúmenes, el controlador RAID y el sistema de ficheros. Basándose en la técnica copy on write para lograr una gestión sencilla del almacenamiento. Ofreciendo integridad, rendimiento y flexibilidad sobre hardware común.

Más información:

 

Actividad:

  1. Partiendo de una máquina virtual con Ubuntu 16.04 server, añada 5 nuevos discos duros de 10GiB. Y si es posible aumente la RAM de la máquina virtual a 4GiB.
  2. Construya un pool de nombre 'tank' utilizando dos discos duros. ¿Qué capacidad tiene el pool? ¿qué tolerancia a fallos? ¿dónde está montado?
  3. Reinicie la máquina y compruebe que el pool sigue disponible. Utilice los comandos: zpool list, zpool status, zpool iostat -v 3 y zfs list.
  4. Destruya el pool, y vuelva a crearlo utilizando dos discos en un mirror.
  5. Descargue y desarchive el código fuente de la última versión de Linux en el dataset del pool. Utilice los comandos: zpool list, zpool status y zfs list.
  6. Utilice el comando dd (por ejemplo: dd if=/dev/zero of=/dev/sdb) para sobreescribir los datos de uno de los discos del mirror.
  7. Compruebe que el código fuente sigue estando disponible. Haga cat de algunos ficheros y compruebe ZFS detecta la pérdida de información y la reconstruye de forma automática.
  8. Lance una operación scrub en el pool. Compruebe con zpool status que la operación scrub se realiza en segundo plano.
  9. Utilice el comando zpool history (sin opciones, y con los parámetros -i y -l).
  10. Construya dos datasets: tank/src y tank/backup. Active la compresión lz4 en uno de ellos. Copie el archivo con el código fuente de Linux en cada uno de los datasets. Compruebe que no se ahorra espacio gracias a la compresión del dataset puesto que se trata de datos que ya están comprimidos. Desarchive el código fuente de linux en ambos datasets. ¿Qué ocurre? ¿Qué ventaja proporciona la compresión transparente?
  11. Utilice el comando dd if=/dev/zero of=datos bs=1M count=1024, para crear un fichero en los datasets tank/src y tank/backup. ¿A qué velocidad se ha escrito en cada caso? Utilice los comandos ls -l y du -hs para obtener información de los ficheros. ¿Qué ocurre?.

 

  1. Destruya el pool anterior.
  2. Suponga que de los 5 discos dedicados a datos, los dos últimos son más rápidos. Por ello se van a particionar de la siguiente manera: una partición de 2GiB y otra partición con el resto de capacidad.
  3. En el momento de crear un pool, o bien cuando se añade un disco al pool, el comando zpool permite utilizar la opción 'ashift'. ¿Para qué sirve? ¿Qué valor debe utilizarse cuando se utilizan discos Advanced Format?.
  4. Construya un pool de nombre 'tank' de acuerdo a los siguientes requisitos:
    • Se desea soportar la avería de un disco.
    • Se desea contar con una gran capacidad de almacenamiento.
    • Se están utilizando discos con sectores de 4KiB.
    • De los 5 discos adicionales, se utilizarán 3 para guardar datos (los tres primeros).
    • Los dos últimos discos (que tienen 2 particiones cada uno de ellos) cumplirán la siguiente función: La partición pequeña de cada disco se utilizará para que el pool cuente con un vdev de tipo log. La partición grande de cada disco se utilizará para mejorar el rendimiento del pool.
  5. Active la compresión 'lz4' en el dataset principal.
  6. Construya el dataset tank/data. Copie y desarchive en su interior el código fuente de Linux.
  7. Realice el snapshot tank/data@backup. Utilice el comando zfs list -t all para obtener información.
  8. Acceda a los datos del snapshot. ¿Puede cambiar los datos del snapshot?
  9. Borre algunos ficheros de tank/data y compruebe que siguen estando disponibles en tank/data@backup.
  10. Utilice zfs rollback para volver a dejar tank/data tal y como estaba cuando se hizo el snapshot.
  11. Utilice zfs clone para crear el clon tank/copia a patir de tank/data@backup. ¿Puede cambiar los datos del clon?

 

  1. Prepare una nueva máquina virtual a la que añadirá 4 discos duros de 10GiB.
  2. Cambie el hostname de esta segunda máquina para que se llame 'backup'.
  3. Configure en esta máquina un zpool con los 4 discos adicionales.
  4. Utilice las facilidades de ZFS para enviar y recibir sistemas de ficheros, de tal manera que se pueda enviar el snapshot tank/data@backup desde la primera máquina a la segunda.
  5. ¿Qué será necesario hacer si se quiere realizar snapshots automáticos de tank/data cada cierta cantidad de tiempo y transmitirlos a la máquina de respaldo?