@_Neptunno_ yo ahora mismo al reves; me apetece perder un poco de tiempo con estas cosas. Es algo que nunca he tocado y siempre le he tenido curiosidad. Hace años (antes de los SSD) me picó el gusanillo por ganar velocidad y ahora me ha vuelto el interés porque la colección de discos duros que tengo es engorrosa, poco eficiente con el espacio, poco fiable y hasta cierto punto, caótica.
Bueno, sigamos con el lío.
La posibilidad de comprimir datos de ZFS con FreeNAS junto al uso de la RAM como caché ha hecho que esta opción despierte mi interés. Lo de la RAM como caché me resulta interesante más como una forma de reducir la actividad de los discos duros y aumentar su vida útil que como un medio de aumentar el rendimiento. El rendimiento no es importante para mi más allá de tener tasas de unas pocas decenas de MB/s que me permitan hacer streaming de video.
Freenas
Voy a repetir el mismo ejercicio que he hecho con OMV (con algunos añadidos).
Montando RAID-z (equivalente a RAID5)
Las unidades RAID en FreeNAS se llaman "pools". Parece ser que la creación de un "pool" consume unos 4GB de disco. De esa forma, si uso 3 discos de 8GB, tengo como resultado una unidad de 12GB. Por confirmar esto, he puesto 3 discos de 4GB obteniendo una unidad resultante de 4GB.
Dejemos de momento los 3 discos de 8GB para hacer el RAID-z.
Las opciones "ADD DATA/CACHE/LOG/SPARE" no sé para qué son y la verdad es que no me motiva demasiado averiguar para qué están ahí. El proceso de creación es bastante rápido:
La unidad parece que se monta en /mnt:
Compresión
Antes de hacerle perrerías, quiero probar una de las características que podría hacer decidirme: la compresión.
Primero voy a copiar un video susceptible de alcanzar un alto grado de compresión (es un archivo mp4 con bitrate constante y pocos cambios en la imagen) usando lz4 (la opción que viene por defecto y que, según he leído, tiene la mejor relación ratio de compresión/consumo de CPU).
El archivo mp4 ocupa 3.5GB:
El resultado es bastante espectacular (ocupa menos de la mitad) y durante la copia, el consumo de CPU más allá del demonio sshd, ha sido muy reducido.
Después de borrar el video, ahora voy a copiar la base de datos del foro (Redis) que tiene un tamaño de 1.4GB:
Aquí el ahorro es menor (un 25% aproximadamente).
Borro todo y copio 1GB de fotos JPG:
Apenas un 10% y aquí el uso de CPU sí ha sido bastante elevando.
Borro todo y copio el episodio de una serie en H.264 que ocupa 2.7GB:
Este también ha sido un proceso intenso en consumo de CPU. El ahorro es de solo un 3%.
Si se copia una imagen ISO de una distribución Linux, el ratio vuelve a ser del 3%.
Para terminar, se lo voy a poner fácil. Voy a copiar 1.5GB de logs Apache de una de las webs:
Pues nada, el archivo de 1.5GB pasa a ocupar 140MB.
Para ponerlo en perspectiva, suponiendo el peor caso posible (el vídeo con un ratio del 3%), en un sistema de archivos de 8TB, supondría un ahorro de unos 240GB. Si se ponen como ejemplo la fotos JPG, el ahorro sería de cerca de 800GB.
En mi caso, tengo claro que merece la pena la compresión, sin ningún tipo de duda. Además existen otras medida de ahorro como la "deduplicación" que hace que varias copias de un mismo archivo ocupen sólo como uno de ellos. Esto es algo que no voy a usar y no lo voy a probar, pero el concepto es sencillo.
Peta un disco duro
Al quitar un disco duro sale esto:
Cuando se añade un disco en blanco, hay que hacer clic en el icono de configuración del "pool" luego en "Status":
Ahí seleccionamos "Replace" en el disco que ha desaparecido:
Finalmente, seleccionamos la unidad en blanco que se ha introducido:
El proceso tardará un rato:
Al final es la misma historia que con OMV.
Ampliación de capacidad añadiendo un nuevo disco
Al intentar expandir el "pool", no he podido (me da un error diciendo que no hay suficientes discos). Según la documentación, no es posible añadir un sólo disco en un RAID-z sino que sólo se pueden añadir el mismo número de discos que había inicialmente, en este caso, 3 discos. Con eso, se conseguiría algo similar a un RAID5+0, que no es lo que yo estoy buscando, porque ese caso implica tener dos discos de paridad en vez de uno solo.
Es decir, que sólo se puede hacer un RAID-z equivalente a un RAID5 en la creación del "pool" pero luego ya te quedan anclado con eso.
Esto la verdad es que es una gran decepción.
Ampliación de capacidad intercambiando un disco de 8GB por uno de 12GB.
El proceso va a ser el mismo que hice con OMV: reemplazar un disco y regenerar RAID, reemplazar el siguiente, etc.
Cuando finaliza el proceso, no encuentro ninguna opción para expandir el sistema de archivos. Leyendo por ahí, dicen que debería ser un proceso automático en el momento en el que todos los discos sean del mismo tamaño, pero después de reiniciar el sistema, sigo teniendo 14GB disponibles.
Así que no sé qué hacer para que vea la nueva capacidad (unos 20GB).
Conclusiones
Ventajas de OMV: Sencillo, estándar, estable, más posibilidades de ampliación, basado en Debian.
Desventajas OMV: Simple/obsoleto (no tiene compresión ni caché).
Ventajas de FreeNAS: incluye últimos avances (compresión, cifrado, protocolos de comunicaciones).
Desventajas FreeNAS: no-estándar*, menos estable, menos posibilidades de ampliación, basado en FreeBSD**.
*Según he leído, FreeNAS activa características de ZFS que no están marcadas como estables. Eso tiene dos consecuencias negativas de peso: una es que la mayoría de distros no son capaces de leer las particiones ZFS creadas en FreeNAS (en caso de fallo, esto es crítico) y la otra es que se están usando caracterísiticas no tan probadas.
**Esto es una opinión personal. Por ejemplo, no sé cómo se lleva el soporte de hardware en FreeBSD (si en el futuro decido poner un Zen8, ¿va a detectar correctamente todo mi hardware? ¿va a usar las técnicas de ahorro de energía? etc, etc, etc). No me hace gracia tener mis datos en manos de un sistema que no conozco. Todo esto tiene además una serie de ramificaciones que no me gustan: ¿qué ocurre si el soporte de FreeNAS desaparece? ¿Qué ocurre si por la razón que sea, no puedo usar FreeNAS para recuperar mis datos? ¿Y si tengo que echar mano de la consola? Ni si quiera sé instalar paquetes en caso de que necesite herramientas que no vienen por defecto.
Si os digo la verdad, desde que he descubierto que no puedo ampliar el "pool" añadiendo discos (que es la forma más económica y sencilla), se me ha caído el mito. Si fuera a montar un RAID con 16 discos con vistas a que me duren 20 años, es probable que eligiera FreeNAS. Pero quiero empezar con algo básico (3 discos) e ir ampliando conforme lo vaya necesitando. Y para eso, FreeNAS me parece una mala opción.
En la próxima entrega, hablaré de la configuración de hardware. De momento, encontrar una caja que me guste está siendo complicado.