miércoles, 18 de febrero de 2015

Virtual machine disk consolidation is needed

Hay una serie de "momentos" que toda infraestructura virtual va a vivir alguna vez... Unos agentes que se quedan colgados, un servicio que hay que reiniciar, un disco de cabina dañado, y así un largo etc...


Creo que sin excepción...en entornos vSphere, Todos hemos sufrido alguna vez el siempre temido "Virtual machine disk consolidation is needed"



Digo temido, ya que dependiendo de diversos factores la reparación de ese problema puede ser desde un simple click, hasta un proceso tedioso con parada de maquina incluida.

Básicamente lo que esto nos viene a decir, es que alguno de los discos virtuales de la maquina afectada se ha quedado con una snapshot "huérfana",



Tampoco vamos a entrar muy en detalle en este post los motivos por los que hemos llegado a esta situación, ya que lo que vamos a ver es una serie de procedimientos para poder arreglar la máquina virtual. Con alguna de estas soluciones siempre que me he encontrado este problema se ha podido resolver en el 100% de los casos.

Algunas son mas agresivas que otras, y tienen consecuencias que vamos a ir viendo.

Solución 1 "Consolidate"

A partir de la versión 5 de vsphere, nos apareció en el menú contextual la útil opción "Consolidate"


Al detectar una maquina con la necesidad de consolidar alguno de sus discos virtuales debemos iniciar el proceso de consolidar desde esta opción.

En la mayoría de los casos con este simple click, repararemos la maquina virtual sin ningún problema.

A tener en cuenta:

-La maquina virtual sufrirá una caída de rendimiento.

-También se puede ver afectado las maquinas virtuales vecinas en el mismo datastore, o incluso en el mismo host provocando fuertes latencias en el almacenamiento.

-No se puede cambiar el estado de la maquina en el que se inicia el proceso. Esto es muy importante ya que si iniciamos el proceso de "consolidate" con la maquina apagada no podremos hacer un power on. y el proceso no se puede cancelar.


Solución 2 "Delete all"

Esta opción la podemos usar en versiones anteriores a vsphere 5 en la que no teníamos la opción de "consolidate" Tambien es una posibilidad en caso de que "consolidate" no haya acabado con resultado satisfactorio

Deberemos de crear una snapshot en la maquina, y posteriormente escoger la opción "Delete all"



Los procesos que lanzan en el hypervisor el boton "Delete all" es mas complejo que un simple delete. el host buscara los ficheros de snapshots en el folder de la maquina virtual, y consolidara estos ficheros con sus correspondientes discos virtuales.vmdk.

A tener en cuenta:

En este caso debemos de tener las mismas consideraciones que en la Solución 1.


Solución 3 "Reiniciar agentes + solución 1 + Solución 2"

Es posible que si intentamos realizar un consolidate de las snapshots recibamos un error semejante a este:
"unable to acces file <unspecified filename> since..."


En este caso nos esta indicando que algún fichero que interviene en el fichero de consolidación esta bloqueado.*

*Podemos revisar los logs "vmware.log" de la maquina virtual y el log del "host" (var/log) y monitorizar exactamente los ficheros que están dando este problema,.. 

Para intentar desbloquear estos ficheros una primera solución seria reiniciar los agentes del host. Para esto es necesario seguir esta kb en la que explica como reiniciar los agentes:
http://goo.gl/AaRzyz

A tener en cuenta:

- Durante este proceso perderemos momentáneamente la administración del host. Una vez reiniciado los agentes volveremos a tener acceso al host sin problemas.

Una vez reiniciado los agentes. podemos probar las soluciones 1 y 2

Solución 4 "Apagar maquina"

Si con un reinicio de los agentes, seguimos sufriendo el mismo error de bloqueo, el siguiente paso sera intentar la solución 1 + solución 2 con la maquina virtual apagada.

A tener en cuenta:
El tiempo que dure este proceso no  vamos a poder encender la maquina virtual. Es bastante complicado predecir con exactitud el tiempo que va a durar este proceso. Dependerá del tamaño y numero de discos que se han visto afectado por la snapshot. He visto casos desde 2 minutos a mas de 24 horas.


Solución 5 "Reiniciar host"

Si aun sigue sin acabar de manera satisfactoria el proceso de consolidación, siempre que sea posible, seria recomendable reiniciar el host.

Una vez reiniciado, aplicaríamos la solución 1 + solución 2

