深挖Openstack Compute HA(3)

时间:2024-05-22 08:49:14

在测试HA方案时,会用到很多CLI命令去查看当前节点的状态和信息。其中有一些经验总结,如下:

1. 相互疏散的节点是Status为enabled的computer节点

2. Computer节点为disabled时,将不会有新的VM实例调度过去

3. 测试关机状态

    就是在物理机上关闭电源,从而所有网络都是不通的

4. 当所有网络都不通时,该如何处理?

    就是会选择不到任何一个合适的目标主机,执行完evacuate后该实例还在原节点

5. 查看日志

    cd /var/log/nova 

 

接下来介绍一些常用命令:

controller控制节点上:

1. 要执行nova命令,先执行: .admin-openrc.sh 或者 source admin-openrc.sh

 

2. 查看帮助:nova help

 

3. 查看服务列表:nova service-list

深挖Openstack Compute HA(3)

        该命令获取的是nova数据库的数据,State信息不一定会及时更新。所以在computer-02执行 systemctl restart openstack-nova-compute 让computer重启后,这里命令获取的computer-02的State不一定是up。

 

4. 查看目标主机在跑的实例

nova hypervisor-servers computer-01

深挖Openstack Compute HA(3)

 

5. 列出所有实例:nova list --all-ten

深挖Openstack Compute HA(3)

 

6. 查看computer-02的services状态

nova service-list | grep -i computer-02 | awk -F  "|" '{print $7}'

深挖Openstack Compute HA(3)

 

7. 列出所有host

nova host-list | grep compute

深挖Openstack Compute HA(3)

 

8. 实例从status:ERROR 和PowerState:NOSTATE -> ACTIVE Running

(1)重置虚拟机

nova reset-state 6bc7f520-5b82-4854-a567-371f3b38227e  --active

(2)硬重启

nova reboot -hard 6bc7f520-5b82-4854-a567-371f3b38227e

 

9. 查看实例信息

nova show 6bc7f520-5b82-4854-a567-371f3b38227e

 

10. 删除虚拟机

nova delete 6bc7f520-5b82-4854-a567-371f3b38227e

 

11. 查看资源使用状态

nova hypervisor-stats

 

12. 将虚拟机从shutoff关机状态启动

nova start 6956c4f1-b2a7-48d1-b816-f86830ada266

 

13. 将计算节点的Status由disabled变为enabled

nova service-enable computer-02 nova-compute

互换:

nova service-disable computer-02 nova-compute

 

computer计算节点上:

1. 登录computer-02:ssh computer-02

 

2. 列出计算节点在线的虚拟机

virsh list --all

有数据显示的前提是computer的状态state为up

深挖Openstack Compute HA(3)

 

3. 存放虚拟机实例的路径

/var/lib/nova/instances

进入某个实例,查看虚拟机实例配置文件:cat libvirt.xml

 

4. 查看节点状态

systemctl status openstack-nova-compute

深挖Openstack Compute HA(3)

 

5. computer上重启nova服务

systemctl restart openstack-nova-compute

执行成功的话,computer的状态变为up,可在controller上用nova service-list进行查看

 

6. evacuate之后要把原主机上的实例undefine掉

for did in 'virsh list --all|awk '{print $2}' | grep -v "^$" | grep -v "Name"'; do virsh undefine $did; done

 

7. 批量删除nova

for m in 'nova list --all-ten | awk '{print $2}' | grep -v "^$" | grep -v "ID" '; do nova delete $m; done

 

8. 清除实例

virsh undefine instance-00000462

 

9. 找到所有qemu-kvm实例并干掉

ps -ef | grep qemu-kvm | grep -v grep | awk '{print $2}' | xargs -i kill -9 {}

 

10. 启动/停掉网卡

ifdown eth3

ifup eth3

另:外部网 ifup br-ex    管理网:ifup br-mgmt

 

11. 查看网关

(1)Ifconfig

只会显示所有up的网关(比如,执行ifdown br-ex就看不到br-ex网卡)

(2)ip a