Table of Contents

Remove a compute node howto

Let's suppose that we want to remove, temporarily (e.g. for some maintenance operations) or forever (e.g. because it must be dismissed) a compute node (e.g. cld-nl-02.cloud.pd.infn.it) from the Cloud production service). Please take into account also the notes for the Live Migration howto

Disable the compute node

Disable the compute node so that it is not used anymore to host new instances:

# . keystone_admin.sh
# nova-manage service disable cld-nl-02.cloud.pd.infn.it nova-compute 

Migrate the VMs hosted on that compute node to other compute nodes

Find the VMs hosted in the relevant compute node:

# nova list --host cld-nl-02.cloud.pd.infn.it --all-tenants 
 
 
+--------------------------------------+-------------+--------+------------+-------------+-----------------------------+
| ID                                   | Name        | Status | Task State | Power State | Networks                    |
+--------------------------------------+-------------+--------+------------+-------------+-----------------------------+
| 61449b0d-d890-457e-8ab5-a4fa29cc622c | mypubvm     | ACTIVE | -          | Running     | AdminTesting-wan=10.63.15.2 |
| 182a276f-7278-4d34-82d8-e8c58630a8b8 | myvm        | ACTIVE | -          | Running     | AdminTesting-lan=10.64.15.9 |
| ec8cad8a-ad38-4f0f-adc6-b79a1c46079d | testandroid | ACTIVE | -          | Running     | Admin-lan=10.64.1.5         |
+--------------------------------------+-------------+--------+------------+-------------+-----------------------------+

Migrate them to other compute node(s) (cld-nl-03.lnl.infn.it) in the following example:

# nova live-migration 61449b0d-d890-457e-8ab5-a4fa29cc622c cld-nl-03.cloud.pd.infn.it
# nova live-migration 182a276f-7278-4d34-82d8-e8c58630a8b8 cld-nl-03.cloud.pd.infn.it
# nova live-migration ec8cad8a-ad38-4f0f-adc6-b79a1c46079d cld-nl-03.cloud.pd.infn.it

Check that indeed there are no other instances on the relevant compute node

# nova list --host cld-nl-02.cloud.pd.infn.it --all-tenants +----+------+--------+------------+-------------+----------+
| ID | Name | Status | Task State | Power State | Networks |
+----+------+--------+------------+-------------+----------+
+----+------+--------+------------+-------------+----------+

Now the compute node can be shutdown

Remove persistently the compute node

*Warning: the following operations haven't been fully tested*

If and only if the compute node must be removed forever (e.g. because it has to be dismissed):

 
mysql> use nova_prod;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
 
mysql> delete from compute_node_stats where compute_node_id=(select cn.id from compute_nodes cn, services s where cn.service_id=s.id and s.host='cld-nl-02.cloud.pd.infn.it');
Query OK, 0 rows affected (0.00 sec)
 
mysql> delete from compute_nodes where service_id=(select id from services where host='cld-nl-02.cloud.pd.infn.it');
Query OK, 1 row affected (0.01 sec)
 
mysql> delete from services where host='cld-nl-02.cloud.pd.infn.it';
Query OK, 1 row affected (0.01 sec)
mysql> use neutron_prod;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> select * from ovs_tunnel_endpoints; 
+----------------+----+
| ip_address     | id |
+----------------+----+
| 192.168.61.105 |  1 |
| 192.168.61.106 |  2 |
| 192.168.61.59  |  4 |
| 192.168.61.114 |  5 |
| 192.168.61.115 |  6 |
| 192.168.61.57  |  7 |
| 192.168.61.58  |  8 |
+----------------+----+
6 rows in set (0.00 sec)
mysql> delete from ovs_tunnel_endpoints where id = 4;