A tener en cuenta:
Debemos de tener recursos suficientes para poder tener levantadas las maquinas virtuales en otros hosts y la posibilidad ya sea por licenciamiento o infraestructura de mover las maquinas en caliente.


Solución 6 "Clone"

Llegados a esta situación, si nada de lo que hemos intentado (consolidad, delete all, desbloquear ficheros, reinicio, etc...) va a ser bastante difícil que consigamos detectar exactamente la causa de que no se pueda realizar la consolidación. En algunas ocasiones el motivo de este problema es un error en el descriptor del propio disco virtual y recuperarlo no es trivial.

La recomendación, para conseguir una maquina virtual limpia sin perdida de información seria realizar un proceso de clonación.

En el proceso de clonacion se realiza una copia exacta de la maquina virtual. en el que existiera alguna snapshot la nueva maquina virtual tendrá consolidado todos los ficheros hijos de cada una de las snapshots, por lo que nuestra maquina estaría reparada

A tener en cuenta:

Estamos generamos una maquina nueva, la cual tiene un identificador totalmente nuevo. Debemos de tratarla como tal, (Añadirla a procesos de backup, monitorizacion, etc...)


Solución 7 "Converter"

Puede ser que el estado deteriorado de los discos, este impidiendo realizar cualquier operación de copia (clonado) de los discos. En este caso la mejor opción seria realizar un converter de la maquina afectada. (Descarga de converter)

A tener en cuenta:

- Se genera una nueva maquina virtual (habrá rehacer,  procesos de backup, monitorización, dependencias,etc..)
- La maquina debe de estar apagada durante el proceso*
* Es posible hacer este proceso con la maquina virtual encendida atacando directamente sobre la maquina con el converter, Pero si hemos llegado a este punto.. recomiendo hacerlo con la maquina virtual apagada para que el resultado que la maquina virtual quede mas limpia.

- Puede ser un proceso bastante largo dependiendo del tamaño de la maquina virtual.

El impacto de un problema de consolidación de disco, puede ser bastante diferente, teniendo en cuenta una gran cantidad de factores. (recursos disponibles, criticidad de la maquina, etc..) Este tipo de situaciones hay que darle la mayor prioridad posible, ya que a medida que pase el tiempo, la situación se va a ir agravando por el propio ciclo de vida de una snapshot. Es muy muy recomendable  recordar las mejores practicas de vmware sobre snapshots http://goo.gl/jwp5GH

Espero que si alguna vez sufrís alguna situación de esta características se pueda resolver con el menor impacto posible.

Desde luego que siempre es muy recomendable abrir un caso con www.vmware.com ante la menor duda a la hora de aplicar cualquier solución sobre maquinas virtuales en producción.


Saludos

7 comentarios:

Anónimo dijo...

Me ocurrio hace una semana, y finalmente con la siguiente combinación pude consolidar los snapshots.

1. Parar la VM
2. Editar la VM y quitar todos los discos duros (sin eliminar)
3. Hacer un snapshot (dummy)
4. Eliminar snapshot DELETE ALL
5. Editar nuevamente la VM
6. Agregar el disco "apuntando al ultimo snapshot"
7. Click en consolidate

Otra solución

1. Si el lock es debido a un backup fallido prueba a reiniciar el servidor/software de Backup para liberar el lock.
2. Cuando acabe de reiniciar
click en cosolidate.


David dijo...

Hola,

muchas gracias por la aportación... seguro que a alguien con el mismo problema le va a servir de ayuda.

Todo método propuesto es uno más a sumar cuando se pone la cosa fea.

Gracias!!

Ell diablo Rojo dijo...

Los mejores videos porno en http://elmejorcontenidolibertino.blogspot.com/

Anónimo dijo...

Los mejores videos porno en http://elmundodepravado.blogspot.com/

Anónimo dijo...

Si queréis ver los mejores vídeos de cornudos visitar http://cornudoycabron.blogspot.com/

Evil Arrow dijo...

Muchisimas gracias por el aporte David, me ha gustado mucho la entrada y además ne viene genial para mi desarrollo con maquinas virtuales, le dejo un like y te sigo, espero que le puedas echar un vistazo a mi blog y pueda enseñarte algo, un saludo compañero!
http://securityexe.blogspot.com.es/

elagapo dijo...

Muchas Gracias Antonio, Me funciono muy bien, en mi caso se eliminaron los snapshot y vmware no me dejaba iniciar la maquina virtual, solo quite el Disco Duro y lo volvi a cargar y funciono.
SLDS!!