Defragmentar y hacer shrink a los vmdk’s

Via: http://yabrembre.wordpress.com/2008/04/11/defragmentar-vmdks/

Actualizado 15/04/2008: Ahora el script también hace shrink a los vmdk’s.

Sé que me estoy poniendo un tanto pesado con el VMware pero es que llevo tres semanas nada mas que currando con ello y tuneando un poco las máquinas.

Lo que os pongo hoy es un pequeño shell script para automatizar la defragmentación de los ficheros *.vmdk. En principio tenía también que hacerles shrink pero la versión actual estable del VMware Server para Linux, la 1.0.5, no incluye esa opción. Creo que la beta 2.0 si que lo trae así que puede que lo incluya más adelante.

Para que el script también haga shrink hay que bajarse la versión beta 2 del Vmware Server, y copiar los binarios (la carpeta bin que hay dentro del tar) a una carpeta que definiremos en el script. No hace falta instalar esta versión del Vmware Server.

Hay que ejecutarlo en el host. Yo, por ejemplo, lo he metido en el crontab para que se ejecute cada viernes a las 22:00.


#!/bin/bash
#
# defvmdk.sh
# Fecha de creacion: 09-04-2008
#
# Script para defragmentar y hacer shrink a los
# ficheros vmdk de las vm's.
#
# Necesita el fichero defvmdk.cfg desde el que lee
# sobre que vm's debe actuar.
#
# Para poder hacer el shrink necesita tambien los
# binarios de la vesion 2 del Vmware Server (no
# importa que este otra version instalada).
#
###################################################

VMS=/root/bin/defvmdk.cfg
LOG=/root/bin/defvmdk-$(date '+%y-%m-%d').log
FTMP=/root/bin/defvmdk.tmp
VLOG=/tmp/vmware-root/vdiskmanager.log

#Binarios del Vmware Server:
VDIR=/root/bin/vmware/

export PATH=$VDIR:$PATH

echo  >> $LOG
echo "##################################" >> $LOG
echo "####### INICIO DEL PROCESO #######" >> $LOG
echo "##################################" >> $LOG

# Comprobamos que maquinas estan corriendo:
vmrun list > $FTMP

for VDIR in $(grep -v "#" $VMS)
do
  echo >> $LOG
  echo "#######" >> $LOG
  echo "####### Maquina: $VDIR" >> $LOG
  echo "####### Fecha:   $(date)" >> $LOG

  cd $VDIR
  if [ $(ls *.vmx | wc -l) -ne 1 ]; then
    echo >> $LOG
    echo "####### ERROR: No se encuentra el fichero vmx o hay mas de uno." >> $LOG
    continue
  fi
  VM=$(ls *vmx)

  # Paramos la VM si esta corriendo
  if [ $(grep "$VDIR" $FTMP) ]; then
    vmrun stop ./$VM nogui
  fi

  # Defragmentamos y hacemos shrink a los vmdk
  for VMDK in $(ls *.vmdk)
    do
      # Reiniciamos el log de vmware
      cp -p $VLOG "$VLOG.bk"
      > $VLOG

      # Defragmentamos el vmdk
      vmware-vdiskmanager -d $VMDK

      # Hacemos shrink
      vmware-vdiskmanager -k $VMDK

      # copiamos el VLOG
      echo "#######" >> $LOG
      echo "####### VMDK: $VMDK" >> $LOG
      echo "#######" >> $LOG
      echo >> $LOG
      cat $VLOG >> $LOG
    done

    # Dejamos la VM como estaba
    if [ $(grep "$VDIR" $FTMP) ]; then
      vmrun start ./$VM nogui
    fi
done

rm -f $FTMP

echo  >> $LOG
echo "###############################" >> $LOG
echo "####### FIN DEL PROCESO #######" >> $LOG
echo "###############################" >> $LOG

### FIN ###

Como habréis visto en los comentarios necesita un fichero de configuración muy simple en el que pondremos los directorios donde están ubicadas las máquinas virtuales sobre las que queremos actuar. El mío queda más o menos así:

