Consolidación de discos VMware & Veeam

De vez en cuando los backups que realiza Veeam dejan los discos en estado de consolidación. Esto se debe a que la máquina de Veeam se deja el disco pillado y configurado en su perfil. Esta medida bloquea el disco y no podremos consolidar la máquina afectada.
Para solventar esta incidencia, primero eliminaremos todos los snapshots si existieran de la máquina en concreto. Una vez realizado esto intentaremos consolidar, si nos da error por bloqueo, quiere decir, seguramente que Veeam tenga montado el disco. En este caso nos iremos a Veeam y quitaremos el disco que no sea del Veeam.

OJO! al darle a la x al disco solo lo removemos pero no lo eliminamos, nos saldrá un mensaje que si lo clicamos ya lo borraríamos, no le daremos a esto.

VMware & Esxi, perdida de conexión

Problemas de perdidas de conectividad en un host del cluster. Frente a este error las repercusiones o impacto pueden ser elevadas, sobre todo si llegamos al punto de que las operaciones de vmotion no están disponibles porque el host no responde y las operaciones se quedan colgadas. En este caso que vamos a tratar en concreto vamos a analizar una perdida total de conexión del host.
A pesar de que las VM seguían funcionando no podíamos hacer nada y esto provocaba un estado de peligro para el cluster, coincide que el Vcenter esta en este Host, pasos para mover máquinas sin causar impacto en la estructura.
Nos conectaremos al host por putty e intentaremos reiniciar los servicios que establece el host con el vcenter para ver si conseguimos restaurar la comunicación.
Para ello usaremos el comando dcui, esto nos mostrará el host a través de putty como si estuviéramos delante de el mismo físicamente

Pulsamos F2 y una vez nos hayamos logado en el host, nos iremos a Troubleshooting options

Dentro de esta pantalla le daremos Restart Management Agentes

Si esto no funciona y el host sigue sin conexión, aunque no responda a ping y las máquinas sigan corriendo, empezaremos ya un proceso mas tedioso y que deberemos tener cuidado, se trata de re alojar máquinas de este host en los otros del cluster manualmente.
Este proceso es tedioso y hay que tener cuidado, debemos valorar que máquinas podemos o no mover y en que horario hacerlo, las máquinas no críticas podremos ir haciéndolo de la siguiente manera:
Nos volvemos a conectar a nuestro host con problemas a través de putty, y lanzaremos el siguiente comando, esxcli vm process list, este comando nos devuelve las VM que están activas en ese momento en el servidor, las lista como si fueran procesos.

Con este comando te lista el inventario del host, es decir, todas las máquinas estén o no encendidas en ese host, vim-cmd vmsvc/getallvms.

Si las VM estan operativas y nos podemos conectar a ellas, el proceso es algo mas simple, nos conectamos por ejemplo a la máquina x, la apagamos y esperamos a que el proceso desaparezca, para ver las máquinas como procesos era el siguiente comando, esxcli vm process list.
En caso de que no podamos apagar con normalidad la máquina, podemos hacer un kill del proceso, técnicamente el kill tiene 3 variables que nos permite hacerlo de una manera amigable pero puede fallar. En nuestro caso hubo suerte y al usar dicho comando pudimos apagar la máquina de manera amigable. El comando que usamos fue el siguiente:

  • Primero debemos de saber el World ID, este le encontramos con el comando esxcli vm process list.
  • Segundo debemos de saber las variables que queremos aplicar para el kill, soft (teoricamente apaga el sistema operativo amigablemente), force (se lo calza pase lo que pase)
  • Tercero, el comando que usaremos una vez identificada la máquina en cuestion será, esxcli vm process kill -t soft -w 1705574
  • Esto procederá a apagar la máquina en caso de que no podamos acceder a ella, una vez realizado esto pasaremos a hacer el desregistrar dicha máquina del inventario del host 

Para este paso tendremos que localizar dentro del listado de VM, vim-cmd vmsvc/getallvms el ID de la máquina que queremos quitar, una vez localizado procedemos a realizar el siguiente comando, vim-cmd vmsvc/unregister 3, en este caso, el 3 representa el ID de la máquina que queremos desregistrar el inventario del host.

