OpenStack卷启动的虚拟机rebuild无效

news/2024/7/18 12:25:21 标签: 云计算, python, OpenStack
  • 1. 描述
  • 2. 相关资料
  • 3. 修复方案
  • 4. 分析过程

1. 描述

卷启动的虚拟机rebuild无效,rebuild卷启动的虚拟机相当于仅仅对虚拟机进行了一次重启。

  • 版本信息如下
组件版本
openstacktrain
nova20.6.0-1

看了好几遍rebuild的代码,都没有找到对卷启动的云硬盘重建或者数据清空的操作,最后找了下社区,找到了一些资料,原来社区没实现对卷启动虚拟机的rebuild,怪不得没找到相关的代码逻辑。

2. 相关资料

社区要实现一个专门用于卷启动虚拟机重装的api, 还没实现,但是已经有不是非常严谨的修复方案可以先用。

bp
specs

3. 修复方案

将原来的卷删除掉,使用重装的虚拟机创建一个新的卷挂给虚拟机,实现代码 Replace root volume during rebuild

4. 分析过程

总体代码流程就是一路rpc调用+检查,到计算节点上执行 nova.compute.manager.rebuild_instance -> _do_rebuild_instance -> _rebuild_default_impl

  • 卸载块存储、更新镜像元数据、销毁虚拟机

-> virt/libvirt/driver.spawn – 这一步又个创建镜像,卷启动的虚拟机不会创建镜像,所以rebuild实际上只是 关机->卸载磁盘->开机->挂盘

  • 创建新的虚拟机
  • 挂载块存储
  • 启动
  • 重建成功

具体代码流程可以参考这里,rebuild时序图

修复之后功能OK


http://www.niftyadmin.cn/n/1075441.html

相关文章

Roman to Integer

Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 自己写的代码第一次没有AC&#xff0c;超时。第二遍就莫名其妙通过了 public int romanToInt(String s){int result 0;char[] array s.toCharArray();Map<…

使用Rook安装Ceph

layout: post title: 使用Rook安装Ceph catalog: true tag: [K8S, Ceph] 1. Rook简介2. Rook架构3. Rook部署 3.1. 前提3.2. 环境描述3.3. 部署 3.3.1. 获取rook代码3.3.2. 修改变量 3.3.2.1. cluster.yaml3.3.2.2. operator.yaml3.3.2.3. 其他配置 3.3.3. 开始部署3.3.4. 部署…

Java 定时器 Timer 的使用.

一、概念 定时计划任务功能在Java中主要使用的就是Timer对象&#xff0c;它在内部使用多线程的方式进行处理&#xff0c;所以它和多线程技术还是有非常大的关联的。在JDK中Timer类主要负责计划任务的功能&#xff0c;也就是在指定的时间开始执行某一个任务&#xff0c;但封装任…

CephFS高可用的NFS-Ganesha网关

1. 概述2. 术语3. nfs-ganesha 3.1. 介绍3.2. 架构 3.2.1. 总体架构图3.2.2. 架构说明3.2.3. genesha-rados-cluster设计 3.2.3.1. 客户端恢复(单体情况)3.2.3.2. 宽限期(单体情况)3.2.3.3. Reboot Epochs3.2.3.4. gracedb3.2.3.5. 集群 3.3. 高可用集群实现 4. 部署 4.1. 环境…

Ceph编译

1. 环境2. 下载Ceph代码3. 选择分支4. update submodule5. 下载依赖6. 安装devtoolset7. 编译二进制8. 编译rpm 8.1. 先编译dist包8.2. 编译rpm包 8.2.1. 编译srpm包8.2.2. 编译rpm包 9. 参考 build Ceph 编译需要的时间比较长&#xff0c;建议在screen里面编译&#xff0c;防…

Struts2的核心配置文件

Struts2的详细配置&#xff1a; 配置的是struts2的核心配置文件&#xff1a;&#xff0c;在struts2的核心配置文件中主要有三个标签需要进行配置&#xff1a;package&#xff0c;action&#xff0c;result。 1. 配置package标签 package标签类似于代码包&#xff0c;用于区别不…

字符串基本操作

1.已知‘星期一星期二星期三星期四星期五星期六星期日 ’&#xff0c;输入数字&#xff08;1-7&#xff09;&#xff0c;输出相应的‘星期几’ s星期一星期二星期三星期四星期五星期六星期日 aint(input(输入数字(1-7):)) print(日期是:,s[3*(a-1):3*a]) 2.输入学号&#xff0c…

对象存储S3权限控制

layout: post title: 对象存储S3权限控制 catalog: true tag: [Ceph, S3] 1. 背景 1.1. 需求1.2. 存在的问题 2. 几种已有方式的使用 2.1. 更改用户2.2. policy授权 2.2.1. example2.2.2. 设置2.2.3. 设置效果2.2.4. 参考示例 2.3. acl 3. 关于s3文档 1. 背景 1.1. 需求 A用户…