Nuevo servidor: Osgiliath

per Victor Carceler darrera modificació 2023-03-12T19:03:18+01:00

Durante los últimos años las aplicaciones del centro educativo diferentes máquinas virtuales QEMU/KVM y contenedores LXD se han estado ejecutando sobre el antiguo servidor Edoras.

Esta máquina ha funcionado de manera irreprochable y no ha sufrido ninguna avería. Pero su vida útil se ha visto limitada por la CPU Intel Xeon E3-1225-v5 lanzada en 2015 con solo 4 núcleos y sin Hyper-threading. Durante la explotación del servidor ha sido imprescindible limitar el número de vCPUs asignadas a cada máquina virtual para mantener un rendimiento adecuado con el sistema a plena carga.

La escasez de CPU llegaba a provocar problemas puntuales de rendimiento en el gateway del centro que en algunos momentos no podía disponer de los recursos asignados.

Consumo de CPU en Edoras Consumo de CPU en Osgiliath
cpu-day-edoras.png osgiliath-cpu-day.png

En la primera gráfica se puede ver una utilización intensiva de la CPU de Edoras que ya no tiene capacidad para aumentar la carga. En la segunda imagen se puede apreciar que Osgiliath, el nuevo servidor, aún cuenta con capacidad para ejecutar más servicios.

Con Osgiliath ya no sufrimos problemas de rendimiento :-)

SYS-110T-M_main.webp

Descripción de Osgiliath

Osgiliath es una máquina Supermicro UP SuperServer SYS-110T-M con las siguientes características:

CPU Intel Xeon E-2388G 8 núcleos / 16 threads
RAM 128 GB. 4 x 32GB DDR4-3200 ECC UDIMM
Discos 8 bandejas hot swap SATA (6Gbps)
Discos de sistema 2 x Samsung SM883 MZ7KH240HAHQ. 240GB
Discos de datos 4 x Samsung 870 EVO 4TB.
Bandejas libres 2 bandejas libres para futuras ampliaciones.
Puertos de red 2 x 1Gbps
Otras conexiones VGA, RS-232, USB, Ethernet IPMI/Redfish
Fuente de alimentación 400W 100-240V AC 50-60 HZ
Sistema Operativo
Ubuntu 22.04 Server
Función
Hypervisor KVM con libvirt

Se trata de un servidor de 1U con suficiente capacidad para ejecutar los servicios del centro con buen rendimiento y para adaptarse al previsible crecimiento. Está protegido por un SAI Salicru SPS Advance T 2000VA que genera una señal senoidal pura, pues la fuente del servidor no acepta (o no acepta siempre) la alimentación generada por SAIs que no generan una salida senoidal pura.

El sistema está instalado sobre un RAID1 por software creado con dos particiones de 150GB de los discos de sistema.

Los 4 discos de datos están gestionados con OpenZFS en un pool RAID-Z (configuración de ZFS conceptualmente similar a RAID5). En esta configuración se obtiene una capacidad agregada de 3 discos y la posibilidad de perder 1 disco sin pérdida de información.

Una configuración alternativa puede ser utilizar una configuración semejante a un RAID10 con dos vdev de tipo mirror. En este caso se conseguiría la capacidad de 2 discos y una mayor velocidad de acceso.

Servicios ejecutados en Osgiliath

Los servicios del centro están implementados con diferentes máquinas virtuales KVM y contenedores LXD en función de las necesidades.

Los discos de las MVs consumen 1.4TiB y los snapshots de zfs, que son diferenciales, consumen unos 20GiB. Naturalmente está activa la compresión lz4.

vcarceler@osgiliath:~$ zfs list -t all
NAME USED AVAIL REFER MOUNTPOINT
DATA 1.40T 9.04T 140K none
DATA/backup 4.64G 9.04T 4.64G /opt/backup
DATA/libvirt 1.40T 9.04T 1.33T /var/lib/libvirt
DATA/libvirt@inicial 10.5G - 1.33T -
DATA/libvirt@2022-11-12_05:00:01 19.6G - 1.34T -
DATA/libvirt@2022-11-19_05:00:01 21.5G - 1.33T -
vcarceler@osgiliath:~$

Actualmente se están ejecutando las siguientes MVs:

vcarceler@osgiliath:~$ virsh list
 Id   Name                State
-----------------------------------
 9    valinor             running
 10   owncloud            running
 11   matrioska-2004      running
 12   baba-yaga-2004-v2   running
 18   elastix-2.5         running
 21   unifi-2004          running
 23   cirdan-2204         running

vcarceler@osgiliath:~$

valinor

Es una pequeña MV dedicada a ejecutar Munin Monitoring para registrar algunas métricas que se pueden consultar públicamente en: http://valinor.iespuigcastellar.xeill.net/

owncloud

Una instancia de ownCloud instalada antes de que el actual fork Nextcloud lo supere en popularidad. Tiene un disco de 2 TiB y permite compartir ficheros como las imágnes de las MVs que se utilizan en clase.

