Aunote 2024-09-15 09:12 采纳率: 0%
浏览 9

OpenSUSE leap KVM虚拟机无法自动恢复状态

问题遇到的现象和发生背景

OpenSUSE leap KVM虚拟机,宿主机每次重启后,虚拟机不会保存宿主机重启前虚拟机的状态

操作环境、软件版本等信息

Opensuse leap 15.6,KVM最新版

尝试过的解决方法

学着写了段脚本,

#!/bin/bash
# 获取正在运行的虚拟机列表
running_vms=$(virsh list --name --state-running)
# 遍历列表中的每个虚拟机
for vm in $running_vms; do
virsh managedsave "$vm"
done

单独运行有效。
又写了个服务:

[Unit]
Description=Auto managedsave VM before reboot and shutdown
After=reboot.target shutdown.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/managedsaveVM.sh
RemainAfterExit=true

[Install]
WantedBy=reboot.target shutdown.target

单独运行也有效,enable了,但是reboot就是不会存状态。

我想要达到的结果

宿主机重启后,虚拟机自动打开(已经实现),并且自动恢复到宿主机关机前的状态。

  • 写回答

2条回答 默认 最新

  • 一轮明月照丘壑 2024-09-15 09:13
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从您的问题描述来看,您的目的是确保宿主机重启后,KVM虚拟机能够恢复到上次关闭前的状态。虽然您已经创建了一个服务来执行 managedsave 命令,但在系统重启时,这个服务可能并未被正确地触发。以下是一些建议和步骤来帮助您解决这个问题:

    1. 确保服务已正确安装并启用: 使用以下命令确保您的服务已经正确安装并设置为开机启动:
    sudo systemctl enable your_service_name.service  # 替换your_service_name为您的服务名称
    sudo systemctl start your_service_name.service  # 启动服务
    

    然后检查服务的状态以确保它正在运行:

    sudo systemctl status your_service_name.service
    

    确保看到 "active (running)" 状态。 2. 在系统启动时运行脚本: 您可以考虑创建一个 systemd 服务或脚本,在系统启动时运行您的 managedsave 脚本。确保这个服务或脚本在系统启动完成后立即运行,以确保虚拟机状态保存。为此,您可能需要更改您的服务的 After 属性以包括更多目标(例如 After=local-fs.target network-online.target 等)。这确保了您的服务在所有文件系统都已挂载和网络已在线之后运行。 3. 检查日志: 查看系统日志以获取关于服务启动失败或其他相关问题的信息。您可以使用 journalctl 命令来查看服务日志。确保没有任何错误消息阻止了服务的启动。 4. 手动测试脚本: 手动执行您的 managedsaveVM.sh 脚本来确认其工作原理。确保虚拟机确实被正确地保存状态。然后尝试重新启动宿主机并观察虚拟机的状态是否恢复。 5. 检查其他因素: 确保没有其他因素(如防火墙规则、SELinux 策略等)阻止您的服务正常运行。此外,检查所有相关的依赖项(例如,KVM 版本和系统版本之间的兼容性)。 6. 尝试其他工具: 除了使用 virsh managedsave 命令外,还可以考虑使用其他工具或方法来保存和恢复虚拟机状态。例如,某些虚拟化平台提供了自动快照功能,可以在系统关机时自动保存虚拟机状态。您可以考虑使用这些功能或工具来实现您的需求。

    希望这些建议能帮助您解决问题!如果问题仍然存在,请提供更多详细信息或日志输出,以便进一步分析。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月15日

悬赏问题

  • ¥15 WangEditor嵌入到geeker-admin中,回车没有办法换行
  • ¥30 stm32f103c8t6制作万能红外遥控器
  • ¥15 有人会fastcrud写前端页面吗
  • ¥15 如何解除Uniaccess管控
  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
  • ¥45 字符串操作——数组越界问题
  • ¥15 Loss下降到0.08时不在下降调整学习率也没用
  • ¥15 QT+FFmpeg使用GPU加速解码