Hoy tratando de eliminar un switch distribuido de VMware vSphere que ya no usaba en un vCenter, recibía un error indicando que alguno de los puertos aun seguian conectados, cuando ya había eliminado los portgroups. Esto ha ocurrido por no haber desconectado los puertos de forma ordenada. La solución puede estar en volver a realizar toda la conexión y realizar una eliminación ordenada o bien eliminar los registros de dichos puertos desde la base de datos. Hoy os voy a explicar cómo acceder a vPostgres de mi vCenter.
Como podéis observar en la siguiente imagen, el error mostrado a la hora de eliminar el switch distribuido indica claramente que el puerto c-41067 is used by entity <not-found>.
Si nos dirigimos a puertos del Switch distribuido que esta mostrando el error podemos comprobar como dicho puerto no tiene conexion alguna.
En mi vCenter 6.0 uso la base de datos embebida vPostgres, la cual podemos acceder a ella como cualquier base de datos, para ello debemos localizar el fichero vcdb.properties en mi caso se encuentra en la siguiente ruta:
C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\vcdb.properties
Si lo abrimos nos encontraremos con los parámetros de conexión de nuestra base de datos (Usuario, contraseña y nombre de la base de datos que es VCDB), ahora ya podemos accder a través de consola a vPostgres, es necesario conocer la ruta en la que se encuentran los ejecutables del cliente de vPostgres y acceder a ella o bien añadirla a nuesta variable PATH:
cd C:\Program Files\VMware\vCenter Server\vPostgres\bin
Lo siguiente es conectarnos a la base de datos VCDB del vCenter:
psql -U vc VCDB
Ya hemos accedido a la base de datos VCDB, para listar todas las tablas lo hacemos de la siguiente forma:
\dt
La tabla que voy en la que debo eliminar el registro es VPX_DVPORT, para conocer cada uno de los campos de la tabla, usamos:
\d+ VPX_DVPORT
Ahora ya conozco la estructura de la tabla, puedo listar los puertos del switch y conocer su ID con la siguiente consulta:
VCDB=> select dvs_id, dvport_key from VPX_DVPORT;
28 | hlp-12#86383
28 | hlp-24#64915
28 | hlp-17#95070
28 | hlp-23#38389
28 | hlp-12#5958
28 | c-41067
28 | c-41068
El ID del puerto c-41067, que es el que da el error es el 28, por lo que voy a proceder a eliminarlo.
delete from VPX_DVPORT where dvs_id= 28;
Ahora ya puedo eliminar el Switch Distribuido de mi vCenter sin que aparezca ningún error.
Espero que os haya sido de utilidad el cómo acceder al vPostgres embebido de un vCenter o bien si os habéis encontrado con el error mostrado anteriormente.