在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很多时候,在删除计算节点的时候由于删除不彻底而导致了后面使用openstack出现了诸多问题。
下面记录了在openstack中彻底删除计算节点linux-node2.openstack的操作:
在控制节点上操作
查看计算节点
代码语言:javascript复制[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可用。 现在需要使它为不可用。
代码语言:javascript复制[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库)
代码语言:javascript复制[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
代码语言:javascript复制[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 | - |
---- ------------------ ----------------------- ---------- --------- ------- ---------------------------- -----------------