nova - 虚拟机高可用思路

今天无意中看到youtube上有关于openstack 虚拟机高可用的演讲视频,认真地看了一把,挺有收获的。

视频链接:https://www.youtube.com/watch?v=1lAI1_HPhd0 (来自rackspace的大牛讲的)


基本思路如下:

虚拟机故障的情况分为两种:

一、某个compute node下的某些虚拟机down了(非正常关机情况)

二、整个compute node都down了(类似断电、kernel panic等故障)


针对第一种情况,是通过libvirt event api监测vm的生命周期。

如何调用libvirt event api,这里有例子:https://github.com/wiedi/libvirt/tree/master/examples/domain-events

1、操作系统正常关机,可以通过VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN和VIR_DOMAIN_EVENT_SHUTDOWN_FINISHED事件变量来检测,虚拟机不需要restore。

2、qemu-kvm进程crash,通过VIR_DOMAIN_EVENT_STOPPED_FAILED变量来检测,一旦检测到汇报给外部监控系统,监控系统触发虚拟机restore(从之前做的snapshot恢复)。


针对第二种情况,使用pacemaker+heartbeat或pacemaker+corosync来检测nova-compute服务,一旦检测到服务非运行状态,汇报给外部监控系统,监控系统触发nova evacuate api,来实现虚拟机的故障转移。

你可能感兴趣的:(VM,HA,nova)