博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unshelve Instance 操作详解 - 每天5分钟玩转 OpenStack(39)
阅读量:6181 次
发布时间:2019-06-21

本文共 1215 字,大约阅读时间需要 4 分钟。

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

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

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

下面是 Unshelve instance 的流程图

image146.png

  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 操作。

转载地址:http://ugdda.baihongyu.com/

你可能感兴趣的文章
记录一次bug解决过程:mybatis中$和#的使用
查看>>
Java非静态内部类中为什么不能有静态变量却可以有常量?
查看>>
DevExpress DXperience 的本地化(汉化)方法
查看>>
处理分页操作
查看>>
$.when().done().then()的用法
查看>>
EntityFramework之创建数据库及基本操作(一)
查看>>
【mongo】drop不释放磁盘空间
查看>>
linux异步通信之epoll【转】
查看>>
暑假总结20160907
查看>>
数据结构——树的知识架构图
查看>>
OTL翻译(3) -- OTL的主要类
查看>>
x86架构的android手机兼容性问题
查看>>
InvalidIndexNameException[Invalid index name [2Shard], must be lowercase]
查看>>
POJ 1067 取石子游戏
查看>>
sum函数
查看>>
常用音频数据库记录
查看>>
题二:写一个单例模式
查看>>
40个Java多线程问题总结
查看>>
List集合序列排序的两种方法
查看>>
linux每日命令(23):find命令之xargs
查看>>