Vamos con el primer post de este 2024, con una utilidad que quería comentar hace ya tiempo, Virtual Machine Computer Optimizer, o VMCO, de VMware Flings.
Lo primero...¿que es VMware Flings?
Flings son un conjunto de herramientas y utilidades creadas por la comunidad de VMware que, si bien no son oficiales, esto es, que no cuentan con soporte de VMware, y por tanto no se recomienda su uso en entornos de producción, sí que son alentadas por VMware, y soportadas en su web, en este ENLACE.
Hay algunas herramientas que ya no tienen sentido, como los drivers NVMe de la comunidad, ya que VMware ha adoptado esta tecnología en sus productos, u otras herramientas, como el Cross vCenter Workload Migration Uitlity, que han integrado directamente en algunas versiones de vCenter, según licencia.
Pero tienes otras soluciones plenamente vigentes, como el VMCO, que, aunque Aria Operations pueda facilitarte información sobre VMs sobredimensionadas o al contrario, escasas de recursos necesarios para su funcionamiento, puede ser que no tengas este producto, y para eso, VMCO va de maravilla.
Virtual Machine Computer Optimizer (VMCO) es un script y un módulo de Powershell que utiliza el módulo PowerCLI para capturar información sobre los hosts y las máquinas virtuales que se ejecutan en el entorno de vSphere, e informa sobre si las máquinas virtuales están configuradas de forma óptima en función de la CPU y la memoria del host. Marcará una máquina virtual como "TRUE" si está optimizada y "FALSE" si no lo está. En el caso de las máquinas virtuales no optimizadas, se realiza una recomendación que mantendrá el mismo número de vCPU configuradas actualmente, con el número óptimo de núcleos virtuales y sockets.
Es importante tener en cuenta que VMCO no analizará si las máquinas virtuales están configuradas con el número correcto de vCPU en función de la carga de trabajo de la máquina virtual. Una herramienta de análisis más detallada, como VMware Aria Operations Manager, puede determinar el tamaño adecuado en función de la carga de trabajo y el rendimiento real. Pero como herramienta de consulta para un primer paso a un correcto dimensionamiento, es perfecta.
Otro punto importante: VMCO no realiza ninguna modificación. Sólo consulta los objetos existentes para generar un informe, no reconfigura máquinas.
Puedes descargar VMCO desde AQUI.
La utilización de la herramienta es bastante simple, ejecutas el script de PowerShell, y éste instalará los complementos necesarios. Necesitarás también una cuenta de usuario de tu entorno del vCenter con permisos de lectura y la opción "propagate to children" habilitada, según la documentacion. Vaya, que estos permisos se encuentren sobre todos los elementos, para poder acceder a todos los objetos necesarios.
Para su instalación, desde la ruta en la que tenemos el archivo PS1, ejecutamos".\Virtual_Machine_Compute_Optimizer_v3.0.0.ps1"
A mi me ha dado guerra la instalación de los módulos directamente con el script. Si te pasa lo mismo, instala primero los modulos, y luego ejecutas el script. Para ello, ejecuta primero:
Install-Module -Name VMCO -Scope CurrentUser
Install-Module Vmware.VimAutomation.Core
Y después, ya ejecutas .\Virtual_Machine_Compute_Optimizer_v3.0.0.ps1
Este script generará un documento en formato CSV con distintos datos como el nombre del vCenter, detalles del cluster, detalles del host, detalles de las VMs... pero lo mas interesante, es este apartado:
En la columna de VMOptimized te indica si está optimizada o no, y en las siguientes columnas te indica las recomendaciones de cómo deberían configurarse las VMs para optimizar rendimiento.
Realmente la parte vital de esto es el modulo VMCO, de manera que si te las apañas con PowerShell, puedes realizar directamente consultas a este módulo, que lo que hace es habilitar la función Get-OptimalvCPU.
Aquí tienes varios ejemplos de lo que puedes obtener con dicho comando de PowerShell:
Obtiene todas las máquinas virtuales de vCenters
conectadas actualmente
Get-OptimalvCPU
Exporta los resultados a csv
Get-OptimalvCPU | Export-CSV -path
"c:\temp\vNUMA.csv"
-NoTypeInformation
Abre los resultados en una ventana de cuadrícula - solo
sistema operativo Windows
Get-OptimalvCPU
| Out-GridView
#Gets resultados solo en la máquina virtual denominada
"MyVmName"Get-OptimalvCPU -vmName
"MyVmName"
#Gets resultados en cualquier máquina virtual con
"NY-DC" en su nombre
get-optimalvCPU -vmName (get-vm -name
"*NY-DC*")
#Returns toda la información de vCenter, clúster y VMHost
Get-OptimalvCPU
-full
Genera informes basados en informes TDM de VMware TAM en
formato JSON
Get-OptimalvCPU -tdmJsonFile
<FilePath> | Export-CSV -Ruta "c:\temp\VMCO_Report.csv" -
NoTypeInformation
Si te ha gustado el articulo, puedes invitarme a un café ;)