Ironic 的 Rescue 救援模式实现流程
目录
救援模式
以往只有虚拟机支持救援模式,裸机是不支持的。直到 Queen 版本 Ironic 实现了这个功能。救援模式下,用户可以完成修复、Troubleshooting 裸机节点的错误配置,修改密码等工作,将裸机设置为救援模式时可以传入 rescue_password 参数。
实现 UML 图

- 用户调用 Nova 的 Rescue API;
- Nova ComputeManager 调用 Ironic Virt Driver 的
rescue()Method,并传入rescue_password参数; - Ironic Virt Driver 调用
node.set_provision_state(RESCUE),并传入rescue_password参数; - Ironic Virt Driver 等待 Ironic node 的 provision_state 改变,并更新 Nova Instance State 状态;
- Ironic API 接受
set_provision_state调用,执行do_node_rescueRPC,并将 ironic node 的 ACTIVE 状态改为 RESCUING; - Ironic Conductor 将
rescue_password保存到 instance_info 中,并调用合适的 Driver 开始救援; - Driver 启动
rescue ramdisk(RESCUING -> RESCUEWAIT),同时 Ironic Conductor 将 ironic node 移至 Rescue Network上; - RAMDisk IPA 启动后,回调
/v1/lookup获取节点信息, 发送心跳; - Ironic Conductor 收到心跳后,根据 config drive 和 rescue password 调用
finalize_rescue(RESCUEWAIT -> RESCUING),删除 instance_info 中的rescue_password; - RAMDisk IPA 设置传过来的
rescue_password,从 config driver 中获取信息后配置网络,最后停止 IPA 服务; - Ironic Conductor 将 ironic node 移至最初的租户网络,并更新状态到 RESCUE;
Ironic 的 Rescue 救援模式实现流程的更多相关文章
- 救援模式(Rescue Mode)、单用户模式(Single-User Mode)、紧急模式(Emergency Mode)的区别与联系
前天聚餐的时候一航和启飞学长讲到RUCTF中更改root密码要进入单用户模式,我插了一句"有的系统显示的是救援模式",说完后心里一直很虚...(技术上的事还是想好再说)今天查了一下 ...
- 20、linux启动流程和救援模式
1.Linux启动流程 2.Linux运行级别 1.什么是运行级别,运行级别就是操作系统当前正在运行的功能级别 System V init运行级别 systemd目标名称 作用 0 runlevel0 ...
- 进入Linux救援(rescue)模式的四大法门
原文:http://blog.51cto.com/xxrenzhe/1272838 适用场景: 当误操作修改系统启动文件/etc/fstab, /etc/rc.d/rc.sysinit时,就会造成系统 ...
- centos单用户 救援 运行级别 yum,单用户模式,救援模式,inittab :启动级别 e2fsck wetty mingetty 物理终端 /dev/console 虚拟终端 /dev/tty(0,6) 模拟终端 /dev/pts/# grub-md5-crypt 给grub加密码 initrd 第二节课
centos单用户 救援 运行级别 yum,单用户模式,救援模式,inittab :启动级别 e2fsck wetty mingetty 物理终端 /dev/console 虚拟终端 /d ...
- ironic baremetal rescue process
1.用户调用Nova的rescue函数 nova/virt/ironic/driver.py class IronicDriver(virt_driver.ComputeDriver): ...... ...
- Day 23 系统服务之救援模式
1.CentOS6与Centos 7启动流程 4.运行级别C6&C7 0 关机 1 单用户模式 (超级权限 必须面对实体硬件) 2 暂未使用 3 字符界面(黑框) 4 暂未使用 5 图形界面 ...
- lesson - 2 yum /单用户/救援模式/Linux 启动
课程大纲:1. yum使用yum 是一个在线安装软件包的工具,它可以帮我们解决软件包的依赖,这个日后会详细介绍.我们介绍了以下几个用法:yum list 这个命令可以列出所有安装过和未安装的软 ...
- 第三节 - centos 内核启动、救援模式、 ls 、目录结构
Linux 第三节一.CentOS 启动: 1.内核引导: 1.win/linux 通电,2.BISO自检(CPU,内存,硬盘等 | U盘.光驱.网卡.硬盘启动 通过MBR知道内核内存硬件驱动位置并加 ...
- centos7救援模式--误删/usr/bin/恢复
模拟场景 centos7 误删/usr/bin/等系统内置文件夹, 导致几百个内置命令丢失. 修复 rescue模式 vm模拟一遍(如果在物理机, 可通过U盘方式直接开机U盘进入选择救援模式, 方式通 ...
随机推荐
- 4.NIO_Channel 通道
1.通道(Channel) 由 java.nio.channels 包定义的.Channel 表示 IO 源与目标打开的连接.Channel 类似于传统的“流”.只不过 Channel 本身不能直接访 ...
- python基础编程:生成器、迭代器、time模块、序列化模块、反序列化模块、日志模块
目录: 生成器 迭代器 模块 time 序列化 反序列化 日志 一.生成器 列表生成式: a = [1,2,3,3,4,5,6,7,8,9,10] a = [i+1 for i in a ] prin ...
- 【两种方式】vuex 如何监听页面状态的变化
由于 Vuex 的状态存储本来就是响应式的,从 store 实例中读取状态最简单的方法,就是在计算属性中返回某个状态. 在 B 页面引入以下代码: computed: { myValue() { re ...
- NOIP2017 Day1 T3 逛公园
NOIP2017 Day1 T3 更好的阅读体验 题目描述 策策同学特别喜欢逛公园.公园可以看成一张\(N\)个点\(M\)条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,\(N\)号点 ...
- java线程基础巩固---wait和sleep的本质区别是什么,深入分析(面试常见问题)
对于wait和sleep貌似都会阻塞线程,但是它们确实是很大的区别的,所以下面一点点来探讨: 区别一.Sleep()是线程里面的方法,而Wait()是Object类的方法.这个比较简单,直接看代码便知 ...
- P4294 [WC2008]游览计划 (斯坦纳树)
题目链接 差不多是斯坦纳树裸题,不过边权化成了点权,这样在合并两棵子树时需要去掉根结点的权值,防止重复. 题目还要求输出解,只要在转移时记录下路径,然后dfs一遍就好了. #include<bi ...
- AJAX增删查
数据库 CREATE DATABASE crmweb; CREATE TABLE `customerstatus` ( `id` bigint(20) NOT NULL AUTO_INCREMENT ...
- BZOJ 2882: 工艺 (SA/SAM/最小表示法)
我写的O(nlogn)O(nlogn)O(nlogn)的SA 8000ms 被 O(n)O(n)O(n)的SAM 2800ms 和 O(n)O(n)O(n)的最小表示法 500ms 头都锤爆- COD ...
- SparkSQL之UDAF使用
1.创建一个类继承UserDefinedAggregateFunction类. ------------------------------------------------------------ ...
- Gulp error in WebStorm: Failed to list gulp tasks
I have the same problem with webstorm after install a updated version of node. The solution for me i ...