Comments
You can use your Mastodon account to reply to this post.
martes, 11 de abril de 2023
Tiempo de lectura 4 minutos
MergerFS es una delicia para todos aquellos que, por una razón u otra, necesitamos unificar varios discos duros en un solo directorio. Esta herramienta está solamente disponible para Linux, aunque para Windows hay otras aplicaciones que hacen lo mismo. Este software permite crear un sistema de archivos virtual (usando para ello fuse), integrando todos los contenidos presentes en uno o más discos duros. Esto viene a darnos un directorio que contiene todos los archivos presentes en nuestros discos, lo que hace las cosas mucho más fáciles a la hora de mantener el orden entre 2 o más unidades. De entre sus principales características, permite agregar contenido a tus discos siguiendo varias políticas al crear archivos o carpetas. Todo esto se encuentra explicado en su documentación en inglés, aunque aquí simplemente detallaré la forma en la que lo uso yo.
En Debian, MergerFS está disponible en los repositorios de paquetes, aunque es más recomendable descargar el paquete deb desde su repositorio en gitHub, pues estará siempre en la última versión. Al tratarse de un paquete en formato DEB, solamente se trata de descargarlo, usando para ello curl o wget, e instalarlo con dpkg, con un par de comandos parecidos a los siguientes:
wget https://github.com/trapexit/mergerfs/releases/download/2.35.1/mergerfs_2.35.1.debian-bullseye_amd64.deb
sudo dpkg --install mergerfs_2.35.1.debian-bullseye_amd64.deb
Si al instalar, dpkg se queja de algún problema de dependencias (por ejemplo, si faltan componentes para fuse), es fácil instalar los paquetes faltantes con este comando:
sudo apt-get install -f
Y básicamente eso es todo lo que hace falta para tener MergerFS instalado en el sistema. Es buena idea, de todos modos, actualizar el software de vez en cuando, ya que constantemente recibe mejoras y optimizaciones.
Existen muchas formas de utilizar este software, la mayoría de ellas están recogidas en la documentación, que se encuentra en el repositorio del proyecto. Básicamente puedes ejecutar la herramienta directamente desde línea de comandos, especificar su configuración en el archivo fstab, o ejecutarla con systemd. Particularmente creo que es más fácil configurar el archivo fstab para que monte el sistema de ficheros al iniciar el sistema operativo, así que fue esto lo que terminé haciendo. Es importante destacar que los discos duros que se vayan a unificar deberán ya estar montados para cuando el sistema de archivos se cree, así que naturalmente también habrá qué configurarlos dentro del mismo fichero fstab.
Antes de continuar, hay dos cosas a tener en cuenta sobre cómo vamos a configurar mergerfs. La cache de archivos y la política de creación de ficheros. La primera nos ayudará si tenemos alguna aplicación que utilice bases de datos SQLite (como algunos clientes de torrents), o escriba ficheros de forma atómica (como apps para descargar cosas, por ejemplo). Si es así, necesitamos habilitar el soporte para mmap, por lo tanto, activar la cache de archivos. Si no necesitamos eso, en ese caso podemos trabajar sin la cache de archivos. En cuanto a las políticas de creación de archivos, MergerFS soporta una variedad interesante de cosas cuando se trata de crear un fichero dentro del directorio donde está el sistema de discos unificado. Es decir, puede colocar todos los archivos en un solo disco duro hasta llenarlo, y luego seguir con el otro; puede distribuir los ficheros de manera balanceada entre los discos, de manera que todos se llenen en la misma proporción, y otras 18 configuraciones diferentes. En mi caso, tengo claro que no necesito el soporte a mmap, y también la política a utilizar para crear archivos, que es “mfs” (crea archivos en el disco que tenga el mayor espacio libre). Entonces, mi línea de fstab se parece mucho a esta, teniendo también en cuenta que todos mis discos se encuentran montados en /mnt/drive*, donde * es el número de unidad:
/mnt/drive* /mnt/storage fuse.mergerfs defaults,nonempty,allow_other,use_ino,cache.files=off,moveonenospc=true,category.create=mfs,dropcacheonclose=true,minfreespace=250G,fsname=mergerfs 0 0
Esto creará, en el próximo reinicio del sistema operativo, el sistema de ficheros llamado Mergerfs. La aplicación combinará todos los discos que se encuentren montados en un directorio que comience por /mnt/drive, y el resultado podrá verse en el directorio /mnt/storage. Al escribir ficheros se ocupará de llenar los discos de forma proporcionada. Si después son añadidos más discos, únicamente habrá que hacer que sean montados dentro de /mnt/drive* para que sean incluidos automáticamente en MergerFS.
Finalmente, hay qué recordar algo evidente. MergerFS no es un raid, y raid no es lo mismo que backup. Por lo que siempre es buena idea mantener todo lo considerado importante o de un alto valor resguardado en más de una sola ubicación.
NAS Servidor Disco duro mergerfs