VMware

¿Como generar un dump de memoria para diagnostico en máquinas virtuales de VMware ESXi 6.x?

Máquinas virtuales que no responden o se “congelan” se convierten en problemas comunes en nuestro SDDC.  Si un servidor deja de responder debido a fallas de hardware, las herramientas avanzadas de monitoreo tienen la capacidad de enviar alertas para informarnos al respecto.

Por otro lado, para poder determinar si existen problemas en el sistema operativo de las máquinas virtuales, podemos suspender o tomar un snapshot y luego obtener los archivos que estas acciones generan en el ESXi para crear un dump con la herramienta VMware Vmss2core.

La herramienta VMSS2CORE

Vmss2core es una herramienta para convertir archivos de estado de suspensión(.vmss) o de snaphots (.vmsn) en formatos que las herramientas de depuración de terceros entienden. La herramienta vmss2core puede producir archivos dump para el depurador de Windows (WinDbg), archivos dump Red Hat, una vista de memoria física para el depurador gdb de Gnu, Solaris MDB y formatos de Mac OS X.

Acá les dejo el procedimiento para generar un “crash dump” o “core dump” del sistema operativo de una maquina virtual VMware.

1. Iniciar una sesión al cliente web del vCenter o del ESXi cuando el sistema operativo de la maquina virtuale se congele o no responda. 

2. Tomar un snapshot de la máquina virtual que presente el problema. Esto va a crear un archivo con la extensión .vmsn en el directorio de la maquina virtual.

maquina virtual vmware

Los datos en nombre y descripción pueden ser cambiados en su ambiente.

Ademas del archivo .vmsn se genera otro con la extensión .vmem el cual también es necesario. Descargar ambos en nuestro equipo local.

 

Podemos también poner la maquina virtual en estado de suspensión lo que sera un método alternativo a la captura del snapshot. Se generan los archivos  .vmss que a su vez generara el .vmen. Ambos son necesarios para la generación del dump.

maquina virtual vmware

 

 

IMPORTANTE: No es necesario realizar el snapshot y la suspensión de la maquina virtual. Solo una acción que se realice nos generara los archivos necesarios para el dump.

3. Descargar la herramienta vmss2core en la misma carpeta donde se hayan descargado los archivos .vmem y .vmss o .vmsn según el método que haya usado en el paso 2. Asegurarse que el equipo local tenga instalado Visual Studio 2008 SP1 si utilizamos Windows.

4. Vamos ahora a generar el dump de la maquina virtual con los archivos descargados anteriormente. A continuacion se muestra el comando para generar el dump del sistema operativo windows para que luego sea analizado con Windows debugger (WinDbg).

E:\>vmss2core-sb-8456865.exe -W vCenter_WS2008R2DC-04f21e1a.vmss vCenter_WS2008R2DC-04f21e1a.vmem

También es posible generar archivos dump para Red Hat, una vista de memoria física para el depurador gdb de Gnu, Solaris MDB y formatos de Mac OS X.

5. Como resultado se obtendrá un archivo con el la extensión .dmp en Windows, para Linux y solaris genera un archivo llamado vmss.core.

Con la obtención del archivo .dmp o vmss.core según sea nuestro caso vamos a compartirlo con el equipo de soporte del proveedor del sistema Operativo para que puedan identificar la causa del problema.

Actualización 08/16/2019: Existen problemas de compatibilidad con Windows 10 y Windows Server 2016 para el uso de esta herramienta reportados en la pagina de Flings

A continuación está la lista de variables de los comandos disponibles en la utilidad VMware vmsscore

OptionDescription
(none)Without any options, produces linear views of memory (vmss.core) one per virtual CPU.
-WCreates aWinDbgfile (memory.dmp)of a Windows virtual machine with commonly used build numbers, 2195 for Win32 and 6000 for Win64.
-W<num>Creates a WinDbg file (memory.dmp) with as the build number,for example: -W2600
-WDDB<num>Creates aWinDbg file (memory.dmp) with as the debugger data block address in hexadecimal, for example: -W12ac34de
-WSCANCreates aWinDbg file (memory.dmp) and scan all of memory for the debugger data block, instead of just the lower 256 MB
-MCreates a core file (vmss.core) with a physical memory view suitable for the Gnu debugger gdb
-l <str>Specifies the starting and ending offsets of Linux kernel data structures for use by the -N and-P options, with expressed as 0xHEXNUM, 0xHEXNUM. Ignored when used with other options.
-NRed Hat crash core file (vmss.core) for an arbitrary Linux version as defined by the -l option.
-N4Red Hat crash core file (vmss.core) for Linux kernel version 2.4.
-N6Red Hat crash core file (vmss.core) for Linux kernel version 2.6.
-PPrints a list of processes running in the Linux virtual machine at checkpoint time
-P<pid>Creates a core file (core.) for the Linux process number .
It is likely that programs compiled with symbol tables (not removed) will yield better debug information
-X<nn-v>Mac OS core dump with representing architecture and Darwin kernel version
-qQuiet operation.

Gracias por leer mi post!!! Compártelo en redes sociales si crees que la información acá mostrada le fue de ayuda.

Escribe tu comentario

Este sitio utiliza Akismet para disminuir el smap. Aprenda más de como sus comentarios son procesados.

Oscar Zuñiga

Oscar Zuñiga

Senior Virtualization Engineer. vExpert 2019 / VCP-DCV / JNCIP-SEC / CCNA R&S
Ingeniero Senior especialista en virtualización de Centros de Datos (SDDC) con 4 años de experiencia en IT. Apasionado por temas relacionados con virtualización y sistemas informáticos. Cuenta con el galardón VMware vExpert; además de certificaciones Cisco, Juniper, Linux y VMware
EnglishPortugueseSpanish