上一节我们 shelve instance 到 Glance,本节讨论如何通过 unshelve 操作恢复该 instance。

因为 Glance 中保存了 instance 的 image,unshelve 的过程其实就是通过该 image launch 一个新的 instance,nova-scheduler 也会调度合适的计算节点来创建该 instance。

instance unshelve 后可能运行在与 shelve 之前不同的计算节点上,但 instance 的其他属性(比如 flavor,IP 等)不会改变。

下面是 Unshelve instance 的流程图

  1. 向 nova-api 发送请求

  2. nova-api 发送消息

  3. nova-scheduler 执行调度

  4. nova-scheduler 发送消息

  5. nova-compute 执行操作

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

向 nova-api 发送请求

客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:“帮我 Unshelve 这个 Instance”

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

nova-api 发送消息

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

nova-scheduler 执行调度

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


经过筛选,最终 devstack-controller 被选中 launch instance。

nova-scheduler 发送消息

nova-scheduler 发送消息,告诉被选中的计算节点可以 launch instance 了 源代码在 /opt/stack/nova/nova/scheduler/filter_scheduler.py 第 95 行,方法为 select_destinations

nova-compute 执行操作

nova-compute 执行 unshelve 的过程与 launch instance 非常类似。 一样会经过如下几个步骤: 1. 为 instance 准备 CPU、内存和磁盘资源 2. 创建 instance 镜像文件 3. 创建 instance 的 XML 定义文件 4. 创建虚拟网络并启动 instance

日志记录在 /opt/stack/logs/n-cpu.log,分析留给大家练习。

以上就是 Unshelve 操作的分析,下一节我们讨论 Migrate 操作。

Unshelve Instance 操作详解 - 每天5分钟玩转 OpenStack(39)相关推荐

  1. Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34)

    Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34) 本节通过日志详细分析 Nova Pause/Resume 操作. 有时需要短时间暂停 instan ...

  2. Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)

    上一节我们讨论了 snapshot,snapshot 的一个重要作用是对 instance 做备份. 如果 instance 损坏了,可以通过 snapshot 恢复,这个恢复的操作就是 Rebuil ...

  3. Snapshot Instance 操作详解 - 每天5分钟玩转 OpenStack(36)

    本节我们通过日志详细讨论 instance 的 snapshot 操作. 有时候操作系统损坏得很严重,通过 Rescue 操作无法修复,那么我们就得考虑通过备份恢复了.当然前提是我们之前对instan ...

  4. Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)

    本节通过日志文件详细分析 instance start 操作. 下面是 start instance 的流程图 向 nova-api 发送请求 nova-api 发送消息 nova-compute 执 ...

  5. Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)

    Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上. Migrate 不要求源和目标节点必须共享存储,当然共享存储也是可以的. Migrate 前必须满足一个条件:计算 ...

  6. Nova Suspend/Rescue 操作详解 - 每天5分钟玩转 OpenStack(35)

    本节我们讨论 Suspend/Resume 和 Rescue/Unrescue 这两组操作. Suspend/Resume 有时需要长时间暂停 instance,可以通过 Suspend 操作将 in ...

  7. Launch和Shut Off操作详解 - 每天5分钟玩转 OpenStack(30)

    本节详细分析 instance launch 和 shut off 操作,以及如何在日志中快速定位有用信息的技巧. Launch Launch instance 应该算 Nova 最重要的操作. 仔细 ...

  8. Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)

    Cinder 组件详解 - 每天5分钟玩转 OpenStack(47) 本节我们将详细讲解 Cinder 的各个子服务. cinder-api cinder-api 是整个 Cinder 组件的门户, ...

  9. Nova 组件详解 - 每天5分钟玩转 OpenStack(26)

    本节开始,我们将详细讲解 Nova 的各个子服务. 前面架构概览一节知道 Nova 有若干 nova-* 的子服务,下面我们将依次学习最重要的几个. 今天先讨论 nova-api 和 nova-con ...

最新文章

  1. OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.
  2. 《毅力–如何培养自律的习惯》读书笔记
  3. 不懂这25个名词,好意思说你懂大数据?
  4. 雷达的工作原理示意图_电磁阀的构成和工作原理示意图
  5. java 判断日期连续_如何在Java中检查日期是否大于另一个日期?[重复]
  6. Apocalypse Someday(POJ-3208)
  7. PAT乙级(1019 数字黑洞)
  8. leetcode题库:1.两数之和
  9. 编写访问数据库的应用层程序,经常catch出的一些错误
  10. 大数据之-Hadoop3.x_MapReduce_MapJoin案例调试_debug---大数据之hadoop3.x工作笔记0135
  11. 阿里登顶毕马威全球企业创新榜 AliOS引领智能网联汽车产业发展
  12. JavaScript——JQuery原理介绍及模拟
  13. java 删除指定文件夹和下面所有文件_JAVA语言基础
  14. C语言实现99乘法表
  15. 流媒体播放器EasyPlayer.js如何实现动态设置解码H.265音频?
  16. InnoDB行格式(COMPACT,redundant)对比
  17. T32 load elf
  18. Easy Data Transform for mac (Excel和CSV编程文件转换工具) v1.11.1激活版
  19. C++ Primer学习笔记-----第十六章:模板与泛型编程
  20. 【转录调控网络】代谢组学与其他组学的联合分析经典模式简介

热门文章

  1. Tomcat打包时多项目共享jar和精确指定jar版本
  2. Android广播机制:Broadcast
  3. CONTROLLER_NAME 常量 当前访问的控制器
  4. 有关PowerShell脚本你必须知道的十个基本概念
  5. 快速部署Enterprise Manager Cloud Control 12c(12.1) Agent
  6. BugFree2.1.3升级到BugFree3.0.2
  7. [蓝桥杯][2015年第六届真题]机器人塔(DFS)
  8. [蓝桥杯][算法训练VIP]黑白无常(dfs)
  9. 读书笔记——《迁移到云原生架构》
  10. linux跟aix时间同步,Linux 与AIX环境下修改时间