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盘进入选择救援模式, 方式通 ...
随机推荐
- MySQL 高级 视图 事物 触发器 函数 索引优化
视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何用视图 create view t ...
- python函数:函数参数、对象、嵌套、闭包与名称空间、作用域
今天的内容整理共有5部分 一.命名关键字参数 二.函数对象 三.函数的嵌套 四.名称空间与作用域 五.闭包函数 一.命名关键字参数 # 命名关键字参数: 在定义函数时,*与**之间参数称之为命名关键字 ...
- jquery中.each()方法遍历循环如何终止方法
使用return false 终止循环 function checkStar(obj){ var flag=false; //获取本节点星级 var star = obj.getAttribute(& ...
- Easy UI 入门
Easy UI常用于企业级开发的UI和后台开发的UI,比较重. 以下组件中的加载方式,属性和事件,方法和组件种类并不全,只是作为参考和入门学习. 1.Draggable(拖动)组件 不依赖其他组件 1 ...
- Python学习笔记:序列构成的数组
列表推导是一种构建列表(list)的快捷方式 #列表推导 symbols = '!@#$%' codes = [ord(symbol) for symbol in symbols] #ord()Pyt ...
- 锁&lock与latch
锁是数据库系统区别于文件系统的一个关键特性.锁机制用于管理对共享资源的并发访问.Innodb不仅仅使用行锁,也会在数据库内部其它地方使用锁,从而允许对多种不同资源提供并发访问.如:操作缓冲池中的LRU ...
- hive中的 lateral view
lateral view用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合. 一个简单的例子,假设我们有一张表pageAds,它有 ...
- Spring Boot 中application.yml与bootstrap.yml的区别(转)
yml与properties其实yml和properties文件是一样的原理,且一个项目上要么yml或者properties,二选一的存在. 推荐使用yml,更简洁. bootstrap与applic ...
- 【C#-文件管理】 判断文件夹或文件是否存在,并创建文件夹或文件
1.判断文件夹是否存在 Directory.Exists(“文件夹路径”) 返回false表示不存在,true表示存在 2.判断文件是否存在 File.Exists("文件路径&quo ...
- Autel MaxiIM IM608:如何更新和一些评论
MaxiIM IM608是最先进的,因此是与众不同的一种钥匙编程和诊断工具,它将先进的钥匙编程,所有系统医学和先进的服务融合在一个主要基于10.1英寸触摸屏的机械人中.它配备了XP400关键计算机用户 ...