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

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

参与22

6同行回答

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

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

收起
金融其它 · 2018-09-21
浏览4465
int32bitint32bit研发工程师民生银行
OpenStack目前没有组件可以直接拿来实现虚拟机高可用,但OpenStack目前支持虚拟机疏散迁移(evacuate),即虚拟机所在计算节点down掉并且使用共享存储情况下,把虚拟机迁移到其他正常的计算节点中重新运行,实现虚拟机故障快速恢复,结合外部的监控工具可以大致实现虚拟机的高可用。...显示全部

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

正好这几天徐超这几天写了一篇关于OpenStack的运维架构的总结,里面涉及虚拟机高可用的实现,大家可以参考。https://mp.weixin.qq.com/s?__biz=MzU0NDEyODkzMQ==&;mid=2247487432&idx=1&sn=84ea57933867f03934a3eca5f183244d&chksm=fb01a504cc762c12b96e438cc03dafd4cd25c82592bef0f9d94b6b93ba2133469c27aa20b71b&mpshare=1&scene=1&srcid=0921U6SWclCtvLEO74VqDOSY&pass_ticket=dwA3C%2F41CXvlA3LabKxo8n6U55Xu42iKGixrwfiLBfI%3D#rd

这里我引用虚拟机高可用的部分。

注意以下内容均摘自徐超的文章:<4年!我对OpenStack运维架构的总结></4年!我对OpenStack运维架构的总结>

计算节点和虚拟机 HA

计算节点和虚拟机的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 会将虚拟机自动重启。

收起
银行 · 2018-09-21
浏览5517
ccz320ccz320数据库架构师自谋职业
虚拟机的高可用最终是为了解决应用的高可用,所以解决这个问题可以把着眼点放在应用层高可用上,譬如软负载、弹性扩容等方式,不一定非要在openstack层解决问题。显示全部

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

收起
互联网服务 · 2018-09-21
浏览4586
chinesezzqiangchinesezzqiang课题专家组信息技术经理M
原生的方法目前没有,我们是通过应用高可用和第三方的脚本来支持实现。显示全部

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

收起
IT其它 · 2018-09-20
lixiang11lixiang11系统运维工程师华晟经世
目前还没有很好方法实现虚拟机的高可用显示全部

目前还没有很好方法实现虚拟机的高可用

收起
互联网服务 · 2018-09-19
浏览4572
大天使之剑大天使之剑售前技术支持杭州才云科技
虚拟机的高可用虚拟机误删除可以设置nova 软删除虚拟机意外死亡,不可恢复的错误使用ceph的快照特性,回滚至备份时间节点计算节点down使用ceph作为openstack后端,保证实例疏散的成功(注意虚拟机的cpu模式)...显示全部
  • 虚拟机的高可用

    • 虚拟机误删除

      • 可以设置nova 软删除
    • 虚拟机意外死亡,不可恢复的错误

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

      • 使用ceph作为openstack后端,保证实例疏散的成功(注意虚拟机的cpu模式)
收起
互联网服务 · 2018-09-19

提问者

int32bit
研发工程师民生银行
擅长领域: 云计算私有云云管平台

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-09-19
  • 关注会员:6 人
  • 问题浏览:8607
  • 最近回答:2018-09-21
  • X社区推广