Nuevo servidor: Osgiliath
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 |
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 :-)
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 send
y zfs receive
de manera incremental. La información se sube a la nube utilizando rclone
comprimiendo la información con pzstd
.
Al realizar un backup:
- Se copian los ficheros .xml de los dominios.
- Se guardan las MVs en ejecución. Unos 20 segundos.
- Se toma un snapshot.
- Se restauran las MVs. Unos 30 segundos.
- 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.
- 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.
Más información: