Después de darle unas cuantas vueltas, parece que el tema es más intuitivo de lo que pensaba. Además, parece que ha aparecido una discusión en paralelo (no sabía eso del plan 321) de la que he sacado algunas cosas en claro. Paso a responder algunas de las preguntas que hice.
-
En caso de que el PC montado sea una buena opción, ¿qué distro me recomendáis?
Buscando por ahí, me ha llamado la antención OpenMediaVault. Está basada en Debian y tiene una interfaz web bastante simple. Más adelante pasaré a hablar de ella.
-
¿Cómo se procede cuando un disco muere? ¿Se saca en caliente y el sistema se encarga de reconstruir los datos automáticamente?
Desde una emulación que he preparado con OMV, he creado un RAID 5, he eliminado uno de los 3 discos y he creado uno nuevo en blanco. Al arrancar el NAS he tenido algunos problemas pero trasteando la consola, he conseguido reconstruir el volumen. Más adelante hay más detalles de esto.
-
He leído que RAID tiende a fallar miserablemente. ¿Es realmente fiable montarse un sistema de almacenamiento de estas características? ¿En qué consisten los fallos más comunes?
Falla y cuando lo hace, es probable que no se puedan recuperar los datos. Los fallos son extraños e inesperados, por lo que con lo que he leído por ahí, la mayoría de la gente que los reporta queda sin saber qué les ha pasado a sus volúmenes. Un sistema RAID NUNCA reemplaza a una copia de seguridad por esta y otras razones.
-
¿Es fiable y sencillo de mantener el RAID por software o es recomendable comprarse una buena controladora? Hablo exclusivamente de la fiabilidad, no del rendimiento.
Parece ser que desde el punto de vista de la fiabilidad, es equivalente un RAID por software que por hardware.
-
¿Es complicado/fiable pasar de RAID 3 a 3+0 SIN disponer de copias de seguridad de todos los datos?
Según he leído por ahí, RAID 3 no se usa. Como decía @whoololon, en realidad lo que venía buscando era otra cosa. Algo parecido a RAID 4, 5 ó 6. El nivel 4 parece que tampoco se usa ya y entre 5 y 6, las diferencias son que el 5 usa una capacidad equivalente a un disco en "paridad" mientras que el 6 usa dos discos. Dicho de otra forma, en RAID 5 puede fallar 1 disco y en RAID 6 pueden fallas dos discos sin que se produzcan pérdidas de datos.
Mi idea (feliz) es tener volúmenes almacenados en el NAS. Es decir, imágenes de discos que luego montaría en los PCs correspondientes:
- ¿Sería posible tener algo así? Por ejemplo, acceder por SSH al NAS y montar la imagen para leer/esribir en ella.
RAID (al menos desde OMV que usa mdadm) lo único que hace es crear una unidad dentro de la carpeta /dev como si fuera un disco físico. Lo que se haga después con ese disco físico es cosa del usuario pero parece que lo habitual es crear una partición, formatearla y luego gestionarla como si fuera un disco físico real (usuarios, grupos, cuotas, etc).
15) Si el tema de las imágenes no es posible o es poco ortodoxo, ¿qué se usa en estos casos?
Una vez más, el sistema de archivos se puede usar y gestionar como convenga. Si dentro de él se quieren almacenar imágenes de discos para luego ser montadas en cualquier otro lugar, en principio no debería haber problemas.
OpenMediaVault
Se trata de una distro basada en Debian, lo cual está bastante bien porque el servidor usa Debian y estoy ya familiarizado para cuando sea necesario trastear con la linea de comandos. Hace unos años hablé por encima de ella.
Su interfaz web es bastante sencilla. De hecho, tiene sólo lo necesario para gestionar RAID, particiones, protocolos de comunicaciones y las configuraciones básicas del sistema. Si algo sale mal, esta interfaz se queda corta y hay que recurrir a la consola.
De aquí hay poco que decir. Es todo bastante intuitivo y nos ahorra tener que andar editando archivos de configuración del sistema.
Simulacro de NAS
Para saber a que atenerme cuando se presenten los distintos casos, he creado una máquina virtual con 4 discos duros: 1 disco de 32GB para el sistema y 3 discos de 8GB para montar un RAID 5. Se van a probar las siguientes situaciones:
· Uno de los discos duros deja de estar disponible. Cómo se regenera el RAID introduciendo un nuevo disco en blanco.
· Ampliar el RAID añadiendo un cuarto disco duro del mismo tamaño que los anteriores.
· Una vez que se tienen 4 discos, qué ocurre si se sustituyen por nuevos discos de 12GB en blanco.
· Qué ocurre si peta el disco de sistema.
Para asegurarme de que los datos mantienen su integridad, he copiado un par de archivos de unos 4GB cada uno. La idea es hacerles una suma de verificación MD5 con cada cambio que se produzca.
Antes de nada, voy a dejar a punto el sistema:
-
Se comprueba que los 3 discos duros están disponibles:
-
En la opción "Almacenamiento > Gestión de RAID" se hace clic en "Crear":
Como la máquina virtual está sobre un disco mecánico USB, tarda un poco en hacer el RAID. Me imagino que con discos duros de teras, el proceso llevará algunas horas:
-
Ahora hay que crear un sistema de archivos en la sección "Almacenamiento > Sistema de archivos". En mi caso he elegido el formato EXT4 que es el que uso en todo:
Como se puede ver, la unidad "física" es /dev/md0 y sobre ella, se ha creado un sistema de archivos EXT4 que se ha montado en /srv:
Accediendo a través de ssh:
- Para terminar, se van a copiar dos archivos y se les va a hacer un MD5. Para simplificar las cosas, todo esto se va a hacer en local a través de SSH:
Ambas firmas se corresponden con las proporcionadas por el desarrollador, así que ahí tenemos dos archivos de unos 4GB en perefectas condiciones.
Ahora podemos empezar.
Un disco duro peta
Voy a extraer uno de los tres discos del RAID en caliente a ver qué pasa:
De forma automática, el estado ha cambiado a "degraded" y ha desaparecido una de las unidades. Se comprueba la suma de verificación de ambos archivos:
Aquí no hoy sorpresas. Ahora voy a enchufar un nuevo disco de 8GB en blanco y voy a reconstruir el RAID. Aquí parece que no sucede nada de forma automática. Para detectar el disco hay que irse a "Almacenamiento > Discos" y hacer clic sobre el botón "Scan". Una vez que el disco de reemplazo está disponible, nos vamos a "Gestión de RAID", seleccionamos el volumen y se hace clic en el botón "Recuperar":
Aquí aparecen los discos disponibles para añadir, que en nuestro caso es tan solo el disco virgen que acabamos de insertar. A partir de aquí, comienza el proceso de reconstrucción que es todavía más lento que el de inicialización:
Cuando termina, se vuelve a comprobar el MD5 y sale igual.
Este proceso parece sencillo y robusto. En principio no debería haber problemas en el mundo real. Donde sí he encontrado alguna dificultad es haciendo el mismo proceso en frio, es decir, apagando el equipo, quitando un disco y volviéndolo a encender. En ese caso, el RAID no se vuelve a iniciar y para que vuelve a funcionar hay que hacer esto en consola:
mdadm --stop /dev/md0
mdadm --assemble --force --verbose /dev/md0 /dev/sd[bd]
Donde bd son las unidades que siguen estando disponibles.
Ampliación de capacidad añadiendo un nuevo disco
Supongamos ahora que queremos aumentar la capacidad añadiendo un cuarto disco de 8GB. Al igual que antes, una vez conectado el disco, el sistema no hace nada de forma automática. Hay que irse a "Almacenamiento > Discos" y darle a "Scan":
/dev/sde es el nuevo disco en blanco. Desde "Gestión de RAID" se hace clic en el botón "Crecer/Ampliar" y sale la lista de discos disponibles para hacer la ampliación:
En esta ocasión, no aparece información del progreso sino tan solo el estado "reshaping":
De momento, la unidad sigue teniendo 16GB. Desde el punto de vista de los recursos, la ampliación de RAID consume una gran cantidad de CPU y parece un proceso bastante lento. No sé cuanto ha tardado, pero ha sido mucho más que la reconstrucción. Ya tenemos nuestra unidad de 24GB:
Para terminar, hay que redimensionar el sistema de archivos:
Este proceso es prácticamente instantáneo.
En general, parece sencillo y fiable. Nada que destacar por aquí.
Esta prueba respondería a la pregunta 7) ¿Se puede hacer la ampliación en caliente sin tener que invertir en hardware de precio prohibitivo? Sí, se puede.
Ampliación de capacidad intercambiando un disco de 8GB por uno de 12GB.
En el caso de que queramos ampliar la capacidad actulizando los discos, se van a cambiar los 4 discos de 8GB por 4 discos de 12GB. El proceso (en caliente) será el siguiente:
· Se sustituye el primer disco y se reconstruye RAID.
· Se sustituye el segundo disco y se reconstruye RAID.
· Etc.
El proceso es idéntico al de sustituir un disco que ha petado, así que no lo voy a detallar.
Una vez que finaliza la sustitución del último disco, la unidad RAID sigue teniendo 24GB:
Según esto, es posible redimensionar la unidad. Tan solo hay que ejecutar esto:
mdadm --grow /dev/mdX --size=max
Donde X en nuestro caso es 0:
En cuanto se ejecuta, aparece esto:
donde ya se ven los deseados 36GB.
El proceso es bastante rápido y ya sólo queda redimensionar de nuevo el sistema de archivos (como se ha hecho antes).
Hasta aquí hemos hecho algo bastante interesante porque los datos que se almacenaron inicialmente, ahora están en discos físicos diferentes. Veamos si los datos han permanecido inmutados:
Sin sorpresas, los datos mantienen su integridad.
Qué ocurre si peta el disco de sistema
El disco de sistema no tiene redundancia. Si casca, se pierden sus datos. Al iniciar el proceso de particionamiento de la instación, aparece una pantalla tranquilizadora:
Vamos, que la unidad RAID sigue estando ahí. Cuando finaliza la instalación, es posible seguir accediendo a la unidad y montar la partición:
Como curiosidad, el nombre del dispositivo ha cambiado de /dev/md0 a /dev/md127.
Para terminar y aprovechando que estoy en el barro, voy a probar si FreeNAS detecta la unidad RAID creada por OMV. FreeNAS no detecta la unidad RAID y es probable que se deba a que es una distro (BSD) centrada en ZFS. ZFS tiene pinta de ser más sofisticado e interesante que mdadm y la interfaz web de FreeNAS me resulta más atractiva que la de OMV (por las opciones que tiene).
Una de las cosas que me llama la atención de primeras es la caché ZFS, algo que respondería a la pregunta 11) No es que lo vaya hacer, pero lo pongo como ejemplo extermo, ¿tiene sentido montarse un PC con 256GB de RAM con la idea de que tanto las lecturas como escrituras acaben cacheadas y luego sea el sistema el que realice las operaciones sobre los disco conforme va pudiendo? Es decir, con el fin de minimizar los accesos a disco, ¿tener más RAM ayudaría a reducir sustancialmente la actividad de los discos duros?
La respuesta con OMV creo que es no. Pero con FreeNAS parece que es un sí rotundo. De hecho, durante la instalación recomiendan tener 8GB de RAM. Y ahora ya estoy dudando sobre cuál usaría.
OMV me parece una distro más pulida, estable y fiable aunque su conservadurismo nos lleva a no aprovechar los últimos avances. FreeNAS me parece más novedosa en varios aspectos aunque eso me hace desconfiar un poco en la fiabilidad de ZFS. De hecho, he leido poco (pero no demasiado bien) sobre ese sistema de archivos. Además, si de Linux sé poco, de FreeBSD sé cero, con lo que me siento más vendido al soporte que pueda encontrar por ahí.
Por probar, he creado un volumen ZFS y he visto algunas cosillas interesantes. Resulta que RAID-Z es en ZFS lo que RAID5 es en RAID normal y RAID-Z2 es el equivalente a RAID6. Además ZFS permite comprimir y cifrar el volumen. Esto primero me resulta muy interesante, la verdad, porque puede suponer un importante ahorro de espacio para ciertos tipos de datos. Tendré que echarle un ojo con más detenimiento, que me está empezando a picar.
Ya veré que hago en este aspecto, si es que al final me decanto por un PC, claro.
NAS vs PC
Esta es la pregunta del millón, ¿me monto un PC o me compro un NAS con 4 bahías?
Desde el punto de vista de la comodidad, un NAS es lo suyo. Desde el punto de vista de la versatilidad, el PC manda.
Desde el punto de vista económico:
El Qnap TS-431K parece una caja con 4 bahías más o menos decente. Cuesta 330€ y viene con todo lo que necesito.
Para un PC, he pensado en algo básico (pero no demasiado básico). ¿Un Ryzen 3 3200G sería suficiente? Creo que sí incluso con vistas a futuras ampliaciones (que alguien me corrija si me equivoco). Son 95€
Hay que elegir una placa base. Pongamos algo decentillo con 6 puertos SATA; una Asus PRIME B450-PLUS (unos 95€).
Sobre la memoria, ¿8GB irían bien? Un kit Corsair Vengeance LPX DDR4 cuesta unos 50€.
Y luego unos 150€ de caja y fuente. En total son unos 390€ para algo básico pero superior en prestaciones a la caja NAS.
Así que desde el punto de vista económico, la diferencia no es mucha.
Para mi, el PC tiene ventajas importantes, no solo de posibilidades de ampliación, sino de poder ser reciclable en el futuro. Y por experiencia, me fio más de un PC con componentes decentes que de hardware embebido.
Hasta me había planteado
, pero lo de usar discos a través de USB me da pánico.
Sobre copias de seguridad
El plan 321 me resulta económicamente inviable en estos momentos, principalmente por la necesidad de usar dos medios diferentes. Una cuenta en Google drive de 2TB cuesta 100€ al año y con ese dinero me podría comprar un disco de 3TB (para una copia adicional) o una unidad SSD de 1TB (para una copia en otro medio) que encima puedo usar para otras cosas cuando ya no los necesite. Y yendo un paso más allá, una unidad de cinta de HP cuesta unos 2000€. Para saber el precio de la unidades de IBM hay que llamar para pedir presupuesto (ya de primeras, no suena una opción muy económica).
Así que de momento, voy a seguir usando discos duros para copias.
SAI
Una de las cosas que, desde la intuición, me hace pensar que puede provocar uno de esos fallos irrecuperables de los que tanto se leen, son los cortes de suministro eléctrico. Así que tanto para una caja NAS como para un PC, creo que un SAI es un elemento obligatorio. Creo que la caja QNAP que he puesto antes no tiene pero según las especificaciones, la My Cloud EX4100 de Western Digital (unos 390€), sí que tiene SAI integrada.
Seguramente no me ensuciaré las manos hasta septiembre, así que hasta entonces, cualquier queja, sugerencia o corrección, son bienvenidas.