Migrando MartinServer a un HP ProLiant MicroServer Gen8

Venturas y desventuras del cambio de servidor

hp proliant

Hewlett Packard Enterprise ProLiant MicroServer Gen8 E3-1220v2 4GB-U B120i LFF 2x1TB Server/S-Buy – Servidor

Hace menos de un año que puse mi propio servidor, MartinServer, en marcha. Desde entonces alojo todas mis páginas webs en casa, sin recurrir a ningún proveedor de hosting. El PC que utilizaba como servidor era bastante mediocre, un HP dc7800p Convertible Minitower, pero la verdad es que para lo que me costó ha venido funcionando bastante bien.

Pero el uso verdaderamente intensivo de MartinServer ha venido de parte del Servidor Plex que instalé. Actualmente alojo unas 1.500 películas y unas cincuenta series, que no sólo disfruto yo, sino que comparto con 15 amigos en 3 países diferentes.

Obviamente, con este escenario el rendimiento ya se resiente, y cuando tres o más usuarios están transcodificando vídeo simultáneamente, el servidor se desestabiliza peligrosamente. Ya se ha caído en alguna ocasión.

Llevo bastante tiempo pensando en cambiar el equipo, de forma que obtenga un rendimiento razonable. La mayor parte de los usuarios de Plex utilizan un NAS como servidor. Yo de hecho tengo dos Western Digital, uno de 3 TB y otro de 6 TB, donde almaceno mi contenido multimedia, aunque Plex está instado en el HP dc7800p.

Pero no es una solución que me convenza: MartinServer no sólo lo utilizo como servidor de Plex, es además mi servidor web, mi servidor FTP, mi almacenamiento en la nube particular… lo que necesito es un pequeño servidor doméstico.

ProLiant

La verdad es que no entiendo nada de hardware, por lo que me he tomado mucho tiempo pensando las opciones. Tras mucho comparar, fijé mi atención en el  HP ProLiant MicroServer Gen8, un servidor de diseño compacto y elegante que, además, tenía buenas referencias entre usuarios de Plex. Sólo advertían de la poca potencia del procesador, que no permitía demasiadas transcodificaciones simultáneas. En cualquier caso, el modelo que se me había antojado venía con un procesador Intel Xeon E3-1220L, que debería ser más que suficiente para soportar la carga de MartinServer.

Así que finalmente me decidí, y hace apenas unos días llegó a mi casa. Ahora quedaba el reto de migrar el servidor de equipo sin romper nada por el camino 🙂 .

Preparativos

La mayor parte de los propietarios de un  HP ProLiant MicroServer Gen8, por lo que vi, instalan el sistema operativo en un SDD (unidad de estado sólido) que obviamente se compra por separado y se conecta a través de la bahía para la unidad de disco óptico que viene dentro del equipo (hay que desmontarlo para su instalación). La ventaja de esta opción es mantener separado el sistema operativo de las unidades de almacenamiento (el HP Proliant viene con cuatro bahías para discos duros).

Yo ignoré esta opción. Mi equipo venía con dos discos duros de 1 TB, y yo le añadí otros dos discos duros de 6 TB cada uno. 14 TB en total. Decidí usar el primero de los discos de 1 TB para el sistema operativo y para la carpeta /home, el segundo para copias de seguridad y los dos discos de 6 TB para almacenar contenidos multimedia.

Otra opción que ignoré fue la de configurar los discos duros en RAID (Redundant Array of Independent Disks, es decir, “conjunto redundante de discos independientes”). Se suele utilizar para montar un espejo entre discos duros y, de esta forma, replicar la información en dos discos duros idénticos. Yo, imprudentemente, he ignorado esta posibilidad, he priorizado la capacidad total de almacenamiento sobre la seguridad.

Ubuntu Server