Mantiene: https://cloud.elpuig.xeill.net/

matrioska-2004

Es una MV dedicada a ejecutar contenedores LXD en su interior. Esto permite limitar los recursos a dos niveles (MV y contenedor) y tener una gran flexibilidad a la hora de poner en marcha nuevos servicios.

Ahora mismo está ejecutando:

vcarceler@matrioska-2004:~$ lxc list
+--------------------------+---------+----------------------+------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+--------------------------+---------+----------------------+------+-----------+-----------+
| avaluacions | RUNNING | 192.168.0.135 (eth0) | | CONTAINER | 2 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| dmoj | RUNNING | 192.168.0.120 (eth0) | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| enquestes | STOPPED | | | CONTAINER | 1 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| facturascripts | RUNNING | 192.168.0.128 (eth0) | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| glpi | RUNNING | 192.168.0.121 (eth0) | | CONTAINER | 1 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| glpi-agent | STOPPED | | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| grafana-prometheus | RUNNING | 192.168.0.132 (eth0) | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| juan | RUNNING | 192.168.0.138 (eth0) | | CONTAINER | 1 |
| | | 10.0.101.43 (wg0) | | | |
+--------------------------+---------+----------------------+------+-----------+-----------+
| letsencrypt-1804 | RUNNING | 192.168.0.5 (eth0) | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| limesurvey | RUNNING | 192.168.0.126 (eth0) | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| loki | STOPPED | | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| mikrotik-exporter | STOPPED | | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| mikrotik-exporter-python | STOPPED | | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| prometheus | RUNNING | 192.168.0.131 (eth0) | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| savapage | RUNNING | 192.168.0.122 (eth0) | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
| speedtest | RUNNING | 192.168.0.141 (eth0) | | CONTAINER | 0 |
+--------------------------+---------+----------------------+------+-----------+-----------+
vcarceler@matrioska-2004:~$

baba-yaga-2004-v2

Baba-yaga es una MV fundamental para mantener el parque informático del centro. Esta máquina utiliza Ansible de manera automática para repasar periódicamente los ordenadores del centro y mantenerlos en la configuración deseada.

Toda la actividad queda registrada en ara: http://192.168.0.18:10000/

elastix-2.5

Es PBX para el servicio de VoIP en el centro, maneja las llamadas al exterior y todas las extensiones internas.

unifi-2004

Ejecuta la controladora de los puntos de acceso Ubiquiti.

cirdan-2204

Es el gateway para todas las redes del centro educativo.

La LAN del centro está segmentada en 20 VLANs para las diferentes aulas, espacios y la red WiFi. La mayoría de las redes utilizadas son /24, pero la red WiFi es 192.168.240.0/20 para acomodar a todos los equipos que la utilizan de manera simultánea.

Además existe la VPN de gestión 10.0.0.0/20, la red 10.241.14.192/29 para las máquinas Konica y la red 192.168.236.0/22 utilizada al lanzar MVs en IsardVDI con una interfaz en la red puigcastellar1.

El acceso a Internet se realiza mediante dos fibras:

XTEC: Fibra con IP fija que permite el acceso desde el exterior a los servicios del centro. Normalmente no se utiliza para acceder a Internet desde el centro educativo aunque puede servir como enlace de respaldo.

DIGI: Fibra de 1Gbps con IP dinámica y CGNAT que únicamente se utiliza para acceder a Internet desde el centro educativo.

La VPN de gestión tiene la función de mantener la conectividad con localizaciones remotas. Se utiliza para gestionar los portátiles del centro cuando se utilizan fuera y para permitir el acceso a la red puigcastellar1 de IsardVDI.

Se puede ver información sobre el funcionamiento de la máquina en: http://valinor.iespuigcastellar.xeill.net/elpuig.xeill.net/cirdan.elpuig.xeill.net/

Copias de seguridad

Las copias de seguridad se realizan con ayuda de OpenZFS. Cada semana se realiza un backup que guarda:

  • Un nuevo snapshot en Osgiliath.
  • Una réplica del snapshot en, Gondolin, otro servidor del centro.
  • La nube.

En la red local los snapshots se replican utilizando zfs sendzfs receive de manera incremental. La información se sube a la nube utilizando rclone comprimiendo la información con pzstd.

Al realizar un backup:

  1. Se copian los ficheros .xml de los dominios.
  2. Se guardan las MVs en ejecución. Unos 20 segundos.
  3. Se toma un snapshot.
  4. Se restauran las MVs.  Unos 30 segundos.
  5. Se enciende mediante Wake on LAN otro servidor, Gondolin, y se envía el snapshot de manera diferencial apagando el servidor al terminar. Unos 10 minutos.
  6. Se sube toda la información contenida en el snapshot a la nube. Unas 24h.

De esta manera las MVs únicamente están fuera de servicio aproximadamente durante 1 minuto. Y se cuenta con toda la información en un snapshot del propio servidor, en un snapshot de otra máquina y en la nube.

osgiliath-backup-drive.png

Más información: