360SDN.COM

OpenStack如何实现虚拟机高可用?

来源:  2019-04-15 11:19:15    评论:0点击:

OpenStack社区目前还没有标准方式实现虚拟机高可用,假设底层使用统一分布式存储系统,如Ceph,如何实现OpenStack虚拟机的高可用?

 

@大天使之剑:

●虚拟机的高可用

      ●虚拟机误删除

            ●可以设置nova 软删除

      虚拟机意外死亡,不可恢复的错误

          使用ceph的快照特性,回滚至备份时间节点

      计算节点down

          使用ceph作为openstack后端,保证实例疏散的成功(注意虚拟机的cpu模式)

 

@chinesezzqiang:

原生的方法目前没有,我们是通过应用高可用和第三方的脚本来支持实现。

 

@付广平:

OpenStack目前没有组件可以直接拿来实现虚拟机高可用,但OpenStack目前支持虚拟机疏散迁移(evacuate),即虚拟机所在计算节点down掉并且使用共享存储情况下,把虚拟机迁移到其他正常的计算节点中重新运行,实现虚拟机故障快速恢复,结合外部的监控工具可以大致实现虚拟机的高可用。

以下内容均摘自徐超的文章:《4年!我对OpenStack运维架构的总结》。这里我引用虚拟机高可用的部分。

计算节点和虚拟机的HA

社区从2016年9月开始一直致力于一个虚拟机HA的统一方案,但目前仍然没有一个成熟的方案。实现计算节点和虚拟机HA,要做的事情基本有三件,即:

① 监控

监控主要做两个事情,一个是监控计算节点的硬件和软件故障。第二个是触发故障的处理事件,也就是隔离和恢复。

OpenStack 计算节点高可用,可以用pacemaker和pacemaker_remote来做。使用pacemaker_remote后,我们可以把所有的计算节点都加入到这个集群中,计算节点只需要安装pacemaker_remote即可。pacemaker集群会监控计算节点上的pacemaker_remote是否 “活着”,你可以定义什么是“活着”。比如在计算节点上监控nova-compute、neutron-ovs-agent、libvirt等进程,从而确定计算节点是否活着,亦或者租户网络和其他网络断了等。如果监控到某个pacemaker_remote有问题,可以马上触发之后的隔离和恢复事件。

② 隔离

隔离最主要的任务是将不能正常工作的计算节点从OpenStack集群环境中移除,nova-scheduler就不会在把create_instance的message发给该计算节点。

Pacemaker 已经集成了fence这个功能,因此我们可以使用fence_ipmilan来关闭计算节点。Pacemaker集群中fence_compute 会一直监控这个计算节点是否down了,因为nova只能在计算节点down了之后才可以执行host-evacuate来迁移虚拟机,期间等待的时间稍长。这里有个更好的办法,就是调用nova service-force-down 命令,直接把计算节点标记为down,方便更快的迁移虚拟机。

③ 恢复

恢复就是将状态为down的计算节点上的虚拟机迁移到其他计算节点上。Pacemaker集群会调用host-evacuate API将所有虚拟机迁移。host-evacuate最后是使用rebuild来迁移虚拟机,每个虚拟机都会通过scheduler调度在不同的计算节点上启动。

当然,还可以使用分布式健康检查服务Consul等。

虚拟机操作系统故障恢复

OpenStack 中的 libvirt/KVM 驱动已经能够很好地自动化处理这类问题。具体地,你可以在flavor的 extra_specs 或者镜像的属性中加上 hw:watchdog_action ,这样一个 watchdog 设备会配置到虚拟机上。如果 hw:watchdog_action 设置为 reset,那么虚拟机的操作系统一旦奔溃,watchdog 会将虚拟机自动重启。

 

@ccz320:

虚拟机的高可用最终是为了解决应用的高可用,所以解决这个问题可以把着眼点放在应用层高可用上,譬如软负载、弹性扩容等方式,不一定非要在openstack层解决问题。

 

@Henry2017:

用nova evacuate做计算节点虚机的高可用,当计算节点挂掉时候,通过监控系统发出请求执行驱散,会把故障节点的虚机迁移到其他节点,前提是要有共享存储。

 

来自社区交流,更多相关内容请点击阅读原文

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权