Rebuild 可以恢复损坏的 instance。

那如果是宿主机坏了怎么办呢? 比如硬件故障或者断电造成整台计算节点无法工作,该节点上运行的 instance 如何恢复呢?

用 Shelve 或者 Migrate 可不可以? 很不幸,这两个操作都要求 instance 所在计算节点的 nova-compute 服务正常运行。 幸运的是,还有 Evacuate 操作。

Evacuate 可在 nova-compute 无法工作的情况下将节点上的 instance 迁移到其他计算节点上。但有个前提: Instance 的镜像文件必须放在共享存储上。

下面是 Evacuate instance 的流程图

  1. 向 nova-api 发送请求

  2. nova-api 发送消息

  3. nova-scheduler 执行调度

  4. nova-scheduler 发送消息

  5. nova-compute 执行操作

下面我们详细讨论每一个步骤。

向 nova-api 发送请求

我们的实验场景如下: Instance c2 运行在 devstack-compute1 上。

通过断电模拟计算节点故障,然后执行 Evacuate 操作恢复 instance c2。 目前 Evacuate 只能通过 CLI 执行。

这里需要指定 --on-shared-storage 这个参数

查看日志 /opt/stack/logs/n-api.log

nova-api 发送消息

nova-api 向 Messaging(RabbitMQ)发送了一条消息:“Evacuate 这个 Instance” 查看源代码 /opt/stack/nova/nova/compute/api.py,方法是 evacuate。

大家注意到没有,evacuate 实际上是通过 rebuild 操作实现的。 这是可以理解的,因为 evacuate 是用共享存储上 instance 的镜像文件重新创建虚机

nova-scheduler 执行调度

nova-scheduler 收到消息后,会为 instance 选择合适的计算节点。 查看日志 /opt/stack/logs/n-sch.log。

nova-scheduler 最后选择在 devstack-controller 计算节点上重建 instance。

nova-scheduler 发送消息

nova-scheduler 发送消息,通知计算节点可以创建 instance 了。 源代码在 /opt/stack/nova/nova/scheduler/filter_scheduler.py 第 95 行,方法为 select_destinations。

nova-compute 执行操作

计算节点上的工作是用共享存储上的镜像文件重建 instance。 日志在 devstack-controller:/opt/stack/logs/n-cpu.log。

为instance分配资源

使用共享存储上的镜像文件

启动 instance

Evacuate 操作完成后,instance 在 devstack-controller 上运行。

以上是 Evacuate 操作的详细分析。
至此,我们已经学习完 Nova 所有的操作,下一节将用一张图总结这些操作的用途和使用场景。

转载于:https://blog.51cto.com/cloudman/1786423

计算节点宕机了怎么办?- 每天5分钟玩转 OpenStack(43)相关推荐

  1. 计算节点宕机处理过程

    1.查看宕机节点 nova service-list 2.查看宕机节点所运行的云主机 # 获取每台云主机vm_id(云主机ID) nova hypervisor-servers 计算节点名称(nova ...

  2. zookeeper模拟监控服务节点宕机

    2019独角兽企业重金招聘Python工程师标准>>> zookeeper模拟监控服务节点宕机 /*** 模拟监控服务节点宕机* 思路:* 节点上线的时候,往/watch下创建一个节 ...

  3. oracle rodm包,由重启引起的Oracle RAC节点宕机分析及追根溯源

    作者介绍 裴征峰,现就职于北京海天起点,二线专家成员,南京办事处负责人,OCP 10g.OCP 11g.OCM11g.超八年Oracle服务经验,擅长数据库故障诊断和性能调优.目前主要从事客户的现场维 ...

  4. MySQL集群节点宕机,数据库脑裂!如何排障?

    作者介绍 王晶,中国移动DBA,负责"移动云"业务系统的数据库集成架构设计.运维.优化等工作:擅长技术领域MySQL,获Oracle颁发的"MySQL DBA" ...

  5. 下载丨云和恩墨技术通讯:OCR无法正常读取导致节点宕机

    墨墨导读:为了及时共享行业案例,通知共性问题,达成共享和提前预防,我们整理和编辑了<云和恩墨技术通讯>,通过对过去一段时间的知识回顾,故障归纳,以期提供有价值的信息供大家参考.同时,我们也 ...

  6. CRS磁盘force dismount引起的RAC节点宕机故障

    墨墨导读:本文来自墨天轮"猫瞳映月"投稿,作者主页https://www.modb.pro/u/12330,主要详述CRS磁盘force dismount引起的RAC节点宕机故障处 ...

  7. 模拟私网问题导致节点宕机无法启动

    模拟私网问题导致节点宕机无法启动 目的 分析过程 GI alert日志 os日志 ocssd.log 日志 参考文档 目的 本文章通过模拟私网问题,导致集群节点宕机,来进行日志分析. # ifconf ...

  8. oracle 监听 宕机,由重启引起的Oracle RAC节点宕机分析及追根溯源

    作者介绍 裴征峰,现就职于北京海天起点,二线专家成员,南京办事处负责人,OCP 10g.OCP 11g.OCM11g.超八年Oracle服务经验,擅长数据库故障诊断和性能调优.目前主要从事客户的现场维 ...

  9. oracle19c集群重启,由重启引起的Oracle RAC节点宕机分析及追根溯源

    原标题:由重启引起的Oracle RAC节点宕机分析及追根溯源 作者介绍 裴征峰,现就职于北京海天起点,二线专家成员,南京办事处负责人,OCP 10g.OCP 11g.OCM11g.超八年Oracle ...

最新文章

  1. AI开发者们,2017年你们过得好吗?
  2. 软件测试(20150819)
  3. elk-nginx输出json格式的日志
  4. HTML DOCTYPE 的重要性
  5. core部署iis的 调试net_远程调试远程 IIS 计算机上的 ASP.NET Core - Visual Studio | Microsoft Docs...
  6. Python更改数据类型——astype()方法和to_numeric()函数
  7. python中文字体下载_python中matlabplot和seaborn中文字体显示的一种解决方案
  8. 计算机术语hpp,HPP(计算机术语)_百度百科
  9. 常用的linux命令-vim
  10. 交通灯程序设计C语言,单片机C语言程序设计:LED 模拟交通灯
  11. 简述神经网络的优点和缺点,人工神经网络优缺点
  12. 【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现
  13. ParticleDesigner 粒子编辑器使用
  14. Https原理及实践
  15. python索引右往左_Python字符串从左到右索引默认0开始的,最大范围是字符串长度少1...
  16. python3 联合概率,边缘概率,贝叶斯定理(含详细推导)
  17. 重启tomcat报错 Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”
  18. VisualFreeBasic:VisualBasic6望尘莫及之循环内控制
  19. Java微信开发以及对各种云的评价
  20. last_ack状态及rst标记

热门文章

  1. m_Orchestrate learning system---六、善用组件插件的好处是什么
  2. ubuntu下网页显示乱码的解决方法
  3. 【转】父类子类指针相互转换问题
  4. linux系统下搭建php环境之-Discuz论坛
  5. springboot @ConfigurationProperties
  6. android相关使用工具
  7. Mac 新建unix可执行文件
  8. Outlook新邮件要双击打开后才显示为已读
  9. vue 路由相关操作
  10. 站长就是个太监^_^