第 5 章 Nova - 030 - Launch和Shut Off操作详解
Launch
Launch instance 应该算 Nova 最重要的操作。
1、客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:“帮我创建一个 Instance”
2、API对请求做一些必要处理后,向 Messaging(RabbitMQ)发送了一条消息:“让 Scheduler 创建一个 Instance”
3、Scheduler(nova-scheduler)从 Messaging 获取到 API 发给它的消息,然后执行调度算法,从若干计算节点中选出节点 A。
4、Scheduler 向 Messaging 发送了一条消息:“在计算节点 A 上创建这个 Instance”
5、计算节点 A 的 Compute(nova-compute)从 Messaging 中获取到 Scheduler 发给它的消息,然后通过本节点的 Hypervisor Driver 创建 Instance。
6、在 Instance 创建的过程中,Compute 如果需要查询或更新数据库信息,会通过 Messaging 向 Conductor(nova-conductor)发送消息,Conductor 负责数据库访问。
Shut Off
下面是 shut off instance 的流程图
1、向 nova-api 发送请求
2、nova-api 发送消息
3、nova-compute 执行操作
详细介绍:
1、向 nova-api 发送请求
客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:“帮我关闭这个 Instance”
在页面上查看,找到 Shut Off Instance 动作的 Request ID
使用 Request ID req-48e923a7-37ae-45cb-8622-47a7cddadf27 在 /var/log/messages 文件中找详细操作过程
查找日志的小窍门:
1、先确定大的范围,比如在操作之前用 tail -f 打印日志文件,这样需要查看的日志肯定在操作之后的打印输出的这些内容里。 另外也可以通过时间戳来确定需要的日志范围。
2、利用 “代码模块” 快速定位有用的信息。
nova-* 子服务都有自己特定的代码模块:
nova-api
nova.api.openstack.compute.servers
nova.compute.api
nova.api.openstack.wsgi
nova-compute
nova.compute.manager
nova.virt.libvirt.*
nova-scheduler
nova.scheduler.*
3. 利用 Request ID 查找相关的日志信息。 在上面的日志中个,我们可以利用 “req-48e923a7-37ae-45cb-8622-47a7cddadf27” 这个 Request ID 快速定位 log 中相与 shut off 操作的其他日志条目。
补充说明的是,Request ID 是跨日志文件的,可以在其他子服务的日志文件中找到相关信息。
2、nova-api 发送消息
nova-api 向 Messaging(RabbitMQ)发送了一条消息:“关闭这个 Instance”。
nova-api 没有将发送消息的操作记录到日志中,不过我们可以通过查看源代码来验证。上面日志已经清楚地标明源代码在 /opt/stack/nova/nova/compute/api.py 的 1977 行,方法是 force_stop。
force_stop 方法最后调用的是对象 self.compute_rpcapi 的 stop_instance 方法。
在 OpenStack 源码中,以 xxx_rpcapi 命名的对象,表示的就是 xxx 的消息队列。 xxx_rpcapi.yyy() 方法则表示向 xxx 的消息队列发送 yyy 操作的消息。
所以 self.compute_rpcapi.stop_instance() 的作用就是向 RabbitMQ 上 nova-compute 的消息队列里发送一条 stop instance 的消息。
补充说明一下: 关闭 instance 的前提是 instance 当前已经在某个计算节点上运行,所以这里不需要 nova-scheduler 再帮我们挑选合适的节点,这个跟 launch 操作不同。
3、nova-compute 执行操作
查看计算节点上的日志 /var/log/messages
这里我们利用了 Request ID “req-48e923a7-37ae-45cb-8622-47a7cddadf27” 在 log 中快速定位到 nova-compute 关闭 instance 的日志条目。
小结:
分析某个操作时,首先要理清该操作的内部流程,然后再到相应的节点上去查看日志。
例如shut off 的流程为:
1、向 nova-api 发送请求
2、nova-api 发送消息
3、nova-compute 执行操作
1,2 两个步骤是在控制节点上执行的,查看 nova-api 的日志。 第 3 步是在计算节点上执行的,查看 nova-compute 的日志。
----------------------------------------------------引用来自------------------------------------------------------
https://www.cnblogs.com/CloudMan6/p/5460464.html
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587828&idx=1&sn=c88414eb558550f9744604bad7577b0b&chksm=8d30816dba47087b1403b5efc346f283686b716761b9553acc78ed2856daf611a027ca9bbc15&scene=21#wechat_redirect
转载于:https://www.cnblogs.com/gsophy/p/11009129.html
第 5 章 Nova - 030 - Launch和Shut Off操作详解相关推荐
- Launch和Shut Off操作详解 - 每天5分钟玩转 OpenStack(30)
本节详细分析 instance launch 和 shut off 操作,以及如何在日志中快速定位有用信息的技巧. Launch Launch instance 应该算 Nova 最重要的操作. 仔细 ...
- 第 5 章 Nova - 041 - Resize Instance 操作详解
Resize Instance 操作详解 Resize 的作用是调整 instance 的 vCPU.内存和磁盘资源. Instance 需要多少资源是定义在 flavor 中的,resize 操作是 ...
- Tensorflow 2.x(keras)源码详解之第十二章:keras中的损失函数之BinaryCrossentropy详解
大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...
- Nova Suspend/Rescue 操作详解 - 每天5分钟玩转 OpenStack(35)
本节我们讨论 Suspend/Resume 和 Rescue/Unrescue 这两组操作. Suspend/Resume 有时需要长时间暂停 instance,可以通过 Suspend 操作将 in ...
- (2) 第二章 WCF服务与数据契约 服务契约详解(二)- 如何引用WCF提供的服务
本章节主要目的:掌握如何引用WCF提供的服务 下面来讲解一下如何引用WCF的服务,主要讲解2种方式: 1.Service References 操作步骤:1.在项目中右键鼠标->2.点击添加引用 ...
- (2) 第二章 WCF服务与数据契约 服务契约详解(三)- [ServiceContract]特性
本章节主要目的:了解[ServiceContract]特性 如前几章的进度,相信已经可以自己编写服务契约以及如何在客户端调用配置好的服务了. 本片主要讲解一下SerivceContract中的几个重要 ...
- O034、 Nova Pause / Resume Instance 操作详解
参考https://www.cnblogs.com/CloudMan6/p/5496825.html 本节通过日志详细分析 Nova Pause / Resume 操作. 有时需要短时间暂停 inst ...
- O035、Nova Suspend / Rescue 操作详解
参考https://www.cnblogs.com/CloudMan6/p/5503501.html Suspend / Resume 有时候需要长时间暂停 instance , 可以通过 Suspe ...
- 华为nova7se能云闪付吗_华为Nova支持NFC功能吗 华为Nova能刷公交卡吗【详解】
有网友就在问,华为Nova支持NFC功能吗?如今大多数主流机型都配备了NFC功能,有了它,不仅可以体验一些移动支付功能,还可以通过手机充值公交卡,甚至支持NFC的手机还可以直接作为公交卡刷卡使用.下面 ...
最新文章
- FFMPEG转码常用命令研究
- linux畸形文件夹,Linux下简单的缓冲区溢出
- 浅谈个性化推荐系统中的非采样学习
- TypeScript 里的 module 概念
- fiddler过滤特定资源
- 使用URI设计松散耦合的Metro应用程序
- visual studio2008 OpenGL开发配置
- windows phone画板程序
- 【OpenCV 例程200篇】68. 连续周期信号的傅立叶级数
- Java内存不足之PermGen space错误探究
- 美国重金投资3D芯片项目!MIT+美独资公司攻关,旨在继续领先中国
- 骑士php授权,骑士人才系统伪静态设置教程
- M6A rna甲基化最新研究成果进展、论文合集(2021年)
- 测试用例设计正交试验法、功能图法
- 如何关闭Steam的弹出广告
- 一周搜索热点20170528
- 笔记本电脑搜不到wifi怎么办?
- 【ZJOI2007】【BZOJ1059】矩阵游戏
- os.rename和os.renames区别
- IBM MessageBroker笔记系列(一)
热门文章
- 将本地的MS SQL Server数据导入到远程服务器上
- [导入]解决“Internet Explorer 无法打开 Internet站点已终止操作”问题
- java iterator对象_JAVA Iterator 详解 代码
- mysql-proxy 0.8.5_主从读写分离----mysql-proxy0.8.5安装与配置
- android 设置按钮高度,如何在本机android中设置按钮的高度
- 三目运算符字符串拼接
- php捕获500错误信息,php – 如何获取有关错误500的更多信息 – 内部服务器错误?...
- html需要电脑什么配置,配置一台电脑需要什么 选择配置一台好的台式电脑
- php生成pdf乱码_php+tcpdf生成pdf: 中文乱码
- mysql 多表既有内连接又有外连接_MySQL 多表查询中的内连接和外连接