# defvmdk.cfg
# Fecha de creacion: 09-04-2008
#
# Fichero de configuracion del script defvmdk.sh
# El proceso defragmentara los vmdk de las vm's
# no comentadas.
#
#################################################

/VMLocal/lab/1
/VMLocal/lab/2
#/maquina/que/no/se/defragmentara

Para los picas: no os riáis de mi código. Cada uno hace lo que puede XD


Articles are copyrighted by their respective authors.
BBC 04/05
No sé qué me produce más asco, si el inmoral y sinvergüenza ZP o ...
Lipstick Mafia and Cashmere Jungle
La FAI responde a Bonetti; dice funcionario comete exabrupto / Drogas, delincuencia y basura en Santo Domingo Este / Carencia de Agua
Ejércitos de hambrientos buscando comida
MOVILIZACIONES MAGISTERIALES
Falleció Charles Tilly
Experiencia laboral es poco valorada, revela investigación a 76 empresas regionales
Crónica reunión de capitanes AAU en NB
Vivir antes de Morir
Miércoles, 30 de mayo de 2008
Adiós a Giuseppe Di Stefano
22 compañías y 28 espectáculos en el Festival de títeres y marionetas de Barañáin, del 17 al 24 de mayo
Festival de Cannes del 14 al 25 de Mayo
Wild animals (The Pinker Tones)
Vivimos en el futuro
Boletim Informativo da SAMFTPJ, n.º 4*
Favoritas: Baila conmigo
A Contratiempo - Chicho Sánchez Ferlosio
Photo Album: Miercoles Granada (13-02-08)
Camaleón - Series Books for 12 yrs +
SIMPLIFICA TU VIDA
31 de marzo: Día de Acción Global de apoyo al Tibet
Pascua de Pentecostés
EnConstrucció
Un eterno peregrino
MANIFEST
ACTIVIDADES CULTURALES MAYO!!!
Parqueaderos en espacio público fueron construidos ilegalmente en la calle 116 con carrera séptima
DON ARMANDO SCANNONE en Circulo Restaurante de Barquisimeto...
Juan Pablo, portero blanquiazul, rechazó que a los jugadores se les pueda acusar de falta de carácter.
Photo Album: Confra Revolución Radical
Porno, por alusiones.
Reglamento
‘Maras’ siembran el terror en la frontera sur
2 Clips from Heather James in Lolita 2000
Genesis
I Concurso de Microrrelatos de Fnac.es
Photo Album: Universidad de Zaragoza - Logroñés (Ascenso a 2ªB)
Photo Album: De Lo Mejor =D
Photo Album: Jaima 2007
Llistat d'Hereus
News 21-05-2008
Lo más destacado es el "Niño" Torres juvenil del Liverpool.
PUNO - CICLISMO GRAN FONDO Y PUNTAJES
¿Por qué las cabronas tienen tanta suerte?
Cartelera de Estrenos 15 de Mayo
SLEEVEFACE
Jose Maria Moncasi, Andres Pajares en el pais de las vanidades
Holly Valance
Sobre Films Up
Domingo, 27 de abril de 2008
Photo Album: Delegación
Photo Album: Rio de Janeiro 07
Los hombres anti-gravedad
todos los dias habia que pedir fiado para comer
Pacto de Caballeros en el Collell.
The girl next door (2007)
Desde Fey hasta Shakira
ELVIS MARTINEZ VE ALGO GRANDE PARA LA BACHATA
Blog list: Otros pájaros
Anton aprenden trucos Indios. (India, Asia XXX)
Runrunes del 01MAY08
¿Quién ganará la guerra en el PP?
Mierda...
GIRA SERRANITA!
El Internado, ahora los sábados en C-tv live
Cuando la diarrea ataca
Terecer generacion en marcha
Grupos ecologistas califican de “cacicada” la adjudicación de nuevos parques eólicos

Famosas