首页 > 其他分享 >nova rescue原理笔记

nova rescue原理笔记

时间:2024-04-16 15:35:25浏览次数:26  
标签:xml domain rescue 笔记 实例 nova openstack

说明:场景示例,虚机的启动盘的一个文件被误删除了导致无法再次启动了,或者 admin 的密码忘记了。Rescue 功能提供一个解决这类问题的手段。

备注:不能rescue 一个 volume-backed instance

前提

默认情况下,实例从提供的救援映像或新的映像启动 原始实例映像的副本(如果未提供救援映像)。根源 磁盘和可选的重新生成的配置驱动器也连接到实例 用于数据恢复。

从 21.0.0 版本开始,可以使用额外的稳定设备救援模式。 此模式现在支持卷备份实例的救援。


要执行实例救援,请使用 openstack server rescue 命令:

openstack server rescue SERVER
 

当实例运行在rescue模式时,不可执行Pause, suspend, 与stop 操作,这些行为会造成实例原始状态丢失,并且会导致无法对实例unrescue.


在运行 openstack server rescue 命令时, 实例首先执行软关闭。这意味着 客户机会先关闭操作系统再关闭电源。 关机行为由可在nova.conf文件中的shutdown_timeout字段配置。 它的值代表允许客户机操作系统完成关闭时间。

os_shutdown_timeout字段可以基于每个映像覆盖超时值 通过它是一个图像元数据 允许不同类型的操作系统指定的设置 他们需要多少时间才能彻底关闭。

要拯救从卷启动的实例,您需要使用 2.87 微版本或更高版本。

openstack --os-compute-api-version 2.87 server rescue SERVER
如果要使用特定映像来拯救实例,而不是 默认一个,使用参数:--image

openstack server rescue --image IMAGE_ID SERVER
要从普通启动盘重新启动实例,请运行以下命令 命令:

openstack server unrescue SERVER

 

执行 nova rescue 命令后的主要过程是:

(1)保存目前domain 的 xml 配置到 unrescue.xml 文件

(2)根据 image 重新生成启动盘 disk.swap (大小不受 falvor.root_disk_size 控制,尽可能小的一个文件)

(3)构造一个新的 domain 的 xml 配置,使用 disk.rescue 做启动盘,将原来的 disk 挂载到该 domain,其他的盘和volume不会被挂载

(4)将原来的 domain destroy 掉 (virt_dom.destroy)

(5)定义新的 domain (conn.defineXML(xml))

(6)启动新的 domain (domain.createWithFlags)

至此,nova rescue 的过程完成。用户可以 ssh 到新的虚机,修改 “Vdb“分区中的受损害的文件。然后执行 ”nova unrescue“命令。其主要过程是:

(1)读取之前保存的 unrescue.xml 文件

(2)将 rescued domain destroy 掉

(3)定义和启动新的domain(同上面5和6)

(4)删除 unrescue.xml 文件

注意,这时候文件夹中的 libvirt.xml 文件和新运行的 domain 的 xml 不一致,因为代码中没有将新的 domain 的xml 写到该文件。

 

参考:nova Rescue 和 Unrescue - allcloud - 博客园 (cnblogs.com)

Rescue an instance — nova 29.1.0.dev15 documentation (openstack.org)

标签:xml,domain,rescue,笔记,实例,nova,openstack
From: https://www.cnblogs.com/santia-god/p/18138258

相关文章

  • FPGA入门笔记013——嵌入式块RAM使用之FIFO
    1、FIFO概述​ FIFO(FirstInFirstOut),即先进先出。FPGA或者ASIC中使用到的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。它与普通存储器的区别是没有外部读写地址线,这样使用起来相对简单,但缺点就是只能顺序写入数据......
  • React 学习笔记:刚开始接触
    目录前言相关链接个人对React和Vue的初步感觉React和Vue官方态度的区别ReactVue新建第一个React项目复制官方的文档代码教程:井字棋游戏React个人使用体验返回html修改样式作用域React的常用组件ReactDeveloperToolsReact开发工具React框架推荐总结前言之前有断断续续学过一段......
  • markdown语法笔记
    markdown语法笔记目录markdown语法笔记一、标题1.Setext风格的标题定义方式2.Atx风格的标题定义方式3.小结二、段落1.正文2.段落3.不分段换行4.缩进、空白行5.小结三、粗体与斜体四、文本高亮五、下划线、分割线与删除线六、列表1.普通列表2.TODO列表七、引用八、行......
  • 初级英语学习笔记01
     1.Thisis 和Isthis 交换使用 当我们指向一些非特定的物体和人时,使用冠词“a”如果是位置,大小,味道,颜色等,我们使用冠词“the”where在哪里who 谁what 什么onthe ISNOT否定NOISNOT isn'tIN ......
  • day11_我的Java学习笔记 (static_静态成员变量+静态成员方法_工具类、代码块_静态代码
    0.面向对象进阶1.static静态关键字1.1static是什么,static修饰成员变量的用法Java成员变量成员方法Python类(对象)属性类(对象)方法static修饰成员变量的应用:在线人数统计1.2static修饰成员变量的内存原理1.3static修饰成员方法的基本......
  • move_base学习笔记
    `move_base`提供了多种API,用于与导航堆栈进行交互。以下是一些主要的API及其作用:1.**ActionAPI**:-**MoveBaseAction**(`move_base_msgs/MoveBaseAction`):这是`move_base`的主要API,用于发送目标位置给机器人,并获取机器人的导航状态。用户可以发送一个包含目标位置和姿态......
  • day10_01_我的Java学习笔记 (JavaSE进阶课程预备)
    JavaSE进阶课程预备1.JavaSE加强课程简介2.IDEA开发模式统一工程,相当于一个小区的院子;模块,是小区的哪一栋;包,是这栋楼的那一单元类,是这个单元的哪一层楼;对象,是这层楼具体的某一户房间。eg:滢水山庄二区--工程9栋--模块4单元--包8楼--类......
  • day10_02_我的Java学习笔记 (JavaSE加强课程介绍、先建空工程--再建模块--然后建包--
    JavaSE基础加强课程介绍1.JavaSE加强课程简介2.IDEA开发模式统一工程,相当于一个小区的院子;模块,是小区的哪一栋;包,是这栋楼的那一单元类,是这个单元的哪一层楼;对象,是这层楼具体的某一户房间。eg:溪山美地二区--工程9栋--模块4单元--包8楼--......
  • day08_我的Java学习笔记 (String类、ArrayList集合类)
    常用API(String、ArrayList)什么是APIAPI文档下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html1.String简单介绍【补充】:为什么java数据类型String是大写?1.1String类概述1.2String类创建对象的2种方式1.3String......
  • day09_我的Java学习笔记 (ATM系统_理解并学会使用break、return、continue、Random、S
    ATM系统1.项目介绍与功能演示1.1系统准备、首页设计Account.java每个用户的账户信息都是一个对象,需要提供账户类。01.在Account类中定义系统相关的属性信息(卡号、姓名、密码、余额、取现额度)02.定义Getter和Setter方法03.定义有参构造器04.定义无参构造......