你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查 Linux VM 上的休眠问题

休眠虚拟机让你可将 VM 状态持久保存到 OS 磁盘。 本文介绍如何排查 Linux 上休眠功能的问题、创建启用了休眠的 Linux VM 的问题以及使 Linux VM 休眠的问题。

若要查看休眠的常规故障排除指南,请查看排查 Azure 中的休眠问题

无法使 Linux VM 休眠

如果无法使 VM 休眠,请先检查是否在 VM 上启用了休眠

如果在 VM 上启用了休眠,请检查是否在来宾 OS 中成功启用了休眠。 如果使用扩展在来宾 OS 中启用休眠,则可以检查扩展状态。

状态和状态消息的屏幕截图,报告 Linux VM 的预配已成功。

来宾 Linux VM 无法休眠

如果使用扩展在来宾 OS 中启用休眠,则可以检查扩展状态。

状态和状态消息的屏幕截图,报告 Linux VM 上的预配已成功。

如果你使用 hibernation-setup-tool 来配置来宾的休眠,则可以通过此命令检查该工具是否已成功执行:

systemctl status hibernation-setup-tool 

成功状态应返回“非活动(死)”,日志消息应显示“已成功设置 VM 休眠的交换文件”

示例:

azureuser@:~$ systemctl status hibernation-setup-tool
● hibernation-setup-tool.service - Hibernation Setup Tool
   Loaded: loaded (/lib/systemd/system/hibernation-setup-tool.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2021-08-25 22:44:29 UTC; 17min ago
  Process: 1131 ExecStart=/usr/sbin/hibernation-setup-tool (code=exited, status=0/SUCCESS)
 Main PID: 1131 (code=exited, status=0/SUCCESS)

linuxhib2 hibernation-setup-tool[1131]: INFO: update-grub2 finished successfully.
linuxhib2 hibernation-setup-tool[1131]: INFO: udev rule to hibernate with systemd set up in /etc/udev/rules.d/99-vm-hibernation.rules.  Telling udev about it.
...
...
linuxhib2 hibernation-setup-tool[1131]: INFO: systemctl finished successfully.
linuxhib2 hibernation-setup-tool[1131]: INFO: Swap file for VM hibernation set up successfully

如果未为来宾 OS 配置休眠,请采取相应的操作来解决该问题。 例如,如果来宾由于空间不足而无法配置休眠,请重设 OS 磁盘的大小来解决该问题。

Debian 映像上禁用了 Azure 扩展

Debian 映像当前默认禁用 Azure 扩展(此处有更多详细信息:https://lists.debian.org/debian-cloud/2023/07/msg00037.html)。 如果要通过 LinuxHibernationExtension 为基于 Debian 的 VM 启用休眠,则可以通过 cloud-init 自定义数据重新启用对 VM 扩展的支持:

#!/bin/sh
sed -i -e 's/^Extensions\.Enabled =.* $/Extensions.Enabled=y/" /etc/waagent.conf

新 Linux VM 的云初始化输入字段的屏幕截图。

或者,可通过在 Linux VM 上安装 hibernation-setup-tool 在来宾上启用休眠。