Así que pude proceder a instalar Ubuntu sin mayor demora. Lo único a tener en cuenta antes de instalar este sistema operativo es modificar la opción “Smart Array B120i RAID controller enabled” que viene por defecto en la BIOS (y que no está soportada por Ubuntu) por la opción “SATA AHCI Support”. Es fácil de hacer: Presionamos la tecla F9 y nos vamos a “System Options -> SATA Controller Options -> Embedded SATA Configuration”. Ahí seleccionamos “Enable SATA AHCI Support”. Presionamos la tecla ESC hasta que aparezca la opción para guardar, y listo.

Hecho esto, introducimos un USB de arranque con Ubuntu Server. Antes de instalar, abrimos Gparted y formateamos y montamos los discos duros. Reiniciamos, arrancamos nuevamente desde el USB, seguimos los pasos para la instalación y nada más. Ya está el HP Proliant funcionando con Ubuntu Server.

Clonando el servidor

Conecto el HP Proliant a mi red doméstica. Para clonar MartinServer utilizo el comando dd, que es una herramienta simple y muy potente. Con este comando puedo clonar todo el disco físico incluyendo el MBR (arranque de sistema), todas las particiones, UUIDs (la identificación única de cada partición) y los datos.
En el terminal escribí el siguiente comando para copiar el MBR:

su -c ‘dd if=/dev/sda of=/ruta/al/respaldo/sdabk.mbr count=1 bs=512’

Donde “/ruta/al/respaldo/” es donde guardé la copia de seguridad, un disco externo accesible tanto por el servidor viejo como por el nuevo.

Para realizar la copia de seguridad del sistema en sí, tecleé lo siguiente:

su -c ‘tar -cvpzf /ruta/al/respaldo/linuxbackup.tgz --exclude=/ruta/al/respaldo/ --exclude=/lost+found --exclude=/dev --exclude=/proc --exclude=/sys /’

Donde “/ruta/al/respaldo/”, nuevamente, es la ruta de acceso al disco duro externo. Con esto creé el archivo “linuxbackup.tgz” en el disco duro externo, que es una copia de seguridad completa del sistema. Es muy importante la opción “–exclude”, con ella le decimos qué debe quedar fuera de la copia de seguridad, como los discos duros externos o los directorios que están dinámicamente llenos por el sistema durante el arranque.

Migración

Ahora en el nuevo servidor, en el HP Proliant, escribí el siguiente comando para restaurar el MBR:

dd if=/ruta/al/respaldo/sdabk.mbr of=/dev/sda

Y para restaurar el sistema:
su -c ‘tar -xvpzf /ruta/al/respaldo/linuxbackup.tgz -C /’

Finalmente:
su -c ‘mkdir /proc && mkdir /lost+found && mkdir /dev && mkdir /sys && init 6’

Con esto se vuelven a crear los directorios excluidos y se reinicia el sistema. Teóricamente, el nuevo servidor debería ser idéntico al original.

Problemas

Pero algo debí hacer mal, porque el nuevo servidor no arrancaba. Me daba el error:

error: no such device: …
press any key to continue …

Seguramente no respaldé o restauré correctamente el MBR, con lo que la UUIDs de las particiones no coincidían. Es decir, en el archivo /etc/fstab del nuevo servidor se estaba apuntando a particiones que no existían. En el Grub seguramente habría la misma incongruencia.
Para solucionar esto, reinicié de nuevo el equipo con el USB de instalación. Desde una terminal tecleé:
blkid

Este comando me listó las UUIDs correctas del nuevo servidor. Con esta información siempre a la vista, abro otra ventana del terminal y tecleo:
gksudo gedit /boot/grub/grub.cfg

Me abre el fichero de configuración del Grub, el gestor de arranque. Cambio las antiguas UUIDs por las nuevas.
A continuación, lo mismo para fstab:
gksudo gedit /etc/fstab

Nuevamente cambio las antiguas UUIDs por las nuevas. Guardo y reinicio el sistema. Y… voilà! MartinServer ya está funcionando en el flamante HP Proliant Server.
El único detalle final es desconectar el servidor antiguo de la red y configurar en el router, para el nuevo servidor, la misma IP que utilizaba el servidor antiguo. Con esto, listo y funcionando.