Condividi tramite


Risoluzione dei problemi di ibernazione in macchine virtuali Linux

L'ibernazione di una macchina virtuale consente di rendere persistente lo stato della macchina virtuale sul disco del sistema operativo. Questo articolo descrive come risolvere i problemi relativi alla funzionalità di ibernazione in Linux, alla creazione di macchine virtuali Linux abilitate per l'ibernazione e ai problemi relativi all'ibernazione di una macchina virtuale Linux.

Per visualizzare la guida alla risoluzione dei problemi generale per l'ibernazione, vedere Risolvere i problemi di ibernazione in Azure.

Impossibile ibernare una macchina virtuale Linux

Se non è possibile ibernare una macchina virtuale, verificare prima di tutto se l'ibernazione è abilitata nella macchina virtuale.

Se l'ibernazione è abilitata nella macchina virtuale, verificare se l'ibernazione è abilitata correttamente nel sistema operativo guest. È possibile controllare lo stato dell'estensione se è stata usata l'estensione per abilitare l'ibernazione nel sistema operativo guest.

Screenshot del messaggio di stato che segnala che il provisioning è riuscito per una macchina virtuale Linux.

Vm Linux guest non in grado di ibernare

È possibile controllare lo stato dell'estensione se è stata usata l'estensione per abilitare l'ibernazione nel sistema operativo guest.

Screenshot del messaggio di stato che segnala che il provisioning è riuscito in una macchina virtuale Linux.

Se è stato usato lo strumento ibernation-setup-tool per configurare il guest per l'ibernazione, è possibile verificare se lo strumento è stato eseguito correttamente tramite questo comando:

systemctl status hibernation-setup-tool 

Lo stato di esito positivo dovrebbe restituire "Inactive (dead)" e i messaggi di log devono indicare "Swap file for VM hibernation set up successfully" (Scambia file per l'ibernazione della macchina virtuale correttamente)

Esempio:

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

Se il sistema operativo guest non è configurato per l'ibernazione, eseguire l'azione appropriata per risolvere il problema. Ad esempio, se il guest non è riuscito a configurare l'ibernazione a causa di spazio insufficiente, ridimensionare il disco del sistema operativo per risolvere il problema.

Estensioni di Azure disabilitate nelle immagini Debian

Le estensioni di Azure sono attualmente disabilitate per impostazione predefinita per le immagini Debian (altri dettagli sono disponibili qui: https://lists.debian.org/debian-cloud/2023/07/msg00037.html). Se si vuole abilitare l'ibernazione per le macchine virtuali basate su Debian tramite LinuxHibernationExtension, è possibile riabilitare il supporto per le estensioni di macchine virtuali tramite dati personalizzati cloud-init:

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

Screenshot del campo di input init cloud per le nuove macchine virtuali Linux.

In alternativa, è possibile abilitare l'ibernazione nel guest installando lo strumento ibernation-setup-tool nella macchina virtuale Linux.