vCenter

Error al encender VM: Connection refused

Me he encontrado en alguna ocasion recientemente con el siguiente error al intentar encender una maquina virtual:

A General System error occurred: Connection refused

A general system error occurred

En mi caso, yo uso vCenter Server Appliance 6.0 Update 2. Para solucionar este problema, he tenido que seguir los siguientes pasos:

  • Entrar por ssh al VCSA con el usuario root
  • Habilitar la shell con los comandos

A general system error occurred

  • Verificamos el estado del servicio VPX Workflow

A general system error occurred

  • Si el servicio está detenido, lo arrancaremos con

A general system error occurred

Drama terminado

A general system error occurred

Actualizar vCenter Server Appliance 6.0

A continuacion vamos a ver los pasos necesarios para actualizar vCenter Server Appliance 6.0 (VCSA) desde shell.

El primer paso es descargarnos las ISOS de los parches. Para ello, iremos a https://my.vmware.com/group/vmware/patch
Ahi, seleccionaremos producto VC y versión 6.0.0 y pulsaremos el botón Search (azul)

actualizar vCenter Server Appliance

Nos descargaremos las DOS isos correspondientes a vCenter Appliance ultima versión. Una de las isos corresponde a las actualizaciones de VMware (FP) mientras que la otra (TP, Third Party) corresponde a actualizaciones de seguridad y sistema operativo. Ambas son importantes y debemos aplicar las dos.

actualizar vCenter Server Appliance

Actualizar vCenter Server Appliance usando ISOS

Si tienes tu Platform Services Controller desplegado en una maquina diferente al vCenter Server Appliance, deberás hacer estos mismos pasos PRIMERO en la maquina de PSC y luego repetir el mismo procedimiento en la maquina virtual del vCenter Server Appliance.

  • El primer paso es hacer un Snapshot de la maquina virtual. Queremos siempre tener una vuelta atrás sin complicaciones.
  • Conectaremos a la máquina virtual la ISO de TP, la que incluye las actualizaciones de seguridad y sistema operativo (Third Party).
  • A continuación, entraremos como root por SSH al vCenter Server Appliance.
  • Sin salirnos a una shell real (quedándonos en la que tiene como prompt “Command>” escribiremos “software-packages install –iso –acceptEulas“. A continuación puedes ver el progreso de la instalación en mi vCenter Server Appliance.

  • Para reiniciar vCenter Server Appliance escribiremos en la propia shell

A continuación es el turno de las actualizaciones de VMware vCenter propiamente. Montaremos la ISO de FP, la que incluye las actualizaciones de vCenter

  • Entraremos como root por SSH o consola al vCenter Server Appliance
  • Sin salirnos a una shell real, volveremos a ejecutar “software-packages install –iso –acceptEulas”. Reiniciamos y listo, vCenter Server Appliance actualizado.

En una ocasión tuve un problema al realizar la actualización de vCenter y era porque se me había llenado la partición de log en el VCSA. Está ubicada en /storage/log y haciendo un poco de espacio allí pude instalar sin problemas.

 

Agregar Hosts a vCenter 6.0

agregar hosts a vCenter 6.0

En esta entrada veremos como agregar hosts a nuestro VMware vCenter 6.0

Para comenzar, nos logaremos en vCenter accediendo a https://fqdn.del.vcenter:9443/vsphere-client

Agregar Hosts a vCenter 6.0

A continuación, haremos click en el Hosts and Clusters para acceder a la configuración de estos elementos del inventario

Agregar Hosts a vCenter 6.0

Haremos click con el botón derecho encima de nuestro vCenter (el del icono verde y amarillo) y seleccionaremos del menú desplegable New Datacenter.

Agregar Hosts a vCenter 6.0

Daremos un nombre identificativo al Datacenter. Normalmente se trata de una ubicación física para distinguirlos, pero es totalmente indiferente el nombre que pongamos mientras nos sirva para identificar los hosts que están ubicados dentro.

Agregar Hosts a vCenter 6.0

Ahora que ya disponemos de un datacenter, es hora de agregar los hosts. Para ello, haremos click derecho sobre el datacenter y seleccionaremos la opción Add Host

Agregar Hosts a vCenter 6.0

Introduciremos el nombre del host (DNS) que vamos a añadir. Podemos usar direcciones IP directamente, pero esto nos traerá problemas a la hora de identificar los hosts si nuestro inventario crece más allá de un límite. CONSEJO – usa siempre DNS 🙂

Agregar Hosts a vCenter 6.0

Indicaremos las credenciales del host para agregarlo a nuestro Datacenter VMware. Estas credenciales son el usuario root y la contraseña que pusiéramos durante la instalación de VMware ESXi 6.0

Agregar Hosts a vCenter 6.0

A continuación se nos mostrará un resumen del host, con las máquinas virtuales que tuviese (si es que las tiene)

Agregar Hosts a vCenter 6.0

El siguiente paso es la selección de licencia. Si no disponemos de una, el host instalará una de evaluación que dura 60 días, equivalente a un licenciamiento Enterprise Plus.

Después nos preguntará si queremos activar LockDown Mode. Este modo previene que se pueda administrar el host conectándose directamente a la consola o usando un teclado / monitor. Yo suelo dejarlo desactivado, pero consulta con el responsable de seguridad de tu empresa si hay alguna política al respecto.

Agregar Hosts a vCenter 6.0

La siguiente pregunta sirve para colocar las máquinas virtuales dentro del Datacenter. Como tenemos un datacenter recién creado y nuestro host no tiene máquinas virtuales que importar, seguiremos al paso final.

Agregar Hosts a vCenter 6.0

Confirmaremos la configuración.

Agregar Hosts a vCenter 6.0

Repetiremos este proceso tantas veces como sea necesario hasta tener todos los hosts disponibles en el Datacenter que acabamos de crear

Agregar Hosts a vCenter 6.0

Instalar VMware vCenter Server Appliance 6.0

Platform Services Controller

Con la versión 6.0 de vSphere aparece Platform Services Controller. Se trata de un componente de vSphere que sustituye a vCenter Single Sign On, vCenter Inventory Service y vSphere Web Client. El componente Platform Services controller se puede instalar de forma conjunta con el VMware vCenter Server Appliance 6.0, o por separado en otra máquina diferente. Para nuestra instalación lo instalaremos en el propio VCSA, pero hay varias guías para su despliegue en otras configuraciones diferentes y actualización desde vCenter 5.

La instalación de VMware vCenter Appliance 6.0 es diferente de las versiones anteriores ya que no se distribuye en formato .OVA como siempre, sino que se trata de un .iso que contiene el appliance + software necesario para el instalador.

Para descargar la ISO de VMware vCenter Server Appliance 6.0 deberemos estar registrados en el sitio web my.vmware.com para descargar la iso VMware-VCSA-all-6.0.0-2562643.iso

Para instalar VMware vCenter Server Appliance 6.0 necesitarás abrir la ISO (montarla por hablar con propiedad).

Instalar VMware vCenter Server Appliance 6.0

El primer paso para instalar VMware vCenter Server Appliance 6.0 es instalar la última versión disponible de Client Integration Plugin. Esta utilidad se encuentra dentro de la iso de VCSA, en el directorio vcsa.

instalar VMware vCenter Server Appliance 6

La instalación es muy sencilla y es cuestión de Siguiente, Siguiente, Siguiente, Finalizar.

El segundo paso es ir al raíz de la ISO de VMware vCenter Server Appliance 6.0 y abrir vcsa-setup, que nos abrirá un navegador para continuar con la instalación.

instalar VMware vCenter Server Appliance 6

Cuando nos pida permiso para ejecutar el complemento del navegador, se lo daremos, y comenzaremos la instalación

instalar VMware vCenter Server Appliance 6

instalar VMware vCenter Server Appliance 6

El primer paso es la eterna ventana de aceptación de licencia. Continuamos

instalar VMware vCenter Server Appliance 6

Después tendremos que introducir el host en el que vamos a instalar nuestro VMware vCenter Server Appliance 6.0, así como las credenciales de root para acceder a él.

instalar VMware vCenter Server Appliance 6

Tras pasarse un ratillo verificando que todo está en orden, nos preguntará el nombre para el vCenter Server Appliance, así como una contraseña para el sistema operativo SUSE Linux que lo ejecuta.

instalar VMware vCenter Server Appliance 6

Esta contraseña tiene por defecto los siguientes requisitos:

  • Más de 8 caracteres y menos de 20
  • Al menos 1 mayúscula, 1 minúscula, 1 número y 1 símbolo.
  • No admite caracteres como espacios u otros ASCII especiales.

instalar VMware vCenter Server Appliance 6

A continuación nos preguntará que modalidad de despliegue queremos utilizar.

  • Embedded Platform Services Controller – Se instala el componente dentro del VMware vCenter Server Appliance. Recomendado para entornos pequeños o con solo un vCenter.
  • External Platform Services Controller – Se instalará Platform Services Controller en una máquina virtual separada y podrás controlar varios vCenters desde el mismo. Es el equivalente a Linked mode con 6.0 con las ventajas de no necesitar Active Directory.

instalar VMware vCenter Server Appliance 6

El siguiente paso nos preguntará si queremos unirnos a un dominio SSO ya existente o crear uno nuevo. En este tutorial no disponemos de un Platform Services Controller existente así que elegiremos la primera opción

En la siguiente pantalla nos tocará seleccionar el tamaño de nuestro entorno para dimensionar correctamente CPU, RAM y disco del VMware vCenter Server Appliance.

instalar VMware vCenter Server Appliance 6

Tamaños de VMware vCenter Server Appliance 6.0

  • Tiny – Hasta 10 hosts y 100 VMs – 2CPU, 8GB RAM y 120GB de HDD
  • Small – Hasta 100 hosts y 1000 VMs – 4CPU,16GB RAM y 150GB de HDD
  • Medium – Hasta 400 hosts y 4000 VMs – 8CPU, 24GB RAM y 300GB de HDD
  • Large – Hasta 1000 hosts y 10000 VMs – 16CPU, 32GB RAM y 450GB de HDD

El siguiente paso nos dejará elegir el datastore de nuestro host en el que vamos a desplegar VMware vCenter Server Appliance 6.0. Asegúrate de que tiene espacio suficiente.

instalar VMware vCenter Server Appliance 6

A continuación se nos preguntará por la base de datos que vamos a utilizar. VMware vCenter Server Appliance 6.0 solo soporta vPostgres (viene incluida) o un Oracle externo.

instalar VMware vCenter Server Appliance 6

En la configuración de red, seleccionaremos los parámetros apropiados para nuestro entorno. Es importante disponer siempre de un servidor DNS que nos resuelva los hostnames y nos haga la resolución inversa de las IPS (PTR). Repito, es IMPORTANTE tener un servidor DNS para no tener errores durante la instalación.

instalar VMware vCenter Server Appliance 6

Tras revisar todos los parámetros que hemos introducido en el asistente, pulsaremos Finish para desplegar el VMware vCenter Server Appliance 6.0. El despliegue tardará unos cuantos minutos, dependiendo de la velocidad de nuestra conexión con el host en el que vamos a desplegar VCSA.

instalar VMware vCenter Server Appliance 6

Una vez terminada la instalación cerraremos el asistente

instalar VMware vCenter Server Appliance 6

A continuación nos conectaremos a nuestro nuevo VMware vCenter Server Appliance 6.0 introduciendo en el navegador la url: https://fqdn.vcenter:9443/vsphere-client Si se nos pregunta por permisos para ejecutar el complemento del navegador, los proporcionaremos. Haremos login con el usuario que hemos creado en el momento del despliegue (Administrator@dominio)

instalar VMware vCenter Server Appliance 6

Ya tendremos instalado VMware vCenter Server Appliance 6.0 en nuestro entorno. Los siguientes pasos serán añadir hosts, almacenamiento. Veremos estos pasos en la siguiente entrada.

Logs de debug en vCenter syslog collector

Hace 3-4 días he actualizado vCenter a la versión 5.5u2d para solucionar unos problemas de excesivo uso de recursos de vpxd.exe causados por demasiadas entradas de eventos. Si bien ese problema se ha solucionado, he visto que el espacio en disco bajaba dramáticamente y he detectado que el que se estaba comiendo el espacio era:

Investigando un poco, he visto que se están generando entre 300 y 600 líneas por segundo de logs, lo cual es raro ya que este log jamás me había dado problema. Además los mensajes eran demasiado “debug” para lo que este log suele contener.

Al parecer, la actualización de vCenter Syslog Collector incluida en vCenter 5.5u2d incluye el flag de debug en la configuración, y hace que escriba a disco cada vez que recibe trazas de algún host. En cuanto tienes un entorno con cierto número de hosts, esto se desboca.

Este comportamiento está documentado en el KB2094175 y confirma que la instalación de vcenter syslog collector incluye el flag de debug en los logs que genera. Para solucionarlo, deberemos realizar el siguiente procedimiento:

1. Detener el servicio vCenter syslog collector

2. Editar el archivo (haciendo una copia de seguridad previamente)

3. Cambiar el nivel de debug de 1 a 0, quedando asi (dejamos el resto del xml tal y como está)

4. Iniciar el servicio vCenter Syslog Collector

Este bug está presente en vCenter 5.5u2

Renombrar VMs con Storage vMotion

En ocasiones podemos encontrarnos con que queremos renombrar VMs en nuestro entorno vSphere. La renombramos con el cliente tradicional o el cliente web, pero nos encontramos con que en el almacenamiento las carpetas y nombres de archivos permanecen igual.

Una solución tradicional que funcionaba para renombrar las máquinas virtuales en el almacenamiento al mismo nombre que tienen en el inventario de vCenter era moverlas con Storage vMotion, pero en ocasiones esto no es suficiente. Si estamos haciendo Storage vMotion de una maquina virtual renombrada y vemos que no se cambia su nombre, debemos seguir los siguientes pasos:

Conéctate al vCenter con credenciales o permisos de Administrador

  • Ve a Administration > vCenter Server Settings
  • Haz click en Advanced Settings
  • Añade la siguiente pareja de parámetros a la configuración avanzada
  • key -> provisioning.relocate.enableRename
  • value -> true
  • Acepta el cambio y reinicia el servicio de vCenter.

Una vez se haya reiniciado el servicio, reconecta con el cliente web o cliente tradicional de vSphere y prueba a hacer el storage vMotion de la máquina virtual que has renombrado. Si todo ha ido correctamente, deberás ser capaz de ver en el datastore de destino una carpeta con el nuevo nombre de la máquina virtual.

Si tu licencia no permite storage vMotion, puedes utilizar cold migration. La técnica de cold migration consiste en migrar de almacenamiento una máquina virtual apagada y te servirá para renombrar VMs a nivel de almacenamiento también.

Localizar una maquina virtual con IP Duplicada

Un problema común que podemos encontrar en algunos entornos es tener una máquina virtual con una ip duplicada. Estas situaciones suelen ser un dolor de cabeza ya que las entradas ARP van bailando causando un flapeo muy feo del servicio. Hasta que te ha ocurrido unas cuantas veces, suele ser difícil de detectar. Para colmo, localizar una maquina virtual con IP duplicada cuando utilizas switches virtuales es aún más problemático, ya que en la capa física de switches puedes encontrarte con que está viendo la mac en un puerto compartido por cientos de máquinas virtuales.

¿Como nos aseguramos de que tenemos un problema de IP duplicada en una maquina virtual?

Deberemos logarnos en otra máquina virtual que esté en el mismo segmento de red afectado y utilizar herramientas como en nuestro caso será arping

Efectivamente, en la respuesta de arping podemos ver como hay dos macs diferentes respondiendo con la misma IP.

¿Como localizamos la maquina virtual que tiene la IP duplicada?

Abriremos SQL Server Management Studio y seleccionaremos la base de datos vCenter. Haremos click derecho y seleccionaremos New Query

buscar vm ip duplicada

Ahora, en la ventana que se abre para la nueva query, realizaremos la siguiente consulta para localizar la mac que causa los problemas de IP duplicada. Si no sabemos que mac de las dos es, buscaremos ambas y luego determinaremos cual es la VM que debe tener la IP en conflicto.

Seleccionamos con el raton la línea entera y pulsamos el botón Execute.

buscar vm ip duplicada

Como resultado, obtendremos los IDs correspondientes a las máquinas virtuales que hemos solicitado.

buscar vm ip duplicada

Ahora vamos a lanzar una consulta adicional para ver el nombre real de la máquina virtual correspondiente a esos IDs. Para ello, utilizaremos los valores ENTITY_ID que hemos obtenido en la primera consulta.

Volvemos a seleccionar la consulta y pulsamos el botón Execute.

Los resultados nos mostrarán las máquinas virtuales que tienen las Macs que tienen configurada la misma IP.

buscar vm ip duplicada

 

Bloquear el acceso a vCenter con el cliente de Windows

La mejor forma de obligarse uno mismo a utilizar el cliente web, es bloquear el acceso a vCenter con el cliente de Windows tradicional. Para ello, deberemos editar un simple archivo en el servidor vCenter.

Bloquear el acceso a vCenter con el cliente de Windows si usas vCenter de Windows

Para bloquear el acceso a vCenter con el cliente de Windows deberemos editar el archivo

En el parámetro exactVersion, ponemos un valor que no coincida con ninguna versión de vCenter, por ejemplo 15.5.0

cliente tradicional vsphere
No hay que hacer más que guardar el archivo. Ni reiniciar vCenter ni nada. La siguiente vez que alguien intente conectar usando el cliente windows de vSphere, entrará en un bucle de actualización de cliente, ya que nunca conseguirá llegar a la versión inexistente que hemos especificado.
bloquear cliente tradicional vsphere
Avisad de estos cambios a los usuarios, pues cada descarga del cliente son bastantes megas de tráfico.

Bloquear el acceso a vCenter con el cliente de Windows si usas vCenter Server Appliance (VCSA)

Para bloquear el acceso a vCenter con el cliente de Windows deberemos editar el archivo

En el parámetro exactVersion, ponemos un valor que no coincida con ninguna versión de vCenter, por ejemplo 15.5.0

Con este cambio causaremos el mismo bucle de actualizaciones en el cliente de windows y jamás podrán conectarse.

Bloquear el acceso al host ESXi con el cliente de Windows si no tienes vCenter

Para bloquear el acceso a un host ESXi con el cliente de Windows, deberemos editar el archivo

Hay que cambiar el valor de exactVersion, igual que en los otros escenarios.

Al no disponer de vCenter, en este escenario tendrás que utilizar vcli, powercli, esxcli, etc.

Eliminar almacenamiento de un host

Como eliminar almacenamiento de un host manteniendolo disponible para otros hosts diferentes

Si tenemos almacenamiento compartido y queremos des-montarlo en un host determinado, deberemos seguir los siguientes pasos:

Asegurate de que ese host NO TIENE ninguna máquina virtual alojada en ese datastore. Si te hace sentir más cómodo, puedes ponerlo en modo mantenimiento para asegurarte.

haremos click sobre el datastore en concreto, iremos a All vCenter Actions y haremos click sobre Unmount Datastore.

Eliminar almacenamiento de VMware

En el siguiente menú te aparecera un listado de los hosts que están montando este datastore. Selecciona aquellos de los que quieras ELIMINAR el datastore.

Eliminar almacenamiento de VMware

Si tras eliminar el almacenamiento de un host vmware, ese almacenamiento ya no se encuentra montado en ningún otro host controlado por ese vCenter, el datastore desaparecerá del inventario.

Ten presente también que los datastores se puden usar tanto para almacenar máquinas virtuales como para la funcionalidad de heartbeat de HA. Pongamos un ejemplo

Host01 tiene 2 almacenamientos, uno llamado PROD01 para alojar máquinas virtuales y otro llamado SEGURO01 que has seleccionado manualmente para el Datastore Heartbeating. Aunque en SEGURO01 no tengas VMs, si desmontas este datastore de Host01, estarás cortando la capacidad de Host01 de enviar sus señales de que está vivo al resto de miembros del cluster que siguen montando. Si se diese una situación de fallo en el heartbeat por la red de management, probablemente causaras un evento de failover HA sin necesidad.

 

 

SDK de Python para VMware vSphere

Si queremos automatizar VMware vSphere usando python, podemos descargarnos e instalar el SDK de Python para VMware vSphere. Para ello, deberemos primero instalar la herramienta pip, que permite descargar paquetes de repositorios, al estilo pear en php o cpan en perl.