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

简介: 本节我们讨论 Suspend/Resume 和 Rescue/Unrescue 这两组操作。 Suspend/Resume 有时需要长时间暂停 instance,可以通过 Suspend 操作将 instance 的状态保存到宿主机的磁盘上。

本节我们讨论 Suspend/Resume 和 Rescue/Unrescue 这两组操作。

Suspend/Resume

有时需要长时间暂停 instance,可以通过 Suspend 操作将 instance 的状态保存到宿主机的磁盘上。当需要恢复的时候,执行 Resume 操作,从磁盘读回 instance 的状态,使之继续运行。

这里需要对 Suspend 和 Pause 操作做个比较:

相同点
两者都是暂停 instance 的运行,并保存当前状态,之后可以通过 Resume 操作恢复

不同点
1. Suspend 将 instance 的状态保存在磁盘上;Pause 是保存在内存中,所以 Resume 被 Pause 的 instance 要比 Suspend 快。 2. Suspend 之后的 instance,其状态是 Shut Down;而被 Pause 的 instance 状态是Paused。 3. 虽然都是通过 Resume 操作恢复,Pause 对应的 Resume 在 OpenStack 内部被叫作 “Unpause”;Suspend 对应的 Resume 才是真正的 “Resume”。这个在日志中能体现出来。

Suspend/Resume 的日志分析留给大家做练习。

Rescue/Unrescue

从这节开始,我们将讨论几种 instance 故障恢复的方法,不同方法适用于不同的场景。 首先我们考虑操作系统故障。

有时候由于误操作或者突然断电,操作系统重启后却起不来了。 为了最大限度挽救数据,我们通常会使用一张系统盘将系统引导起来,然后在尝试恢复。 问题如果不太严重,完全可以通过这种方式让系统重新正常工作。 比如某个系统文件意外删除, root 密码遗忘等

Nova 也提供了这种故障恢复机制,叫做 Rescue。 我们来看看 rescue 的说明:

Rescue 用指定的 image 作为启动盘引导 instance,将 instance 本身的系统盘作为第二个磁盘挂载到操作系统上。

下面是 rescue instance 的流程图

image180.png

  1. 向 nova-api 发送请求

  2. nova-api 发送消息

  3. nova-compute 执行操作

下面我们详细讨论每一个步骤。

向 nova-api 发送请求

目前 Rescue 操作只能通过 CLI 执行

这里我们没有指明用哪个 image 作为引导盘,nova 将使用 instance 部署时使用的 image

查看日志 /opt/stack/logs/n-api.log

nova-api 发送消息

nova-api 向 Messaging(RabbitMQ)发送了一条消息:“Rescue 这个 Instance” 源代码在 /opt/stack/nova/nova/compute/api.py,方法是 rescue。

nova-compute执行操作

查看日志 /opt/stack/logs/n-cpu.log

关闭 instance

通过 image 创建新的引导盘,命名为 disk.rescue

启动 instance

Rescue 执行成功后,可以通过 virsh edit <instance_name> 查看 instance 的 XML 定义,disk.rescue 作为启动盘 vda,真正的启动盘 disk 作为第二个磁盘 vdb。

登录 instance,通过 fdisk 也可确认。

此时,instance 处于 Rescue 状态

Rescue 操作让我们有机会修复损坏的操作系统。 修好之后,使用 Unrescue 操作从原启动盘重新引导 instance。

Unrescue 的日志分析留给大家练习。



相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
java minio 8.x 通过https连接minio
java minio 8.x 通过https连接minio
1944 0
|
10月前
|
编解码 Java 计算机视觉
探索 JavaCV:开启计算机视觉与多媒体处理新世界
JavaCV 是基于 OpenCV 和 FFmpeg 的 Java 接口库,助力开发者实现视频处理、图像分析等功能。支持多种音视频格式编解码、GPU 加速及跨平台运行,适用于直播录制、摄像头捕获、美颜相机等场景,是多媒体开发的利器。
822 1
|
缓存 前端开发 安全
前端开发者必备:HTTP状态码含义与用途解析,常见错误码产生原因及解决策略
前端开发者必备:HTTP状态码含义与用途解析,常见错误码产生原因及解决策略
4257 0
|
运维 容灾 数据中心
云上应用管理问题之什么是Region和AZ,它们有什么区别
云上应用管理问题之什么是Region和AZ,它们有什么区别
|
存储 关系型数据库 Apache
Apache Doris 入门 10 问
本文解答了Apache Doris 在读写流程、副本一致性机制、 存储机制、高可用机制等方面的常见疑问点,欢迎订阅。
902 0
Apache Doris 入门 10 问
|
KVM 虚拟化
CPU 和内存虚拟化原理 - 每天5分钟玩转 OpenStack(6)
前面我们成功地把 KVM 跑起来了,有了些感性认识,这个对于初学者非常重要。不过还不够,我们多少得了解一些 KVM 的实现机制,这对以后的工作会有帮助。 CPU 虚拟化 KVM 的虚拟化是需要 CPU 硬件支持的。
1962 0
|
Ubuntu Linux 网络安全
理解 virbr0 - 每天5分钟玩转 OpenStack(11)
virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能。 virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡提供 DHCP 服务。
2352 0
|
存储
NFS Volume Provider(Part I) - 每天5分钟玩转 OpenStack(62)
cinder-volume 支持多种 volume provider,前面我们一直使用的是默认的 LVM,本节我们将增加 NFS volume provider。 虽然 NFS 更多地应用在实验或小规模 cinder 环境,由于性能和缺乏高可用的原因在生产环境中不太可能使用,但是学习 NFS volume provider 的意义在于:1. 理解 cinder-volume 如何支持多 backend2. 更重要的,可以理解 cinder-volume,nova-compute 和 volume provider 是如何协同工作,共同为 instance 提供块存储。
1134 0
准备 LVM Volume Provider - 每天5分钟玩转 OpenStack(49)
Cinder 真正负责 Volume 管理的组件是 volume provider。 Cinder 支持多种 volume provider,LVM 是默认的 volume provider。Devstack 安装之后,/etc/cinder/cinder 已经配置好了 LVM,如下图所示: 上面的配置定义了名为“lvmdriver-1”的 volume provider,也称作 back-end。
1138 0
|
API 数据库 消息中间件
Nova 组件如何协同工作 - 每天5分钟玩转 OpenStack(24)
Nova 物理部署方案 前面大家已经看到 Nova 由很多子服务组成,同时我们也知道 OpenStack 是一个分布式系统,可以部署到若干节点上,那么接下来大家可能就会问: Nova 的这些服务在物理上应该如何部署呢? 对于 Nova,这些服务会部署在两类节点上:计算节点和控制节点。
1457 0

热门文章

最新文章