Nuevo servidor NAS reciclado en CursosDeDesarrollo

Resulta que nos hemos liado la manta a la cabeza a la producción de contenido para cursos online y para ello hemos querido hacerlo con un servidor de segunda mano. Si quieres saber cómo lo hemos hecho no te pierdas esta entrada.

Viendo que si queremos almacenar unos 12TB para backup en la nube el coste iría de unos 52-287$/mes y eso sólo contando el almacenamiento, sin contar la transferencia de datos. Hemos buscado una alternativa viable y sostenible.

El servidor elegido ha sido un Dell Poweredge T320 que hemos comprado en PC-Portatil. Este tipo de servidor nos venía muy bien debido a que tiene la posibilidad de colocar hasta 8 discos duros en HotSwap. Trae una controladora raid Perc H710 que permite el acceso a los discos de las bandejas HotSwap.

Para el sistema  hemos elegido OpenMediaVault (OMV)que es un sistema de gestión NAS construido encima de Debian. Lo hemos elegido porque es la única distribución libre que conocemos que tiene acceso Web y control de dispositivos por ZFS.

¿Porqué ZFS?

Básicamente porque es un sistema de ficheros que permite redundancia, similar a Raid5 o Raid6, mediante Zraid-1 y Zraid-2, por lo que se puede configurar para que fallen 1 o dos discos respectivamente sin perder integridad en los datos.

La instalación de OMV es muy sencilla basta con descargarse una ISO desde la web y luego grabarla en un pincho USB mediante un creador de discos de arranque en Ubuntu, Windows (Rufus),  o MacOSX. En mi caso he descargado la versión OMV 5.0.5.

Discos Duros y Accesorios

En este caso hemos comprado varios discos duros y accesorios para almacenar el sistema y los datos del NAS:

Presupuesto

  • Servidor: 242€
  • HDD’s: 4 x 130€ = 520€
  • SDD: 2 x 47€ = 92€
  • Bandejas 2.5: 2 x 18€ = 36€
  • Bandejas 3.5: 4 x 13€ = 52€
  • PenDrive USB: 20€
  • Total: 962€

Configuración de Discos Duros

Con esto tendríamos 2 SSD para el sistema operativo para colocarlo en RAID 1, controlado por la H710, y +400GB de almacenamiento para el sistema y 4 HDD de 4TB cada uno configurados como RAID 0 cada uno de ellos, para luego usar ZFS para juntarlos en un mismo pool de datos, lo que nos dará aprox. 12TB de espacio libre para el almacenamiento de videos. Os dejo una guía en inglés que lo explica más o menos.

Para colocar bien los discos duros en las bandejas, revisa la bandeja que viene ya con un disco duro para que veas la altura donde atornillar el disco.

La configuración de los discos se ha hecho a través de la BIOS de Dell, como siempre pulsando F2 en el arranque. Recuerda que tienes que crear en total :

  • 4 discos virtuales, uno para cada HDD, en Raid 0
  • 1 disco virtual, con los dos SDD, en Raid1

Instalación OMV

La instalación es muy similar a cualquier Debian. Se arranca el servidor con el USB. En el caso del T320 es necesario elegir bien desde la BIOS el arranque UEFI que necesitamos.

Una vez arrancado el proceso de instalación, necesitaremos particionar y formatear el RAID 1 virtual como disco de sistema. Del resto de los discos ya nos preocuparemos más adelante cuando tengamos disponible ZFS.

Por lo demás realizamos la instalación de manera normal, nos pedirá retirar el USB y reiniciará el equipo, como siempre debemos asegurarnos que en el arranque la primera opción viable en UEFI es nuestro RAID1.

Primer Login

para acceder al servidor como siempre dependerá de la configuración de red que se haya aplicado, imaginemos que nos ha asignado una ip 192.168.1.104 por lo que accederemos al servidor con la url:

http://192.168.1.104

Usuario: admin

Contraseña  por defecto: openmediavault

Configuración de OMV

Una vez instalado el sistema deberemos realizar las tareas típicas:

  • Cambiar la contraseña del admin, desde las Sistema/opciones generales
  • Usar NPT desde Sistema/fecha y hora
  • Crear un usuario básico desde Permisos de Acceso/Usuario
  • Actualización del sistema desde Sistema/ Gestor de actualizaciones (como un apt update; apt upgrade)
  • etc…

Con la configuración de red será necesario cambiar la IP a una fija por ejemplo 192.168.1.40 para tener accesible el servidor en un IP que no entre enconflicto con las direcciones IP que entregue el DHCP y acceder a través de la URL:

http://192.168.1.40/

Instalación de OMV Extras

Para instalar el plugin de ZFS es necesario activar los omv-extras, lo haremos mediante la guia de instalación oficial. http://omv-extras.org/joomla/index.php/guides

Descargar el fichero, apropiado para la versión de OMV, en mi caso OMV5:

http://omv-extras.org/openmediavault-omvextrasorg_latest_all5.deb

Una vez descargado lo podemos subir a través de Sistema/Plugins/Subir

Y después lo deberíamos localizar en Sistema/Plugins y ya podríamos seleccionarlo y pulsar el botón Instalar.

Esto debería colocar un nuevo elemento del menú Sistema llamado OMV-Extras.

Configuración de OMV Extras

Cuando entremos a Sistema/OMV-Extras deberemos permitir el uso del repositorio de extras. Como siempre no te olvides después de guardar, aplicar los cambios.

