Lidiar con máquinas virtuales que aparecen como inválidas (a veces llamadas «desconocidas» ) en vSphere puede ser un verdadero dolor de cabeza. Normalmente, ocurre después de eliminar una máquina virtual, pero de alguna manera la configuración aún persiste en el host o en el inventario. Quizás eliminaste manualmente algunos archivos de la máquina virtual del VMFS o ejecutaste vMotion, y ahora tienes entradas fantasma en tu lista.¿Lo frustrante? No puedes eliminarlas desde el cliente web: el botón «Anular registro» no funciona y simplemente se quedan ahí burlándose de ti. Por suerte, puedes deshacerte de ellas mediante SSH en el host ESXi, pero no es el proceso más sencillo. Una vez hecho esto, la máquina virtual debería desaparecer de tu inventario y todo volverá a la normalidad.
Cómo borrar máquinas virtuales «no válidas» de vSphere
Habilitar SSH en el host ESXi
- Vaya a Host > Acciones > Servicios y luego busque SSH.
- Haz clic en Acciones > Iniciar para activarlo. Si SSH no está habilitado, puedes hacerlo aquí (porque, claro, a VMware le gusta complicarlo un poco más de lo necesario).
Este paso es crucial porque necesitas acceso a la línea de comandos para limpiar manualmente los datos. Sin SSH activo, tendrás que intentar hacerlo todo a través de la interfaz gráfica de usuario, lo cual no funcionará en este caso.
Conectarse a través de SSH
- Utilice una herramienta como PuTTY o mRemoteNG y acceda por SSH a su host ESXi.
- Inicia sesión con tus credenciales de root. Si eres nuevo en esto, ten en cuenta que no es el fin del mundo, pero ten cuidado con los comandos.
Encuentra el ID de la máquina virtual problemática
- Correr:
vim-cmd vmsvc/getallvms | grep invalid
Este comando lista todas las máquinas virtuales. Al buscar «inválido» en grepp, identificará las que están dañadas. Normalmente, verá algo como esto:
Skipping invalid VM '22'
El número (aquí, 22) es el ID de la máquina virtual. Si ve varios, conviene anotar cada uno, pero concéntrese principalmente en el que causa el problema.
Intente recargar o anular el registro de la máquina virtual
- Si desea intentar una solución primero, ejecute:
vim-cmd vmsvc/reload 22
Esto a veces puede reparar la entrada de la máquina virtual y restaurarla a la normalidad, aunque no siempre, especialmente si los archivos de la máquina virtual se han perdido. En algunas configuraciones, este comando ayuda a restablecer un enlace correcto, y es posible que cambie a «Apagado» o desaparezca de la lista en unos minutos; simplemente actualice el cliente web.
- Si solo desea limpiar, anule el registro de la máquina virtual con:
vim-cmd /vmsvc/unregister 22
Ese es el verdadero paso de limpieza. Elimina manualmente la máquina virtual no válida del inventario. Es probable que la máquina virtual desaparezca del cliente web poco después. Si aún persiste, verifique el ID de la máquina virtual; a veces la lista resulta confusa.
Para los valientes: Edición manual de la configuración de hostd
- Como último recurso, abra
/etc/vmware/hostd/vmInventory.xmlen un editor de texto como vi o nano:
vi /etc/vmware/hostd/vmInventory.xml
Busca la sección correspondiente a tu máquina virtual no válida y elimina ese fragmento. Crea primero una copia de seguridad, ya que si algo falla, es complicado arreglarlo. Después de editar, reinicia los servicios del host services.sh restarty comprueba si la máquina virtual ha desaparecido.
Nota: En algunos casos, editar manualmente este archivo puede causar problemas si se hace incorrectamente, así que no omita las copias de seguridad y tenga cuidado.
Manejo de máquinas virtuales bloqueadas con configuraciones dañadas
Si una máquina virtual no se puede anular el registro o desaparece solo después de reiniciarla, y se muestra el estado «No válido» en una máquina virtual en ejecución, es posible que el archivo de configuración de la máquina virtual esté dañado.¿La solución? Eliminar la máquina virtual del inventario (mediante » Eliminar del inventario» o reiniciar) y luego volver a crearla. Conectar los discos VMDK antiguos a una nueva máquina virtual como si fueran discos existentes, realizar un Storage vMotion para consolidar los archivos, encenderla y confirmar que todo funciona correctamente. Finalmente, eliminar los archivos dañados de la máquina virtual antigua. No es muy elegante, pero a veces es la única solución.
¿Qué pasa si la máquina virtual desaparece después de problemas de almacenamiento?
Si perdió el acceso al almacenamiento VMFS, las máquinas virtuales detenidas quedarán bloqueadas u ocultas en el inventario. Deberá volver a registrar la máquina virtual manualmente navegando al archivo VMX de la máquina virtual en el almacenamiento. Simplemente haga clic derecho, seleccione » Registrar máquina virtual» y enciéndala. Esto debería reactivar todo.
Revisar todo esto puede ser un poco lioso, pero en la mayoría de los casos, los comandos SSH corrigen las entradas fantasma. A veces, basta con eliminar el registro incorrecto y reiniciar, o volver a registrar la máquina virtual manualmente. Mucha suerte y espero que esto reduzca la frustración cuando el inventario deja de funcionar.
Resumen
- Habilite SSH en el host ESXi si no está activo
- Conectarse a través de SSH
- Úselo
vim-cmd vmsvc/getallvmspara encontrar ID de máquinas virtuales no válidas - Intente recargar o cancelar el registro con
vim-cmd vmsvc/reloadounregister - Edite manualmente /etc/vmware/hostd/vmInventory.xml si es necesario
- Volver a registrar las máquinas virtuales desde el almacenamiento si desaparecieron
Resumen
Deshacerse de máquinas virtuales inválidas suele ser cuestión de magia con SSH y un poco de paciencia. No siempre es obvio, sobre todo con configuraciones difíciles o problemas de almacenamiento, pero una vez que se usan los comandos correctos, es mucho más fácil. Con suerte, esto le ahorrará algún que otro dolor de cabeza: trabajé en algunos hosts y finalmente desactivé las máquinas virtuales fantasma.