compute节点启动初始化销毁已撤离虚拟机

针对OpenStack HA要不要做故障主机隔离,调研了nova-compute服务启动流程

调研结果:
1、nova-compute服务启动时,首先创建service对象,service来初始化ComputeManager与对应的driver(也就是libvirt);
2、service在start的时候,会调用执行ComputeManager的hook方法,包括init_host()方法,如下图;
compute服务启动

3、init_host()方法逻辑见下图,其中有销毁已安全撤离Instance的方法调用:init_host查看是否需要销毁已撤离虚拟机
4、进一步看self._destroy_evacuated_instances()方法:
逐个Instance判断所属主机是否为本机,如果已经evacated,就将其destroy;
destroy包括:instance以及instance的network,disk。
在这里插入图片描述
在这里插入图片描述
结论:
nova-compute服务在启动时,会逐个检验Hypervisor上所有Instance,是否已经被evacuated(安全撤离了)。
如果已经安全撤离,则将其在本Hypervisor上的信息删除。
也就是说,HA功能不需要做隔离操作。

其他情况:
如果故障主机恢复正常重新启动后,Hypervisor服务正常,但nova-compute出现异常,不能正常启动。
会导致已经安全撤离的Instance无法销毁,与已安全撤离的Instance出现重复的情况。
这种情况下,由于nova-compute服务异常,通过api也无法做任何操作,只能特殊处理。
比如,管理员或者运维人员使用virsh,从libvirt层面手动删除已经安全撤离的Instance。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值