Demo

Como remover una red de tenant desde base de datos en Cloud Director

Hola, en este nuevo post vamos a hablar de como remover una red de organización en nuestro vCloud Director. Recientemente realice este soporte técnico en un cliente que es proveedor de servicios IaaS, el cual realizó un mal procedimiento de eliminación de una Organización y un virtual Datacenter de Organización, provocando que una red de organización quede en estado "huérfana" y no pueda ser eliminada. Haciendo que toda la cadena de elementos padres (ORG y VDCORG) queden en estado de espera o con problemas sin resolver.

DISCLAIMER: El método que se realizó en este post es sobre la base de datos PostgreSQL de vCD, los pasos son básicos pero si no están familiarizados con BDDs Postgres, la recomendación es realizar un caso de soporte con GSS de VMware.

Solución:

Antes de iniciar, se recomienda realizar un snapshot de las celdas de vCD, no olvidarse desmarcar la opción de snapshot de memoria. 

Además, se recomienda parar los servicios y jobs encolados de las celdas, colocarlas en modo mantenimiento estaría mejor usando los siguientes comandos:

$VCLOUD_HOME/bin/cell-management-tool -u administrator cell --quiesce true

$VCLOUD_HOME/bin/cell-management-tool -u administrator cell --maintenance true

Debemos iniciar con los accesos a la celda principal por protocolo SSH usando cualquier programa de tu gusto. Y procedemos a ingresar al usuario propietario de la BDD PostgreSQL de vCD, que por defecto es usuario postgres. Para luego ingresar a la BDD y a la instancia de BDD de vCD la cual es vcloud.

root@vcloud [ ~ ]# su - postgres
postgres [ ~ ]$ psql
postgres=# \c vcloud;

Luego de ingresar a nuestra BDD vcloud de las celdas, vamos a ejecutar los siguientes queries:

vcloud=# DELETE FROM network_interface WHERE lnet_id IN (SELECT id FROM logical_network WHERE name IN 
('Nombre_de_la_red'));

vcloud=# DELETE FROM gateway_assigned_ip WHERE gateway_interface_id IN (SELECT id FROM gateway_interface 
WHERE logical_network_id IN(SELECT id FROM logical_network WHERE name IN ('Nombre_de_la_red')));

vcloud=# DELETE FROM gateway_interface WHERE logical_network_id IN (SELECT id FROM logical_network 
WHERE name IN ('Nombre_de_la_red'));

vcloud=# DELETE FROM logical_network WHERE link_lnet_id IN (SELECT id FROM logical_network WHERE name IN ('Nombre_de_la_red'));

vcloud=# DELETE FROM logical_network_ip_scope WHERE logical_network_id IN (SELECT id FROM logical_network 
WHERE link_lnet_id IN(SELECT id FROM logical_network WHERE name IN ('Nombre_de_la_red')));

vcloud=# DELETE FROM shared_org_vdc_network WHERE lr_id IN (SELECT id FROM logical_network WHERE name IN ('Nombre_de_la_red'));

vcloud=# DELETE FROM logical_network WHERE name IN ('Nombre_de_la_red') AND scope_type=2;

vcloud=# DELETE FROM vdc_logical_resource WHERE lr_type = 'NETWORK' AND name IN ('Nombre_de_la_red');

En donde podemos observar que existen 6 elementos de la base de datos que están atados a esta red de organización, estos elementos ya no existen en la organización pero quedaron "pegados" en estas tablas.

Luego de realizar estos pasos se reestablece el servicio de vDC y se hacen las revisones que la red de organización con problemas haya sido eliminada por completo, usando el comando:

$VCLOUD_HOME/bin/cell-management-tool -u administrator cell --maintenance false

Nota, puede existir varias concatenaciones de tablas y ID foráneas que deben ser eliminadas en otras tablas, por lo general sucede este problema cuando la red de organización estaba compartida para todos los VDC de Organización:

Se debe eliminar el ID de la red en la tabla de BDD shared_org_vdc_network usando el siguiente query:

vcloud=# DELETE FROM shared_org_vdc_network WHERE lr_id = 'ID DE RED';

Donde el ID de la red es el que hace referencia entre las dos tablas de BDD y nos indica que es la red compartida que deseamos eliminar.

En conclusión: Debemos tener cuidado al momento de eliminar elementos en una Organización, se deben tener procesos claros y seguir la buenas prácticas de eliminación de redes y VMs.

Tags: mantenimiento, Cloud, VMwareCloudDirector, troubleshooting, CloudDirector, tenant, organizacion, postgres, unresolved, reddeorganizacion, basededatos, vpostgres

Escribir un comentario


Código de seguridad
Refescar

Este Blog usa cookies propias y de terceros para optimizar la navegación y que puedas ver correctamente su contenido. Si permaneces en el sitio asumiremos que estas de acuerdo .