NAS Casero

En mi caso en concreto partía de los siguientes requisitos:

  • Bajo consumo
  • Ejecutar contenedores Docker
  • Facilidad de uso
  • Transmisión de contenido multimedia por Plex
  • Posibilidad de añadir discos y ampliar el espacio
  • Copias de seguridad y recuperación de ficheros

Elección del Hardware

Partiendo de dichos requisitos había mirado varios nas de la marca qnap que traen mejor hardware por menos precio que los de la marca synology. Había varios modelos que cumplían mis requisitos pero los precios estaban sobre los 360€ sin disco.

Después empecé a plantearme comprar una placa que trae el procesador ya integrado como las que montan dichos nas , en concreto las placas asusrock j5005 y j4005 que junto con la memoria y la carcasa me salía por menos de la mitad del precio de un qnap y con un hardware mucho mejor, aunque las qnap trae un software muy completo y muy fácil de usar.

Mientras terminaba de decidirme entre estas placas u optar por otras opciones del tipo SBC , me acodé de que tenía un procesador Intel Core I7 3770S de un equipo que tenía la placa quemada. Un vistazo a la página del Intel y compruebo que el consumo de dicho procesador no es muy elevado y que el único problema era buscar una placa con el socket adecuado para dicho procesador.

En mi caso al tener ya el procesador y la memoria, haciendo números me salía más barato usar el procesador que tenía en vez de comprar la placa asusrock, ya que la diferencia de 40W en consumo se compensaba con creces con el hecho del coste de comprar dichas placas y el resto de elementos necesarios

Buscando en Internet consigo una placa con 8 SATA y el socket que necesito por 30€ por lo que no le doy más vueltas. Ya tenemos el hardware para mi NAS casero.

Elección del Software

La elección del software en mi caso se baso principalmente en la facilidad de uso, soporte de contenedores y en la posibilidad de ampliar funcionalidades con plugin. A si que después de mirar varios y al saber que trae plugins para usar SnapRAID y MergerFS me decante por openmediavaul

Instalación

La instalación de openmediavault fue muy sencilla, basta con descargarse la imagen iso, grabarla en un usb y arrancar desde el mismo para realizar la instalación. https://openmediavault.readthedocs.io/en/latest/installation/via_iso.html

Configuración

Lo primero es iniciar sesión con el usuario admin que trae por defecto la instalación y como password openmediavault . Una vez validados vamos a cambiar la contraseña del admin. Para ello vamos a Sistema→opciones Generales y seleccionamos la pestaña Contraseña del administrador Web Ponemos la nueva contraseña y guardamos.

El siguiente paso será actualizar el sistema. Para ello vamos a Sistema→ Gestión de actualizaciones . Marcamos todas los paquetes y pinchamos en el botón upgrade

Una vez actualizado el sistema a mi me gusta reiniciar el equipo, más que nada para comprobar que el sistema arranca sin problemas.

Con el equipo actualizado lo siguiente será instalar los plugins, pero antes que nada vamos a instalar un paquete que nos va a permitir instalar unos plugins extras que no vienen por defecto con el sistema.

http://omv-extras.org/joomla/index.php descargamos el paquete para nuestra versión de openmediavault . En mi caso http://omv-extras.org/openmediavault-omvextrasorg_latest_all4.deb.

Una vez descargado a nuestro equipo vamos al menú sistema→plugins. Pinchamos en el botón cargar y en el menú que se abre seleccionamos el paquete que acabamos de descarga y pinchamos en el botón ok.

Ahora el plugin aparecerá en la lista de plugins , bastará con marcarlo y pulsar el botón instalar

Una vez instalado el plugin nos aparecerá un nuevo icono en el menú de sistema, llamado OMV-Extras. Desde el cual procederemos a instalar Docker para gestionar los contenedores.

Además de instalar el plugin para Docker debemos de instalar los siguientes plugins:

  • snapraid
  • union filesystem
  • remotemount → Me permite montar un disco conectado al router como si fuera local
  • rsnapshot → Me permite realizar backups incrementales
  • usbbackup→sincroniza una carpeta con un disco usb que este conectado al OMV
  • flashmemory en el caso de que tengas OMV instalado en una tarjeta s o disco SSD
  • omvextrasorg

La siguiente opciónes a cambiar son :

  • Manejo de Energía → Botón de encendido → Apagar
  • Monitorizar → Si usamos discos ssd o usb deshabilitar

Configurar los discos

Vamos a almacenamientos→discos

  • Para todos los discos salvo donde tengamos instalado el SO → seleccionamos el disco y botón borrar
  • Para todos los discos salvo el del SO → Editar → APM 1 Consumo mínimo en reposo , Ajuste ruido producido deshabilitado, tiempo para detener el disco 60min cache de escritura habilitar

  • Para todos los discos → Almacenamiento > SMART → Habilitar
  • Para todos los dispositivos → SMART → Dispositivos → Editar . Seleccionar cada disco y activarlo en cada uno

Seleccionamos todas las ir al menú crear sistemas de archivos . Seleccionar uno a uno los discos, ponerles una etiqueta para identificarlos e iniciar el proceso de formateo como ext4.

Configuración de Snapraid

En servicios → SnapRAID

Paso 1 Añadir discos de datos

Pestaña Discos → Add > Seleccionar un disco como datos1 y le ponemos el mismo nombre. Marcar las casillas de Listado de contenido y la de Datos

Repetir el mismo paso para añadir el resto de disco de datos, con distinto nombre (ojo no utilizar todos los discos para datos , es aconsejable como mínimo uno para almacenar la paridad

Paso 2 Añadir discos de paridad

Pestaña Discos → Add > Seleccionar un disco como paridad1 y le ponemos el mismo nombre. Marcar la casilla de paridad

Repetir para el resto de disco de paridad , por supuesto cambiando el nombre que le damos a cada disco.

Paso 3

Hacer un backup de la configuración

Configurar MergeFS

MergerFS es un sistema de fichero (filesystem) que lo usaremos para unificar todo el sistema de ficheros entre los discos como si fuera un único sistema de almacenamiento. Esto nos permite crear un único punto de acceso a todas las unidades y compartir carpetas y archivos como si sólo existiera un único disco.

Para configurarlo, una vez instalado el plugin vamos a Almacenamiento → Union Filesystems Botón Añadir

  • En nombre ponemos pool1
  • seleccionamos todos los discos de datos
  • Política: El disco con más espacio libre
  • Espacio libre mínimo: Calcular como espacio libre el 5% del disco de menor tamaño que usemos para datos

Aplicaciones instaladas mediante Docker

Referencias