Curiosity is insubordination in its purest form. -Vladimir Nabokov

miércoles, 3 de junio de 2009

VMWare disaster recovery

La idea es tener una tarea cron que copie las maquinas virtuales de un host fisico a otro host fisico VMWare.

No se realiza escritura a disco, pues en VMWare es lo que mas penalizado se ve. Se comprime todo en un lado del tunel ssh, y por el otro lado se va descomprimiendo.

Ahi va:

#!/bin/bash
#
#Copia VMs de FISICA1 a FISICA2 para Disaster Recovery
#
#vlan7 / 13-5-09
#

ALERTA=80 #20% espacio libre
ssh fisica2 df -HP |grep mapper | awk '{ print $5 " " $1 }' |awk '{ print $1}' | cut -d'%' -f1 >/tmp/output
uso=$(cat /tmp/output)

if [ $uso -g $ALERTA ]; then
echo "$uso % de espacio utilizado a fisica2, abortando copia" >>/var/log/copiaVMsVMWare.log
fi

if [ $uso -le $ALERTA ]; then
#host1
echo "Apagando la VM host1 - $(date)" >>/var/log/copiaVMsVMWare.log
vmrun -T server -h https://fisica1:8333/sdk -u user -p passwd stop "[standard] host1/host1.vmx" soft
echo "Apagada la VM host1 - $(date)" >>/var/log/copiaVMsVMWare.log
tar czvf - /var/lib/vmware/Virtual\ Machines/host1/ |ssh fisica2 "cd / ; tar xzvf -"
echo "Encendiendo la VM host1 - $(date)" >>/var/log/copiaVMsVMWare.log
vmrun -T server -h https://fisica1:8333/sdk -u user -p passwd start "[standard] host1/host1.vmx"
echo "Encendida la VM host1 - $(date)" >>/var/log/copiaVMsVMWare.log

#list all available VMs to log
vmrun -T server -h https://fisica1:8333/sdk -u user -p passwd list >>/var/log/copiaVMsVMWare.log
fi

#enviando correo
tail -100 /var/log/copiaVMsVMWare.log | mail -s "[script] copiaVMsVMWare.sh" user@host.com

Related Posts by Categories