在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很多时候,在删除计算节点的时候由于删除不彻底而导致了后面使用openstack出现了诸多问题。
下面记录了在openstack中彻底删除计算节点linux-node2.openstack的操作:
在控制节点上操作
查看计算节点
[root@linux-node1 src]# openstack host list +-----------------------+-------------+----------+ | Host Name | Service | Zone | +-----------------------+-------------+----------+ | linux-node1.openstack | conductor | internal | | linux-node1.openstack | cert | internal | | linux-node1.openstack | consoleauth | internal | | linux-node1.openstack | scheduler | internal | | linux-node1.openstack | compute | nova | | linux-node2.openstack | compute | nova | +-----------------------+-------------+----------+ [root@linux-node1 src]# nova service-list +----+------------------+-----------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+-----------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-conductor | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:25:08.000000 | - | | 4 | nova-cert | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:25:07.000000 | - | | 5 | nova-consoleauth | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:25:07.000000 | - | | 6 | nova-scheduler | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:25:07.000000 | - | | 7 | nova-compute | linux-node1.openstack | nova | enabled | up | 2016-11-02T11:24:59.000000 | - | | 8 | nova-compute | linux-node2.openstack | nova | enabled | down | 2016-10-31T05:55:24.000000 | - | +----+------------------+-----------------------+----------+---------+-------+----------------------------+-----------------+
虽然上面显示的一个计算节点linux-node2.openstack 的State状态是down,但是Status状态还是enabled可用。
现在需要使它为不可用。
[root@linux-node1 src]# nova service-disable linux-node2.openstack nova-compute +-----------------------+--------------+----------+ | Host | Binary | Status | +-----------------------+--------------+----------+ | linux-node2.openstack | nova-compute | disabled | +-----------------------+--------------+----------+ [root@linux-node1 src]# nova service-list +----+------------------+-----------------------+----------+----------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+-----------------------+----------+----------+-------+----------------------------+-----------------+ | 1 | nova-conductor | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:25:48.000000 | - | | 4 | nova-cert | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:25:47.000000 | - | | 5 | nova-consoleauth | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:25:47.000000 | - | | 6 | nova-scheduler | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:25:47.000000 | - | | 7 | nova-compute | linux-node1.openstack | nova | enabled | up | 2016-11-02T11:25:49.000000 | - | | 8 | nova-compute | linux-node2.openstack | nova | disabled | down | 2016-11-02T11:25:48.000000 | - | +----+------------------+-----------------------+----------+----------+-------+----------------------------+-----------------+
在数据库里清理(nova库)
[root@linux-node1 ~]# mysql -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 230863 Server version: 5.5.50-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. MariaDB [(none)]> use nova; Database changed MariaDB [nova]> delete from nova.services where host="linux-node2.openstack"; Query OK, 1 row affected (0.00 sec) MariaDB [nova]> delete from compute_nodes where hypervisor_hostname="linux-node2.openstack"; Query OK, 1 row affected (0.00 sec) MariaDB [nova]> select host from nova.services; +-----------------------+ | host | +-----------------------+ | linux-node1.openstack | | linux-node1.openstack | | linux-node1.openstack | | linux-node1.openstack | | linux-node1.openstack | +-----------------------+ 5 rows in set (0.00 sec) MariaDB [nova]> select hypervisor_hostname from compute_nodes; +-----------------------+ | hypervisor_hostname | +-----------------------+ | linux-node1.openstack | +-----------------------+ 1 row in set (0.00 sec)
再次查看计算节点,就发现已经删除了linux-node2.openstack
[root@linux-node1 src]# openstack host list +-----------------------+-------------+----------+ | Host Name | Service | Zone | +-----------------------+-------------+----------+ | linux-node1.openstack | conductor | internal | | linux-node1.openstack | cert | internal | | linux-node1.openstack | consoleauth | internal | | linux-node1.openstack | scheduler | internal | | linux-node1.openstack | compute | nova | +-----------------------+-------------+----------+ [root@linux-node1 src]# nova service-list +----+------------------+-----------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+-----------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-conductor | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:44:08.000000 | - | | 4 | nova-cert | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:44:08.000000 | - | | 5 | nova-consoleauth | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:44:07.000000 | - | | 6 | nova-scheduler | linux-node1.openstack | internal | enabled | up | 2016-11-02T11:44:07.000000 | - | | 7 | nova-compute | linux-node1.openstack | nova | enabled | up | 2016-11-02T11:44:09.000000 | - | +----+------------------+-----------------------+----------+---------+-------+----------------------------+-----------------+