计算节点宕机了怎么办?- 每天5分钟玩转 OpenStack(43)
Rebuild 可以恢复损坏的 instance。
那如果是宿主机坏了怎么办呢? 比如硬件故障或者断电造成整台计算节点无法工作,该节点上运行的 instance 如何恢复呢?
用 Shelve 或者 Migrate 可不可以? 很不幸,这两个操作都要求 instance 所在计算节点的 nova-compute 服务正常运行。 幸运的是,还有 Evacuate 操作。
Evacuate 可在 nova-compute 无法工作的情况下将节点上的 instance 迁移到其他计算节点上。但有个前提: Instance 的镜像文件必须放在共享存储上。
下面是 Evacuate instance 的流程图
向 nova-api 发送请求
nova-api 发送消息
nova-scheduler 执行调度
nova-scheduler 发送消息
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 所有的操作,下一节将用一张图总结这些操作的用途和使用场景。
计算节点宕机了怎么办?- 每天5分钟玩转 OpenStack(43)的更多相关文章
- openstack高可用集群20-openstack计算节点宕机迁移方案
openstack计算节点宕机迁移方案 情景一:/var/lib/nova/instances/ 目录不共享的处理方法(类似手动迁移云主机到其他节点)
- O043、计算节点宕机了怎么办
参考https://www.cnblogs.com/CloudMan6/p/5562131.html Rebuild 可以恢复损坏的instance .那如果是宿主机坏了怎么办呢?比如硬件故障或者 ...
- Vertica集群单节点宕机恢复方法
Vertica集群单节点宕机恢复方法 第一种方法: 直接通过admintools -> 5 Restart Vertica on Host 第二种方法: 若第一种方法无法恢复,则清空宕机节点的c ...
- Vertica节点宕机处理一例
Vertica节点宕机处理一例: 查询数据库版本和各节点状态 常规方式启动宕机节点失败 进一步查看宕机节点的详细日志 定位问题并解决 1. 查询数据库版本和各节点状态 dbadmin=> sel ...
- elasticsearch介绍集群,模拟横向扩展节点、节点宕机、改变分片
出处:[http://www.cnblogs.com/dennisit/p/4133131.html] ,防楼主删博,故保留一份! elasticsearch用于构建高可用和可扩展的系统.扩展 ...
- redis集群节点宕机
redis集群是有很多个redis一起工作,那么就需要这个集群不是那么容易挂掉,所以呢,理论上就应该给集群中的每个节点至少一个备用的redis服务.这个备用的redis称为从节点(slave). 1. ...
- clickhouse高可用-节点宕机数据一致性方案-热扩容
1. 集群节点及服务分配 说明: 1.1. 在每个节点上启动两个clickhouse服务(后面会详细介绍如何操作这一步),一个数据分片,一个数据备份,为了确保宕机数据一致性,数据分片和数据备份不能同一 ...
- Redis生产环境节点宕机问题报错及恢复排错
Redis故障发现 主观下线 当cluster-node-timeout时间内某节点无法与另一个节点顺利完成ping消息通信时,则将该节点标记为主观下线状态. 客观下线 当某个节点判断另一个节点主观下 ...
- 『叶问』#41,三节点的MGR集群,有两个节点宕机后还能正常工作吗
『叶问』#41,三节点的MGR集群,有两个节点宕机后还能正常工作吗 每周学点MGR知识. 1. 三节点的MGR集群,有两个节点宕机后还能正常工作吗 要看具体是哪种情况. 如果两个节点是正常关闭的话,则 ...
随机推荐
- gnuplot: 一种更为简洁的曲线,柱状图绘图软件
gnuplot: 一种更为简洁的曲线,柱状图绘图软件 gnuplot: 一种更为简洁的曲线,柱状图绘图软件 Zhong Xiewei Wed Jun 25 gnuplot简单介绍 关于gnuplot的 ...
- 分享一个UI与业务逻辑分层的框架(一)
序言 .NET(C#)的WinForm如何简单易行地进行UI与业务逻辑分层?本系列文章介绍一个WinForm分层框架,该框架针对WinForm中的TextBox,CheckBox,RadioButto ...
- 使用SignalR实现即时通讯功能
教程简介 SignalR的好处是可以让多个客户端之间进行互动,比如这篇教程就展示了当你在页面上拖动矩形方块的同时,其它打开这个页面的用户也将会看到你拖动的轨迹以及最终的结果,当然他们也可以通过拖动该方 ...
- jquery删除添加输入文本框
效果体验:http://hovertree.com/texiao/jquery/67/ 效果图: 参考:http://hovertree.com/h/bjaf/traversing_each.htm ...
- log4Net(写入日志文件)
这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了. 首先去log4net下载. 然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4ne ...
- JS 常用验证REG
不错的JS验证~~~~~~~~~~~~~~~~~~~~~~~~~ 用途:校验ip地址的格式 输入:strIP:ip地址 返回:如果通过验证返回true,否则返回false: */ function i ...
- div悬浮
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- function的name属性
name属性是函数的一个非标准的属性. 通过这个属性,我们可以访问给定函数的名字.属性name的值永远等于跟在function关键字后的标识符. eg: function jenny(arg1,a ...
- 圆形背景的TextView
[应用场景]: [需要的xml]:shape_circle.xml <?xml version="1.0" encoding="UTF-8"?>&l ...
- 完全卸载mysql步骤
(1) 开始-MySQL-MySQL Server 5.1-MySQL Server Instance Config Wizard--->Remove Instance. (2)点击[开始]-- ...