翻译官网救援/取消救援标准流程

1、用户在节点上调用Nova rescue
2、Nova ComputeManager调用virt驱动程序的rescue()方法,传入rescue_password作为参数
3、Virt驱动程序调用node.set_provision_state(RESCUE),并以rescue_password作为参数
4、Virt驱动程序在等待provision_state更改时循环,并根据需要更新Nova状态
5、Ironic API接收set_provision_state调用,并执行do_node_rescue RPC调用(ACTIVE - > RESCUING)
6、Ironic conductor在instance_info中设置了救援密码并将通知给相应的驱动
7、驱动程序使用配置的启动驱动程序启动救援虚拟磁盘(RESCUING - > RESCUEWAIT)。作为这个过程的一部分,Ironic将把节点放到rescue_network上,如ironic.conf配置
8、ramdisk启动,执行查找(/v1/lookup in ironic-api,获取节点信息,并开始心跳(/v1/heartbeat in ironic-api)
9、在收到心跳信号后,conductor 使用配置驱动器和救援密码(RESCUEWAIT - > RESCUING)调用finalize_rescue(/v1/commands),并从instance_info中删除救援密码,因为它不再需要
10、agent设置密码,从配置驱动器中的信息配置网络,并停止代理服务
11、conductor 将节点放回租户网络的网络端口,并将状态设置为RESCUE。

Standard rescue process

1、用户在节点上调用Nova unrescue
2、Nova称为Ironic unrescue()virt驱动程序。
3、Virt驱动程序调用node.set_provision_state(ACTIVE)。
4、Virt驱动程序在等待provision_state更改时循环,并根据需要更新Nova状态。
5、Ironic API接收set_provision_state调用,并执行do_node_unrescue RPC调用。
6、ironic conductor通知合适的驱动
7、驱动程序执行正常启动节点所需的操作,并将提供状态设置为ACTIVE。

Standard Unrescue process

ACTIVE -> RESCUING (initiate rescue)
RESCUING -> RESCUE (rescue succeeds)
RESCUING -> RESCUEWAIT (optionally, wait on external callback)
RESCUING -> RESCUEFAIL (rescue fails)
RESCUEWAIT -> RESCUING (callback succeeds)
RESCUEWAIT -> RESCUEFAIL (callback fails or abort issued)
RESCUEWAIT -> DELETING (delete instance without waiting)
RESCUE -> RESCUING (re-rescue node)
RESCUE -> DELETING (delete rescued instance)
RESCUE -> UNRESCUING (unrescue node)
UNRESCUING -> UNRESCUEFAIL (unrescue fails)
UNRESCUING -> ACTIVE (unrescue succeeds)
UNRESCUEFAIL -> RESCUING (re-rescue node after failed unrescue)
UNRESCUEFAIL -> UNRESCUING (re-unrescue node after failed unrescue)
UNRESCUEFAIL -> DELETING (delete instance that failed unrescuing)
RESCUEFAIL -> RESCUING (re-rescue after rescue failed)
RESCUEFAIL -> UNRESCUING (unrescue after failed rescue)
RESCUEFAIL -> DELETING (delete instance after failed rescue)

state machine impact

ironic rescue standard rescue and unrescue process的更多相关文章

  1. ironic baremetal node rescue/unrescue mode

    环境ironic-api ironic-conductor,ironicclient均升级为Queens版本 官网说明API版本为1.38才支持rescue/unrescue,所以修改下openrc文 ...

  2. Nova Suspend/Rescue 操作详解 - 每天5分钟玩转 OpenStack(35)

    本节我们讨论 Suspend/Resume 和 Rescue/Unrescue 这两组操作. Suspend/Resume 有时需要长时间暂停 instance,可以通过 Suspend 操作将 in ...

  3. openstack虚拟机rescue模式

    nova rescue vm_instance es.ops 20190426 linux虚拟机在出现类似kernel panic后,根据panic信息以及故障前的操作,定位问题的发生点,进行修复 n ...

  4. 原创 齐天大圣老司机亲传rescue恢复磁盘分区

    老葵花哥哥课堂开课了本文档秉承爱看不看的原则 一不要钱 二服务大众的高尚情操咱们今天讲一讲rescue恢复磁盘分区 首先咱们搭建环境搞起来 (parted) mkpart #创建分区 Partitio ...

  5. Architecture Design Process

    Architecture Design Process The architecture design process focuses on the decomposition of a system ...

  6. The Go Programming Language. Notes.

    Contents Tutorial Hello, World Command-Line Arguments Finding Duplicate Lines A Web Server Loose End ...

  7. Servers

    Servers¶ Server interface. class novaclient.v1_1.servers.Server(manager, info, loaded=False) Bases: ...

  8. CentOS 7下关于systemd的一些唠叨话一:systemd的特点和使用

    摘要 近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版 ...

  9. 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 第 2 部分: UpStart 第 3 部分: Systemd

    浅析 Linux 初始化 init 系统,第 1 部分: sysvinit  第 2 部分: UpStart 第 3 部分: Systemd http://www.ibm.com/developerw ...

随机推荐

  1. react里面 react-router4 跳转

    在react里面跳转的时候,一般可以用 <Link to='/tradeList' /> 但是我们在运用组件组合的时候经常会通过传参去判断,如果props传过来是参数,如果有link进行跳 ...

  2. c#按钮如何避免重复点击后报错

    前言:感谢51·halcon的绝地武士大佬啊,虽然你不认识我,但是我从你那学到了很多知识,真的感谢您对知识的无私传播哈哈(两天一个博客有在坚持的,都是草稿,等这个实习阶段过去了再回来整理博客~) bt ...

  3. 矩阵——特征向量(Eigenvector)

    原文链接 矩阵的基础内容以前已经提到,今天我们来看看矩阵的重要特性——特征向量. 矩阵是个非常抽象的数学概念,很多人到了这里往往望而生畏.比如矩阵的乘法为什么有这样奇怪的定义?实际上是由工程实际需要定 ...

  4. Git配置和常用命令

    Git配置 git config --global user.name "hunng" git config --global user.email "huangthin ...

  5. jQuery实现轮播切换以及将其封装成插件(2)

    在上一篇博文中,我们完成了一个简单的轮播切换.它的功能比较简单,仅仅能定时切换图片. 但是有没有这样一种情况.当我们特意的想看某一个轮播显示项时不希望等轮播一圈才能等到,希望通过图上的一些元素,触发某 ...

  6. Eclipse Git 插件 基本操作一【learn】

    安装GIT插件: 我的Eclipse版本为: Oxygen.2 Release (4.7.2),所以自带GIT插件,跳过安装. GIT插件配置: ①.添加好用户名和邮箱 注意下输入格式:user.na ...

  7. poj_1284_Primitive root

    We say that integer x, 0 < x < p, is a primitive root modulo odd prime p if and only if the se ...

  8. LeetCode-177:第N高的薪水

    第N高的薪水与第二高的薪水,解题思路是一样的,只要对LeetCode-176的SQL做一下变形,便可以满足这题,详见:https://www.cnblogs.com/zouqf/p/10282392. ...

  9. form表单submit按钮提交页面不跳转

    方案一 <html> <body> <form action="" method="post" target="nm_i ...

  10. php学习【1】

    1:输出语句 <?php echo "hellow world"; print "hellow world"; print_r ("helow ...