OpenStack – Removendo itens problemáticos após erro de comunicação com o Load Balancer

13 de janeiro de 2016

Quando há algum problema de comunicação entre o OpenStack e o balanceador de carga, as seguintes telas geralmente são mostradas ao usuário no momento de criação de pools, membros, VIPs e monitores.

Após você realizar o troubleshoot e resolver o problema, o usuário conseguirá criar novamente o que ele necessita. Mas todos os itens com erro que foram criados anteriormente permanecerão na tela dos usuários, e não será possível realizar a exclusão de nenhum deles pela interface web.

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_01 2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_02 2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_03 2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_04 2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_05 2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_06 2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_07 2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_08Esse techtip tem a intenção de mostrar como deletar Pools, VIPS, Membros e monitores que apresentaram problemas.

O único pré-requisito aqui é que você precisa ter acesso ao banco de dados que suporta sua infraestrutura OpenStack, além de ser administrador do ambiente para executar comandos no Neutron.

Então vamos lá!

É muito importante seguir esses comandos na ordem que são apresentados nesse passo a passo, pois, caso contrário, ocorrerão problemas na exclusão, devido à algumas dependências de chaves estrangeiras.

Já dentro do banco de dados MySQL que suporta sua cloud OpenStack, rode o comando:

use neutron;

Com isso você estará dentro do banco que contém os dados dos Load Balancers criados pelos usuários.

O primeiro passo é remover os membros do pool. Para isso, localize-os na tabela members e guarde os IDs (eles devem estar com o status de “PENDING_CREATE”) e depois podem ser apagados com os seguintes comandos:

select * from members;

delete from members where id=’id do membro1’;

delete from members where id=’id do membro2’;

Como no exemplo abaixo:

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_09O próximo passo é apagar o VIP. Para isso, primeiro precisamos desassociá-lo do pool criado. Com os seguintes comandos:

select * from pools;

Localize o pool que está com erro (estará com o status de “ERROR”), e copie o seu id, após isso execute o comando:

update pools set vip_id=NULL where pool_id =’id do pool’;

Como no exemplo abaixo:

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_10Agora podemos ir na tabela que contém os VIPS para eliminá-lo.

Para isso, execute o comando:

select * from vips;

Na tabela que será mostrada, copie o ID do VIP que está com erro (Apresenta o status “PENDING_CREATE) e também o seu port_id, pois também iremos apagá-lo nos próximos passos.

Após coletar os dados, execute o seguinte comando:

delete from vips where id =’id do vip’;

Como no exemplo abaixo:

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_11
Com o port_id recolhido no passo anterior, vamos remover a porta usada pelo VIP, mas nesse caso não iremos remover diretamente no banco, e sim por meio do neutron, pelo comando (você deve estar logado como administrador da cloud para executá-lo com sucesso):

neutron port-delete id da porta;

Como no exemplo abaixo:

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_12Agora vamos voltar ao banco de dados para deletar a associação de monitor com o pool, na tabela poolmonitorassociations.

Para isso, possuindo o pool_id que já foi localizado em passos anteriores, execute o comando:

delete from poolmonitorassociations where pool_id=’id do pool’;

Como no exemplo abaixo:

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_13E o último passo antes de remover o pool é deletar as estatísticas do pool na tabela poolstatisticss.

Com o pool_id em mãos, execute o comando:

delete from poolstatisticss where pool_id=’id do pool’;

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_14E enfim, vamos remover os pools.

Mais uma vez com o id do pool em mãos, execute o comando:

delete from pools where id=’id do pool’;

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_15
Após a execução de todos esses passos, sua base de dados e interface web estarão novamente limpas e sem os rastros de criações que apresentaram erros anteriormente.

2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_16 2016_01_NatanFranghieru_Removendo_itens_problemáticos_da_interface_web_(dashboard)_do_OpenStack_após_problemas_de_comunicação_com_o_Load_Balancer_17

 

 

 

 

 

 

Posts relacionados