En este apartado es donde configuraremos más adelante tanto docker, como portainer. Pero esto lo haremos después de configurar los discos de datos.

Instalación de ZFS

Dentro de los plugins  deberemos seleccionar e instalar el plugin de ZFS, esto debería instalar un nuevo kernel que tenga soporte de ZFS, compilará el módulo de ZFS e instalará los paquetes Debian de gestión de ZFS. Desgraciadamente veremos que nos da un error la hora de configurar el paquete zfs-utils al instentar instalar openmediavault-zfs:

dpkg: error al procesar el paquete zfsutils-linux (--configure):
el subproceso instalado paquete zfsutils-linux script post-installation devolvió el código de salida de error 1
dpkg: problemas de dependencias impiden la configuración de openmediavault-zfs:
openmediavault-zfs depende de zfsutils-linux (>= 0.7.0); sin embargo:
El paquete `zfsutils-linux' no está configurado todavía.

dpkg: error al procesar el paquete openmediavault-zfs (--configure):
problemas de dependencias - se deja sin configurar
dpkg: problemas de dependencias impiden la configuración de zfs-zed:
zfs-zed depende de zfsutils-linux (>= 0.8.2-2~bpo10+1); sin embargo:
El paquete `zfsutils-linux' no está configurado todavía.

dpkg: error al procesar el paquete zfs-zed (--configure):
problemas de dependencias - se deja sin configurar
Se encontraron errores al procesar:
zfsutils-linux
openmediavault-zfs
zfs-zed

En este caso para resolver el error debemos hacer varias cosillas, ya que falla al arrancar ZFS. El problema principal es que los módulos del kernel no se instalan apropiadamente para nuestro kernel y el modprobe zfs no funciona.

Es una issue de ZFS que debemos resolver:

# apt update

# apt install --yes debootstrap gdisk dkms dpkg-dev linux-headers-$(uname -r)
# apt install --yes -t buster-backports zfs-dkms --no-install-recommends
# modprobe zfs
# apt install --yes -t buster-backports zfsutils-linux

Cuando ya no de problemas al hacer un:

dpkg --configure -a

Se supone que ya no debería dar problemas con ZFS

Configuración de Discos y ZFS

Desde el apartado de Almacenamiento/Discos podemos ir limpiando los discos HDD que nos detecte, seleccionando uno a uno y pulsando el botón Borrar. No olvides seleccionar el borrado rápido si no quieres tirarte horas y horas esperando.

Después entraremos en la configuración de Almacenamiento/Zfs y crearemos un nuevo Pool, le pondremos un nombre, seleccionaremos zraid-1 o zraid-2 dependiendo de si queremos tener la posibilidad de que falle 1 o dos discos sin perder datos. Seleccionamos los discos  HDD que acabamos de borrar.

Creación de Carpetas compartidas y SMB

Es ahora cuando será necesario crear las carpetas donde debemos guardar los datos desde Permisos de Acceso/Carpetas Compartidas, crearemos 3 alojadas en el DataPool:

  • docker
  • download
  • media

y aplicamos los cambios.

Ahora desde Servicios /Smb, habilitamos el servicio SMB, salvamos y aplicamos.

Luego accedemos a la carpeta de compartidos y creamos tres nuevas comparticiones, que pillen las carpetas compartidas que hemos hecho antes. Ojo, esto permitirá acceder a estos datos desde fuera del servidor. no te olvides de aplicar.

Instalación de Docker

Desde Sistema/OMV-Extras pulsaremos en el botón de Instalar Docker, esperamos a que lo realice.

Cambia la ruta de almacenamiendo de docker a: /DataPool/docker y dale a salvar.

Una vez instalado docker ya podemos instalar portainer.

Instalación de Portainer

Para instalar Portainer crearemos un directorio llamado portainer en la parpeta /DataPool/docker

Dentro crearemos un fichero docker-compose.yaml:

version: '3.2'

services:
 portainer:
  image: portainer/portainer
  container_name: portainer
  restart: always
  ports:
   - "9000:9000"
   - "8000:8000"
  volumes:
   - ./volumes/portainer_data:/data
   - /var/run/docker.sock:/var/run/docker.sock

Después desde consola ejecutaremos:

docker-compose up -d

Después ya deberíamos poder acceder a través de la URL:

http://192.168.1.40:9000/

Desde aquí nos permitirá configurar la contraseña del usuario admin

También deberemos de configurar el servidor local de docker, pulsando el botón local y dando al botón Connect.

A partir de este punto ya podemos entrar a ese endpoint y gestionar los contenedores de docker de una manera mucho más sencilla.

Conclusiones

Ha sido toda una experiencia realizar esta investigación y quería agradecerle a Javier, un ex alumno de Pamplona, que me ayudó a elegir el servidor y comentarme cosas de las controladoras de servidor.

Ahora disponemos de un servidor por menos de 1000€ con más de 10TB libres de Espacio para guardar los vídeos de producción propia.

Si te ha gustado este artículo y quieres colaborar con nosotras no dudes en contactar:


 

Comments

Leave a Reply

*

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías de Cursos

Suscríbete al Boletín

Si quieres estar al tanto de las novedades del blog, ya sabes :)
* = campo obligatorio

powered by MailChimp!

Si estás interesado en seguir formándote tenemos una serie de cursos gratuitos: http://cursosdedesarrollo.com/cursos/

También disponemos de algunos cursos de pago por si son de tu interés: https://cursosdedesarrollo.com/tienda/

Curso de Angular: https://cursosdedesarrollo.com/tienda/angular/

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies