Hola a tod@s
En esta oportunidad veremos como recuperar nuestro vCenter Server cuando se corrompe el archivo “vpxd.cfg“. Lo más fácil seria recuperarnos desde un snapshot o un backup, pero si recuperamos nuestro vCenter y el problema persiste, debemos tener otra opción para poder levantar este.
Existen dos KB de VMware para poder resolver el problema con el archivo “vpxd.cfg“:
Causa
El archivo vpxd.cfg puede dañarse debido a:
- Problemas con el disco virtual de la máquina virtual (VM) de vCenter.
- Permitir que los discos virtuales se llenen (excepto /storage/archive) puede provocar la corrupción de archivos o datos.
- Realizar un apagado forzado de vCenter.
Impacto
El vpxd.cfg corrupto no permitirá que se ejecute vCenter Server, lo que impedirá cambios de administración en el sitio de vCenter.
Seguir este procedimiento conlleva riesgos de causar más daños si no se prosigue correctamente.
Nos debemos asegurar de tener un backup del vCenter, que sería la forma más simple de poder recuperarnos.
Verificación
- Conectarse al vCenter con el usuario root a través de SSH.
- Verificar el status del archivo vpxd.cfg con el comando.
# /usr/sbin/vpxd
Nota: La salida del comando tiene dos posibilidades:
- Corrupto: vpxd.cfg result: Aborted (core dumped).
- Buen estado: el resultado de la pantalla es en blanco.
Aclaración
Para el procedimiento usaremos los siguientes datos:
- vCenter corrupto: Corresponde al vCenter que tiene corrupto el archivo “vpxd.cgf“.
- vCenter nuevo: Corresponde al vCenter que usaremos su archivo “vpxd.cfg” para realizar la recuperación del vCenter corrupto.
Además, estaremos usando nombres ficticios para los vCenter. En vuestro caso cambiar según el nombre de sus vCenter Server.
1 – vCenter corrupto: vcenter100.lab.net
2 – vCenter nuevo: vcenter200.vclass.net
Solución
Conectarse a través de WinSCP al servidor de vCenter corrupto.
Nota: En caso de no funcionar la conexión a través de SCP, usar la siguiente KB de VMware 2107727.
Vamos a la ruta: /etc/vmware-vpx/vpxd.cfg en el vCenter corrupto y copiamos el archivo “vpxd.cfg” a nuestro equipo local.
Así tendremos un backup de archivo original “vpxd.cfg” que está con problemas.
Lo siguiente, será conectarnos a través de ssh al vCenter corrupto, para poder obtener algunos datos necesarios para la reparación del archivo “vpxd.cfg“. Estos datos los guardaremos en un archivo de texto, ya que los usaremos en pasos posteriores.
Una vez conectado al vCenter por ssh, obtener el FQDN actual del vCenter con el siguiente comando:
# hostname -f
Lo siguiente será obtener el vCenter Machine ID con el comando:
# /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id –server-name localhost
Obtenemos la versión actual de vpostgres con el comando:
# /opt/vmware/vpostgres/current/bin/psql -V
El ultimo comando será para obtener la contraseña de la base de datos de vCenter para vpxd:
# cat /etc/vmware-vpx/vcdb.properties
Lo siguiente, es algo más engorroso de hacer, ya que tendremos que copiar el archivo “vpxd.cfg” desde un nuevo vCenter o algun otro vCenter que contemos en nuestra infraestructura. Este vCenter debe contar con la misma versión del vCenter corrupto.
Nos conectaremos vía SCP al vCenter nuevo.
Vamos a la ruta: /etc/vmware-vpx/vpxd.cfg en el vCenter nuevo y copiamos el archivo “vpxd.cfg” a nuestro equipo local. Este será el archivo que editaremos y volveremos a cargar en el vCenter corrupto una vez editado.
Ya con esto tendremos dos archivos “vpxd.cfg“.
En este punto viene lo más complicado, que es editar el archivo “vpxd.cfg” que copiamos desde un vCenter nuevo. Para esto, editaremos el archivo usando Notepad ++ o el programa que estimen conveniente.
Dentro del archivo buscaremos la siguiente línea:
# <hostnameUrl>vcenter100.lab.net</hostnameUrl>
Donde veremos el nombre FQDN del nuevo vCenter.
Una vez identificada la línea correspondiente, tendremos que cambiar el nombre FQDN por el nombre FQDN del vCenter corrupto que obtuvimos en pasos anteriores.
Cambiamos “vcenter100.lab.net” por “vcenter200.vclass.net“.
Lo siguiente a cambiar serán las etiquetas <uri> en el área que están apuntando al vCenter nuevo.
Cambiamos el nombre FQDN del vCenter nuevo (vcenter100.lab.net) por el FQDN del vCenter corrupto (vcenter200.vclass.net):
Ahora, nos toca cambiar el “machine ID” del vpxd. Aquí usaremos el ID que obtuvimos del comando: /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id –nombre-servidor localhost que ejecutamos en pasos anteriores.
Lo primero será identificar la línea que debemos modificar:
Cambiamos el ID actual por el ID del vCenter corrupto.
Lo último que tendremos que modificar en el archivo, será eliminar la línea que hace referencia a “key_EvaluationExpiryDate“.
Quedando de la siguiente manera sin “key_EvaluationExpiryDate“.
Guardamos los cambios del archivo “vpxd.cfg“.
Reemplazar el archivo “vpxd.cfg” corrupto
Para esto nos conectaremos nuevamente al vCenter corrupto vía WinSCP.
Copiamos el archivo “vpxd.cfg” desde nuestro equipo local al vCenter corrupto en la ruta: /etc/vmware-vpx/.
Volvemos a conectarnos vía SSH al vCenter corrupto y ejecutamos el comando:
# /sbin/vpxd -p
Esto, para poder actualizar la contraseña de vcdbm con la contraseña que obtuvimos en pasos anteriores usando el comando: cat /etc/vmware-vpx/vcdb.properties
Finalmente, después de muchos pasos y si hicimos todo correctamente, iniciamos el servicio vpxd con el comando:
# service-control –start vmware-vpxd
Ya con el servicio funcionado, nos volvernos a conectar a vSphere Cliente y comprobamos que este todo operando correctamente.