AUTOMATIZACION MAQUINAS VIRTUALES XENSERVER
Hoy os quiero mostrar la forma de gestionar mediante un script colocado en un Xenserver, la carga de las máquinas virtuales de un clúster.
La idea es que si se llega a un límite de %CPU en unas máquinas concretas se arranquen automáticamente las máquinas de reserva. La solución es la ideal para una plataforma web:
SCRIPT
Deberéis cambiar los UUIDs de vuestras máquinas así como el número de ellas según vayan variando. Conforme se necesiten o no las máquinas, el resto se irán apagando y encendiendo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
[root@vmwareblog ~]# cat /root/scriptautoapxx.sh #!/bin/bash ########### ####### ######## ###lista de todos los uuids de las vm ap01=3bbf620e-db19-69a7-441d-bab6e216bff1 ap02=ef9e3101-1db6-7f1d-8c6a-81db803a9c2c ap03=56c4d6fa-45f1-4465-ec47-0c92220cf74f ap04=c943110b-458e-5ffa-c2f8-5f9841869ff5 ap05=92159077-6ad5-76bd-7ca2-7b5bdecdf407 ap06=47e732c7-2ae5-494f-c3cd-c0481518e391 ####limite de load limitecpu=4 ###leemos el load de cpu01 en ap01 loadap01=`ssh root@ap01.cloudconsulting.es uptime | tr -d ',' | awk '{print $10}'` if [ "$loadap01" -le $limitecpu ] then echo "apagando $ap03" xe vm-shutdown vm=$ap03 elif [ "$loadap01" -ge $limitecpu ] then echo "encendiendo $ap03" xe vm-start vm=$ap03 fi sleep 60 if [ "$loadap01" -le $limitecpu ] then echo "apagando $ap04" xe vm-shutdown vm=$ap04 elif [ "$loadap01" -ge $limitecpu ] then echo "encendiendo $ap04" xe vm-start vm=$ap04 fi sleep 30 if [ "$loadap01" -le $limitecpu ] then echo "apagando $ap05" xe vm-shutdown vm=$ap05 elif [ "$loadap01" -ge $limitecpu ] then echo "encendiendo $ap05" xe vm-start vm=$ap05 fi sleep 20 if [ "$loadap01" -le $limitecpu ] then echo "apagando $ap06" xe vm-shutdown vm=$ap06 elif [ "$loadap01" -ge $limitecpu ] then echo "encendiendo $ap06" xe vm-start vm=$ap05 fi echo FIN |
PROGRAMACION SCRIPT
En el crontab del servidor XENSERVER creamos una programación cada 10 minutos que lo compruebe:
1 2 |
[root@xenserver01 ~]# crontab -l 10 * * * * bash /root/scriptautoapxx.sh |
PRUEBA ARRANQUE AUTOMATICO SERVIDORES WEB
Lo que buscamos es verificar si el script configurado en Xenserver para automatizar el arranque de los APxx lo hace correctamente.
Para ellos vamos a utilizar una utilidad llamada cpuburn que nos permise estresar la máquina virtual, cargando la CPU:
1 |
apt-get install cpuburn |
Se advierte de que es peligroso para la máquina:
Para arrancar la aplicación, que hará que la CPU suba al 100% lanzamos el siguiente comando:
1 |
root@ap01:~# burnP6 & |
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?