Una vez hemos realizado este proceso, lo siguiente ya es fácil, nos iremos a nuestro vcenter o en su defecto a un host del cluster (en este ejemplo tuvimos que hacer todo esto con la máquina de Vcenter con lo cual fue algo mas tedios). Una vez dentro del host nos vamos al almacenamiento y nos metemos en el disco donde este la máquina, y la agregamos al inventario y la levantamos. Si la máquina no esta bloqueada o la pasa algo raro, de inmediato podremos registrarla al nuevo host y ponerla arriba en pocos minutos. En un caso crítico donde la conexión del host se pierde y es inestable este es el proceso menos impactante para producción. En este caso al reiniciar el vcenter en otro host solventamos el problema y todo volvió a la normalidad. No obstante, al detectar inestabilidad en el host, es preferible migrar las máquinas a otros host y reiniciarlo.

Nuestros HOST tienen un bug y hay veces que no detectan la tarjeta integrada, es posible que haya que reiniciarlo un par de veces hasta que la lean y se pueda iniciar esxi, sale con la denominación USB 2 reader o algo similar.

Comandos utiles VMware

Todos estos comandos son a nivel Shell de Esxi:

dcui, este comando nos dará acceso al server como si estuvieramos delante de el. Normalmente utilizamos este acceso para reiniciar los servicios del agente de los servidores. Para reiniciar nos tendremos que ir a Troubleshooting Options, Restart Management Agents
esxcli vm process list, este comando muestra un listado de los procesos del servidor sobre las vm, este proceso nos indica el World ID, que es el que tendremos que killear ante posibles bloqueos, nota, la máquina debe de estar apagada, ya que sino la tirará.
esxcli vm process kill –type=soft –world-id=2799512, con este comando eliminaremos el proceso asociado a la máquina.
lsof | grep «*flat.vmdk» nos devuelve el VMX Cartel ID: 2799511 y mas información referente a la maquina, es mas práctico usar los anteriores.

Restaurar una VM desde los punteros de la cabina NetApp

Ojo, esta documentación es para casos críticos de perdida total de una VM, esta restauración se hace directamente desde la cabina y no desde el software de Backup.
Una vez hemos llegado a la situación en que la máquina por cualquier razón no funciona, no arranca, ha perdido datos, tiraremos teóricamente del software de backup, pero este método también es válido y funciona bastante rápido.
Lo primero que tenemos que hacer es irnos a la cabina y buscar el volumen donde esta instalado o ubicada la virtual machine que ha muerto.
La teoría, en este entorno y por buenas prácticas, nos encontraremos volúmenes por proyectos, y esto segmenta mucho el proceso a la hora de restaurar. 

Los volúmenes están todos clonados, el volumen name_mirror es una copia del volumen principal que se guarda en la segunda cabina, todos los volúmenes están agregados en todos los servidores, esto es importante ya que para crear un HA es necesario que todos los nodos tengan accesibles todos los datastores.
Una vez localizado el volumen ya nos podemos ir a la cabina, a través de la dirección web de la cabina principal del cluster,
Dentro de la cabina Storage nos iremos a la sección de Storage, y dentro de Storage buscaremos volúmenes

En esta página le daremos al + del volumen en cuestión que queremos usar para recuperar la virtual machine, dentro de las especificaciones buscaremos abajo a la derecha «Show more details»

En la siguiente pantalla nos saldrá de manera detallada toda la información del volumen, arriba a la derecha tenemos el botón «Actions», le daremos ahí, seguidamente clone>create>volumen, con esta operación lo que hacemos es coger todo el volumen entero y prepararlo para restaurarlo con un snapshot concreto.

Nos saldrá una pantalla con las configuraciones básicas que queremos aplicar a la clonación del volumen, aqui definiremos 3 parametros esenciales:

  • El nombre, pondremos el nombre del volumen_clone, ej. si el volumen se llama gestión, el clonado lo podemos llamar gestión_clone
  • Thin Provisioning chequeado, esto hará que aun que el volumen tenga asignado 2tb solo ocupe lo que tenga usado en ese momento
  • Use an existing Snapshot copy, esto nos permite elegir (dependemos de la programación que tenga dicho volumen) el puntero que necesitamos de ese volumen, por norma dependiendo de que volumen sea, encontraremos por horas, cada 8 horas y algún día

