2. Presentación de la FIB
2
La Facultad de Informática de Barcelona de la Universidad
Politécnica de Barcelona imparte 3 grados i 7 masters.
El inLab se encarga de dar soporte para que los alumnos
puedan desarrollas sus estudios.
Actualmente contamos con unos
• 2100 estudiantes
• 450 PCs
• 20 Salas de Laboratorios informáticos
• 100 servidores entre físicos y virtuales
• 1100 puntos de red
3. Retos: Necesidades a cubrir
3
Per cubrir las necesidades de los alumnos/desarrolladores , hasta
ahora teníamos:
• Instancias de servicios (virtual host apache virtual, BD mysql,
Oracle, ...), jenkins, tomcat, etc..
• Acceso desde el exterior limitado.
Pero … en el siglo XXI, nos damos cuenta de que los alumnos
tienen necesidades nuevas. Para ello están usando Amazon
Cloud Computing (AWS) per hacer sus prácticas. (en algunos
casos incluso pagando)
Para asignaturas necesitan servidores
• abiertos 24x7 (accesible desde Internet)
• operativos 24x7
• software diverso y único por usuario
Per desarrolladores inLab
• Lo mismo para hacer pruebas de software.
4. Descubrimos una nueva palabra mágica: cloud privado
4
• Crear un cloud privado: Una manera de tener servidores
para cada necesidad.
• Estudio de mercado: OpenStack, CloudStack, OpenNebula
• OpenNebula es una solución de cloud privado que permite
que los usuarios creen/destruyan/gestionen máquinas
virtuales a partir de plantillas. Se pueden definir
restricciones de uso y diferentes privilegios a los usuarios.
• Docència: https://virtech.fib.upc.edu
• InLab: https://skylab.fib.upc.edu
5. Malas decisiones
5
• Una vez decidido que lo que necesitamos es un cloud privado,
escogemos OpenNebula básicamente por su sencillez.
…pero...nunca es tan fácil ….
• Primera decisión errónea: montar OpenNebula y usar
servidores ESXi como nodos host
– Estaba disponible en OpenNebula 4.x
– Entrar poco a poco, con el conocimiento acumulado de ESXi
– Solución: usar nodos Linux con KVM
• Segunda decisión errónea: usar host virtuales.
– No disponemos de servidores físicos para dedicar
exclusivamente, así que haremos host virtuales.
– Nested virtualization. ¡No todos los procesadores lo admiten! No
es lo mejor, pero es necesario…
– Sorpresa: La licencia gratuita de ESXi sólo admite nodos de 8
CPUs hemos de crear n nodos pequeños
6. Buenas decisiones
6
Creamos el nodo gestor OpenNebula en virtual. Necesita muy
poca memoria. Discos publicados por NFS
Creamos un par de nodos host de prueba y vamos creciendo
Para distinguir entre tantos servidores, adoptamos una política
sencilla:
• Los nodos de virtech tienen nombre de razas de perro: galgo,
dogo, bernardo, carlino, labrador…
• Los nodos de skylab tiene nombre de razas de gatos: angora,
siames, …
… y el resto es historia
7. Servicio para alumnos: virtech
7
• Puesta en marcha: Septiembre 2016
• Estado actual: asignaturas de grado i master.
• Direccionamiento interno UPC i a través VPN.
• DATOS:
– 1 servidor orquestación
– 6 hosts (6 “chuchos”). 2 físicos, 4 virtuales
– Total memoria disponible: 303 GB
– Total CPU disponible: 50 CPUs
– Total disco disponible: 2 TB
– Usuarios definidos: 76, de 4 asignaturas
• La demanda actual está en el límite nominal de nuestros
recursos (estamos muriendo de éxito)
• Profesores y alumnos están muy satisfechos (o eso nos
dicen…)
8. Servicio inLab : skylab
• Puesta en marcha: Abril 2017
• Estado actual: diferentes evaluaciones de proyectos.
• Direccionamiento interno inLab con un firewall.
• DATOS:
– 1 servidor orquestación
– 2 hosts (2 “gatos”), ambos virtuales
– Total memoria disponible: 20 GB
– Total CPU disponible: 12 CPUs
– Total discs disponible: 250 GB
8
9. Experiencias de uso
• Septiembre de 2016. Puesta en macha del servicio beta 1
plantilla sencilla (Ubuntu 14) con sólo 1 CPU 1GB RAM y
10 instancias.
– apt-update deja la máquina inoperativa
– Errores contextualización
– Falta software
– Generación DNS
• Febrero de 2017. Entramos en producción. Los usuarios
pueden crear 2 máquinas sencillas o 1 más grande.
– Con ½ CPU y 750 MB de RAM cubrimos sus necesidades
9
10. Experiencias de uso
• Septiembre 2017. Explosión de la demanda.
– Nos piden máquinas más grandes, con uso gráfico, 3GB
RAM, etc.. Las peticiones exceden nuestros recursos, así que
ampliamos servidores, memoria, CPU y disco
• Es un servicio que está a punto de morir de éxito
10
12. Lecciones aprendidas
• Hacemos una ampliación con 2 servidores físicos y 1 virtual
• El principal problema es la reserva de CPU y memoria que
hace cada máquina virtual una vez definida.
• Las máquinas paradas ocupan recursos. Pedimos a los
profesores que optimicen la creación de máquinas
• Estamos estudiando hacer overcommitment
• Creamos máquinas en Thin provisioning
• Para generar gráficas persistentes, hemos implementado
contadores
• Compra máquina: preferible muchos procesadores medios
a ‘Xeones’.
– Ejemplo: PowerEdge R430, 8 CPUs, 128GB RAM (error!)
• Pero ¿cuál es el uso real?
12
El primer quatrimestre fue de prueba. 1 plantilla sencilla con sólo 1 CPU 1GB RAM y 10 instancias.
Problemas: apt-update peta la máquina (error de grub), actualizaciones, falta software, contextualización, etc…
El segundo quatrimestre producción, 1 plantilla 1 CPU 1GB RAM y 10 instancias. + media plantilla
Tercer quatrimestre: Linux con consola gráfica: imposible de usar con la consola VNC. Hubo que implementar el acceso a las X por cliente/servidor VNC, ya que no era operativo
Una asignatura nos pide 100 máquinas simultáneas. No podemos asumir esa demanda.
Usamos discos thin en vez de thick. Menos eficiencia, pero ganamos mucho espacio
Descubrimos que no podemos atender a la demanda ni en memoria, ni CPU. Así que ampliamos servicio con 2 nuevos servidores físicos y otro virtual
GALGO y CARLINO
Carlino: Puedes forzar maquinas con poca CPU y mucha RAM, pero la gestión de complica
Sobre el papel, tenemos recursos, pero cual es el uso REAL de estos recursos??? -> implementamos gráficas persistentes y …
Vamos a ver que pasa realmente…
La gráfica nos permite ver la ampliación
Descubrimos que el uso real es MUCHO menor que el pedido. Vaya, que sorpresa …
OpenNebula genera 1 CPU = 100 unidades, unidades de RAM en MB RAM
Hemos visto las gráficas de opennebula, pero ahora podemos ver las gracias de memoria de los servidores reales
Uso real? Sorpresa!
La línea roja indica el número de usuarios definidos
Conclusion: el uso real es menor que el uso teórico. Mucho menos, así que si superas los bloquemos nominales de OpenNebula, todo funcionará ok