티스토리 뷰


controller 서비스를 내렸다가 올리면서 깜빡하고 loadbalancer를 service start 하지 않고 loadbalancer를 생성한 경우 아래와 같이 pending_create 상태로 남겨진 loadbalancer를 확인하게 된다.


이때 어떠한 방법으로도 삭제되지 않아 골머리를 썩어 아래와 같은 방식으로 제거한 경험을 공유하고자 한다.


우선 알아야 할 것은 openstack의 경우 pending_create, pending_update 상태의 경우 어떠한 액션도 허용되지 않도록 되어 있다. 때문에 이와 같이 pending_create로 남겨진 경우 database에서 직접 삭제하는 방법밖에는 없다.


loadbalancer의 경우 아래와 같은 방법으로 제거가 가능하다.


아래 두개의 table이 loadbalancer에 관련된 Row 이다.

MariaDB [(none)]> use ovs_neutron

MariaDB [ovs_neutron]> select * from lbaas_loadbalancer_statistics;

+--------------------------------------+----------+-----------+--------------------+------

| loadbalancer_id                      | bytes_in | bytes_out | active_connections | total

+--------------------------------------+----------+-----------+--------------------+------

| 4b214772-b0ff-43ee-92f8-086d9f63f65d |        0 |         0 |                  0 |

| fb8c5f93-fc47-4f98-9791-f20717c31a35 |        0 |         0 |                  0 |

+--------------------------------------+----------+-----------+--------------------+------

2 rows in set (0.01 sec)


MariaDB [ovs_neutron]> select * from lbaas_loadbalancers;

+----------------------------------+--------------------------------------+---------------------+--------------+----------------+---------------------+------------------+----------

| tenant_id                        | id                                   | name                | vip_address  | admin_state_up | provisioning_status | operating_status | flavor_id

+----------------------------------+--------------------------------------+---------------------+--------------+----------------+---------------------+------------------+----------

| 11ec6d429e8f4b958131b3c19a6f42ad | 4b214772-b0ff-43ee-92f8-086d9f63f65d | AutoScaling-lb39476 | 10.10.10.207 |              1 | ACTIVE              | ONLINE           | NULL

| 11ec6d429e8f4b958131b3c19a6f42ad | fb8c5f93-fc47-4f98-9791-f20717c31a35 | AutoScaling-lb39476 | 10.10.10.203 |              1 | PENDING_CREATE      | OFFLINE          | NULL

+----------------------------------+--------------------------------------+---------------------+--------------+----------------+---------------------+------------------+----------

2 rows in set (0.00 sec)


위와 같은 상황으로 UI도 동일하게 PENDING_CREATE 상태이다.

(현재는 상황이 해결되 캡처화면을 만들지 못하였다.)



위와 같은 두개의 table의 관련 정보를 제거해야 한다.

lbaas_loadbalancers table의 id를 확인하고 statistics에 존재하는 값을 먼저 제거해야 한다.(foreign key 설정으로 인해)

MariaDB [ovs_neutron]> delete from lbaas_loadbalancers where id='2805257e-dd65-45d9-8359-734257b829d2';

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`ovs_neutron`.`lbaas_loadbalancer_statistics`, CONSTRAINT `lbaas_loadbalancer_statistics_ibfk_1` FOREIGN KEY (`loadbalancer_id`) REFERENCES `lbaas_loadbalancers` (`id`))

MariaDB [ovs_neutron]> delete from lbaas_loadbalancer_statistics where loadbalancer_id='2805257e-dd65-45d9-8359-734257b829d2';

Query OK, 1 row affected (0.02 sec)

MariaDB [ovs_neutron]> delete from lbaas_loadbalancers where id='2805257e-dd65-45d9-8359-734257b829d2';

Query OK, 1 row affected (0.02 sec)


이후 vip으로 설정했던 port를 직접 network에서 제거하면 관련된 loadbalancer를 모두 제거하게 된다.

해당 방법은 DB을 직접 건드리는 방법으로 추천방법은 아니다. 가능하면 이와 같은 상황이 발생되지 않도록 사전에 서비스가 정상적으로 구동되도록 조치해놓는것이 필요하다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함