Una vez clonado, tenemos que prepara el volumen para ofrecérselo a VMware por NFS (red), en este caso nos iremos debajo de volúmenes a NameSpace, cuando se monta un volumen nuevo la Netapp detecta que no esta montado y al darle a mount montaré directamente este nuevo volumen.
Una vez llegados a este paso nos iremos a Vmware, seleccionaremos un servidor y le montaremos el volumen, para esto es conveniente mirar los datos del volumen «origen» que hemos clonado, ya que tienen una ip asignada para ser localizados por la red. Estas ips las podemos encontrar dentro de la web de la cabina en Network Interfaces

No obstante, también lo podemos ver en VMware, ya que el volumen que clonemos se asignará automáticamente al mismo SVM en el que está el volumen original, véase esta foto de los volúmenes en VMware

Para agregar el nuevo volumen le daremos a Add Storage, seleccionaremos Network File System (NFS), todo esto dentro de Home, Inventory, Datastores, nota, esto en el web client puede cambiar pero mas menos será así.

Una vez realizada la selección de NFS, pondremos los datos básicos, leer mas arriba de este documento para saber de donde sacarlos.

El proceso final de restauración requiere que la máquina virtual estropeada se pare por completo, y poder finalizar el proceso. (En el ejemplo que he realizado por primera vez, sucedió que el Servidor Installation Server de Data Protector explotó y se restauró de la siguiente manera)
Paso de restauración una vez se tiene disponible el volumen con las máquinas:

  • Lo primero de todo es eliminar la virtual machine actual del inventario (ojo no la eliminaremos aun del Datastore, solo del listado de máquinas virtuales)
  • Seguidamente hacemos un relocate, para realizar un relocate nos iremos a la carpeta de la virtual machine restaurada y navegaremos dentro de ella en busca del archivo vmx, le daremos al botón de la derecha y seguidamente Add to Inventory
  • Con este paso lo que habremos conseguido es que nuestro Vcenter vea la máquina restaurada y pueda levantar en un estado anterior, una vez agregada, directamente le daremos al play para que levante. (Recordar que la máquina rota o a restaurar tiene que estar apagada)
  • Una vez levantada la máquina, verificamos que todo esta ok, nota, en servicios críticos donde hay perdidas de datos estas intervenciones son mas complicadas, hay que tener muy en cuenta cuando se produce el error y a finar con los horarios.
  • Después de realizar todas las verificaciones pertinentes y si vemos que todo funciona correctamente y que la máquina rota no esta interactuando con nada, eliminaremos desde el Datastore la máquina averiada, el objetivo de esto es liberar del volumen en cuestión el problema y poder mover la máquina que funciona a este datastore para poder desmontar el clonado .
  • Una vez eliminado, nuestra licencia nos permite mover en caliente la máquina entre datastores, procedemos a mover la máquina restaurada del datastore clonado, al datastore de producción, con este paso ya tenemos liberado el volumen clonado para poder desmontarlo. (Es muy importante tener claro que no hay dependencias y que hacemos bien estos pasos, ya que un error aquí puede producir la pérdida de la máquina y nos tocaría realizar otra vez todo el proceso)
  • En este punto, tenemos acabado el trabajo de recuperación, a partir de ahora realizaremos los pasos a la inversa para realizar la segunda fase, se trata de desmontar y eliminar el volumen clonado.

Para proceder a desmontar el volumen, tendremos que estar en la sección de Home, Inventory, Datastores. Una vez aquí buscaremos el datastore clonado y con el botón de la derecha encima le daremos a unmount, con esto desvincularemos Vmware del volumen que aun sigue existiendo en la Netapp.

Ahora iremos a la página de configuración de nuestra cabina de Netapp, en concreto a la parte de NameSpaces, donde procederemos a desmontar la conexión creada en particular para el volumen creado, recordemos que se crea en el mismo SVM que el original.
Seleccionamos el Path que queremos desmontar, y seguidamente le damos a desmontar.

Después de esto nos vamos a la sección de volúmenes dentro de la cabina, en la cual es conveniente seleccionar el SVM correspondiente o le podremos dar a ver todos los volúmenes, una vez allí seleccionamos el volumen clonado que queremos desmontar, y seguidamente le daremos a Action->Change Status to->Offline.

Cuando el volumen pasa a estado Offline, se pondrá rojo en vez de verde, esto significa que ya podemos proceder a su eliminación total de la cabina

Le damos clic con el botón principal y seguidamente arriba veremos que ya tenemos disponible el botón de delete, le damos a borrar y confirmamos borrado, con esto habremos completado el proceso completo de restauración de un Snapshot desde la cabina.