Risolvere i problemi di distribuzione di Resource Manager con la creazione di una nuova macchina virtuale Linux in Azure

Quando si cerca di creare una nuova macchina virtuale di Azure (VM), gli errori più comuni che si incontrano sono errori di provisioning o di allocazione.

  • Un errore di provisioning si verifica quando l'immagine del sistema operativo non viene caricata a causa di passaggi preparatori errati o a causa della selezione di impostazioni errate durante l'acquisizione dell'immagine dal portale.
  • Si verifica un errore di allocazione quando il cluster o l'area non dispone di risorse disponibili o non è in grado di supportare la dimensione della macchina virtuale richiesta.

Se il problema di Azure non è stato risolto in questo articolo, visitare i forum di Azure su MSDN e Stack Overflow. È possibile pubblicare il problema in questi forum o su @AzureSupport su Twitter. È inoltre possibile inviare una richiesta di supporto di Azure. Per inviare una richiesta di supporto, nella pagina Supporto di Azure selezionare Ottieni supporto.

Risoluzione dei problemi di provisioning

Un tipico caso di errore di provisioning si verifica dopo aver creato un'immagine personalizzata, successivamente aver distribuito una macchina virtuale da essa, dopo di che si verificano 40 minuti in cui lo stato della macchina virtuale risulta creating e viene visualizzato il seguente messaggio di errore:

Provisioning state Provisioning failed. 

OS Provisioning for VM 'sentilo' did not finish in the allotted time. 

The VM may still finish provisioning successfully. Please check provisioning state later. 

Also, make sure the image has been properly prepared (generalized). * Instructions for Windows: https://azure.microsoft.com/documentation/articles/virtual-machines-windows-upload-image/ * Instructions for Linux: https://azure.microsoft.com/documentation/articles/virtual-machines-linux-capture-image/.

Oppure:

Deployment failed. Correlation ID: f9dcb33a-4e6e-45c5-9c9d-b29dd73da2e0. {
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "OSProvisioningInternalError",
        "message": "OS Provisioning failed for VM 'iWishThisWouldCreateVM01' due to an internal error: The VM encountered an error during deployment. Please visit https://aka.ms/linuxprovisioningerror for more information on remediation."
      }
    ]
  }
}

In seguito verrà visualizzato lo stato della macchina virtuale con il valore failed.

Perché si verificano errori di provisioning?

In genere, gli errori di provisioning possono verificarsi per diversi motivi, ad esempio:

  • Provisioning mancante/agente configurato in modo errato

    • Dovrai assicurarti che un agente sia presente e funzioni correttamente, dovresti utilizzare cloud-init o se la tua immagine non lo supporta, puoi rivedere questi passaggi.
  • Configurazione dell'immagine errata

Risolvere i problemi relativi agli errori di provisioning

Per identificare il motivo del provisioning non riuscito, dovrai iniziare con il log seriale, disponibile distribuendo la VM con la diagnostica di avvio di Azure.

È necessario distribuire una nuova macchina virtuale con diagnostica di avvio abilitata per la macchina virtuale con immagine non funzionante per accedere agli eventi di provisioning nel registro seriale.

# create resource group
resourceGroup=myBrokenImageRG
location=westus2
az group create --name $resourceGroup --location $location

# create storage account

storageacct=mydiagdata$RANDOM

az storage account create \
  --resource-group $resourceGroup \
  --name $storageacct \
  --sku Standard_LRS \
  --location $location

# create VM
vmName=iWishThisWouldCreateVM01
brokenImageName=<ResourceID of brokenImage>
sshPubkeyPath=""

az vm create \
    --resource-group $resourceGroup \
    --name $vmName \
    --image $brokenImageName \
    --admin-username azadmin \
    --ssh-key-value $sshPubkeyPath \
    --boot-diagnostics-storage $storageacct

Per visualizzare il registro seriale, puoi accedere al portale o eseguire il comando seguente per scaricare il registro "serialConsoleLogBlobUri":

az vm boot-diagnostics get-boot-log-uris --name $vmName --resource-group $resourceGroup

Comprensione del log seriale per gli eventi di sistema e gli eventi di provisioning

Quando la VM viene creata per la prima volta, cloud-init si avvierà e proverà a montare un ISO, stabilire la connettività di rete, impostare le proprietà trasferite durante la creazione della VM, montare il disco temporaneo (sulle dimensioni della VM supportate) e segnalare di nuovo alla piattaforma Azure che è stata completata la configurazione iniziale del sistema operativo.

Eventi di sistema e informazioni chiave Registro seriale Note
Rilascio del kernel e versione del kernel [ 0.000000] Linux version 5.4.0-1031-azure (buildd@lcy01-amd64-021) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #32~18.04.1-Ubuntu SMP Tue Oct 6 10:03:22 UTC 2020 (Ubuntu 5.4.0-1031.32~18.04.1-azure 5.4.65) Appare all'inizio del registro seriale.
Opzioni della riga di comando del kernel [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-1031-azure root=UUID=8c0a4742-2f51-40b4-b659-357cfb0bb2a3 ro console=tty1 console=ttyS0 earlyprintk=ttyS0
[ 0.503399] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-1031-azure root=UUID=8c0a4742-2f51-40b4-b659-357cfb0bb2a3 ro console=tty1 console=ttyS0 earlyprintk=ttyS0
Appare all'inizio del registro seriale. Cercare command line:.
Versione di sistema [ 8.626739] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid) Cercare systemd.
Obiettivi systemd raggiunti [ [0;32m OK [0m] Reached target Swap.
[ [0;32m OK [0m] Reached target User and Group Name Lookups.
[ [0;32m OK [0m] Reached target Slices.
[ [0;32m OK [0m] Reached target Local File Systems (Pre).
[ [0;32m OK [0m] Reached target Local Encrypted Volumes.
[ [0;32m OK [0m] Reached target Local File Systems.
[ [0;32m OK [0m] Reached target System Time Synchronized.
[ [0;32m OK [0m] Reached target Network (Pre).
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Host and Network Name Lookups.
[ [0;32m OK [0m] Reached target Cloud-config availability.
[ [0;32m OK [0m] Reached target System Initialization
[ [0;32m OK [0m] Reached target Timers.
[ [0;32m OK [0m] Reached target Paths.
[ [0;32m OK [0m] Reached target Network is Online.
[ [0;32m OK [0m] Reached target Remote File Systems (Pre).
[ [0;32m OK [0m] Reached target Remote File Systems.
[ [0;32m OK [0m] Reached target Sockets.
[ [0;32m OK [0m] Reached target Basic System.
[ [0;32m OK [0m] Reached target Login Prompts.
Cercare Reached target.
Obiettivi di rete systemd comuni tra le diverse distribuzioni [ [0;32m OK [0m] Reached target Network (Pre).
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Network is Online.
Cercare Reached target Network.
Stato e obiettivi di rete approfonditi per Ubuntu e le distribuzioni in cui la rete di sistema è gestita da systemd-network. Starting Network Time Synchronization...
[ [0;32m OK [0m] Started Network Time Synchronization.
Starting Initial cloud-init job (pre-networking)...
[ [0;32m OK [0m] Started Initial cloud-init job (pre-networking).
[ [0;32m OK [0m] Reached target Network (Pre).
Starting Network Service...
[ [0;32m OK [0m] Started Network Service.
Starting Wait for Network to be Configured...
Starting Network Name Resolution...
[ [0;32m OK [0m] Started Network Name Resolution.
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Host and Network Name Lookups.
[ [0;32m OK [0m] Started Wait for Network to be Configured.
[ [0;32m OK [0m] Reached target Network is Online.
Starting Dispatcher daemon for systemd-networkd...
[ [0;32m OK [0m] Started Dispatcher daemon for systemd-networkd.
Cercare network o networkd.
Stato e obiettivi di rete approfonditi per RHEL/CentOS e per le distribuzioni in cui la rete di sistema è gestita da Network Manager. Starting Read and set NIS domainname from /etc/sysconfig/network...
[ [32m OK [0m] Started Read and set NIS domainname from /etc/sysconfig/network.
Starting Import network configuration from initramfs...
[ [32m OK [0m] Started Import network configuration from initramfs.
Starting Initial cloud-init job (pre-networking)...
[ [32m OK [0m] Started Initial cloud-init job (pre-networking).
[ [32m OK [0m] Reached target Network (Pre).
Starting Network Manager...
[ [32m OK [0m] Started Network Manager.
Starting Network Manager Wait Online...
Starting Network Manager Script Dispatcher Service...
[ [32m OK [0m] Started Network Manager Script Dispatcher Service.
[ [32m OK [0m] Started Network Manager Wait Online.
Starting LSB: Bring up/down networking...
[ [32m OK [0m] Started LSB: Bring up/down networking.
[ [32m OK [0m] Reached target Network.
[ [32m OK [0m] Reached target Network is Online.
Cercare network o Network Manager.
Stato e obiettivi di rete approfonditi per SUSE/SLES e le distribuzioni in cui la rete di sistema è gestita da Wicked. Starting Initial cloud-init job (pre-networking)...
[ [0;32m OK [0m] Reached target Host and Network Name Lookups.
[ [0;32m OK [0m] Started Initial cloud-init job (pre-networking).
[ [0;32m OK [0m] Reached target Network (Pre).
Starting wicked DHCPv6 supplicant service...
Starting wicked DHCPv4 supplicant service...
Starting wicked AutoIPv4 supplicant service...
[ [0;32m OK [0m] Started wicked DHCPv6 supplicant service.
[ [0;32m OK [0m] Started wicked DHCPv4 supplicant service.
[ [0;32m OK [0m] Started wicked AutoIPv4 supplicant service.
Starting wicked network management service daemon...
[ [0;32m OK [0m] Started wicked network management service daemon.
Starting wicked network nanny service...
[ [0;32m OK [0m] Started wicked network nanny service.
Starting wicked managed network interfaces...
[ [0;31m* [0;1;31m* [0m [0;31m* [0m] A start job is running for wicked m…etwork interfaces (22s / no limit)
[K[ [0;31m* [0;1;31m* [0m [0;31m* [0m] A start job is running for wicked m…etwork interfaces (28s / no limit)
[K[ [0;31m* [0;1;31m* [0m [0;31m* [0m] A start job is running for wicked m…etwork interfaces (32s / no limit)
[K[ [0;32m OK [0m] Started wicked managed network interfaces.
[ [0;32m OK [0m] Reached target Network.
[ [0;32m OK [0m] Reached target Network is Online.
Cercare network o wicked.
L'avvio è arrivato abbastanza lontano da consentire l'avvio di cloud-init? Starting Initial cloud-init job (pre-networking)...
Starting Initial cloud-init job (metadata service crawler)...
Cercare Starting Initial cloud-init job.
Versione di Cloud-init e fasi di cloud-init raggiunte [ 22.446387] cloud-init[703]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 running 'init-local' at Wed, 28 Oct 2020 17:46:30 +0000. Up 21.23 seconds.
[ 28.357120] cloud-init[837]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 running 'init' at Wed, 28 Oct 2020 17:46:34 +0000. Up 24.52 seconds.
[ 50.421009] cloud-init[1445]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 running 'modules:config' at Wed, 28 Oct 2020 17:46:57 +0000. Up 48.21 seconds.
[ 51.338792] cloud-init[1541]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 running 'modules:final' at Wed, 28 Oct 2020 17:47:00 +0000. Up 51.01 seconds.
[ 51.366837] cloud-init[1541]: Cloud-init v. 20.3-2-g371b392c-0ubuntu1~18.04.1 finished at Wed, 28 Oct 2020 17:47:01 +0000. Datasource DataSourceAzure [seed=/dev/sr0]. Up 51.32 seconds
Cercare Cloud-init v.
Interfacce di rete (NIC), stati NIC (attivo/inattivo) e indirizzi IP NIC. Mostra se gli indirizzi IP NIC sono stati configurati e assegnati correttamente. L'assegnazione dell'indirizzo IP può essere dinamica tramite DHCP o configurata staticamente. [ 28.381544] cloud-init[837]: ci-info: ++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
[ 28.396781] cloud-init[837]: ci-info: +--------+------+-----------------------------+---------------+--------+-------------------+
[ 28.416501] cloud-init[837]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address |
[ 28.427493] cloud-init[837]: ci-info: +--------+------+-----------------------------+---------------+--------+-------------------+
[ 28.446544] cloud-init[837]: ci-info: | eth0 | True | 10.0.0.4 | 255.255.255.0 | global | 00:0d:3a:c6:17:d5 |
[ 28.460031] cloud-init[837]: ci-info: | eth0 | True | fe80::20d:3aff:fec6:17d5/64 | . | link | 00:0d:3a:c6:17:d5 |
[ 28.476415] cloud-init[837]: ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | host | . |
[ 28.487962] cloud-init[837]: ci-info: | lo | True | ::1/128 | . | host | . |
[ 28.498191] cloud-init[837]: ci-info: +--------+------+-----------------------------+---------------+--------+-------------------+
Cercare ci-info o Net device info.
Percorsi IP (IPv4 e IPv6). Mostra i percorsi IP per vari endpoint, come la sottorete VNet, l'endpoint Azure (168.63.129.16) e l'endpoint Azure Instance Metadata Server/IMDS (169.254.169.254). [ 28.508190] cloud-init[837]: ci-info: ++++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++++
[ 28.522189] cloud-init[837]: ci-info: +-------+-----------------+----------+-----------------+-----------+-------+
[ 28.531173] cloud-init[837]: ci-info: | Route | Destination | Gateway | Genmask | Interface | Flags |
[ 28.549782] cloud-init[837]: ci-info: +-------+-----------------+----------+-----------------+-----------+-------+
[ 28.562896] cloud-init[837]: ci-info: | 0 | 0.0.0.0 | 10.0.0.1 | 0.0.0.0 | eth0 | UG |
[ 28.571653] cloud-init[837]: ci-info: | 1 | 10.0.0.0 | 0.0.0.0 | 255.255.255.0 | eth0 | U |
[ 28.580192] cloud-init[837]: ci-info: | 2 | 168.63.129.16 | 10.0.0.1 | 255.255.255.255 | eth0 | UGH |
[ 28.587633] cloud-init[837]: ci-info: | 3 | 169.254.169.254 | 10.0.0.1 | 255.255.255.255 | eth0 | UGH |
[ 28.600728] cloud-init[837]: ci-info: +-------+-----------------+----------+-----------------+-----------+-------+
[ 28.611117] cloud-init[837]: ci-info: +++++++++++++++++++Route IPv6 info+++++++++++++++++++
[ 28.619534] cloud-init[837]: ci-info: +-------+-------------+---------+-----------+-------+
[ 28.629292] cloud-init[837]: ci-info: | Route | Destination | Gateway | Interface | Flags |
[ 28.638596] cloud-init[837]: ci-info: +-------+-------------+---------+-----------+-------+
[ 28.647791] cloud-init[837]: ci-info: | 1 | fe80::/64 | :: | eth0 | U |
[ 28.660622] cloud-init[837]: ci-info: | 3 | local | :: | eth0 | U |
[ 28.670776] cloud-init[837]: ci-info: | 4 | ff00::/8 | :: | eth0 | U |
[ 28.691506] cloud-init[837]: ci-info: +-------+-------------+---------+-----------+-------+
Cercare ci-info, Route IPv4 info o Route IPv6 info.
Chiavi autorizzate SSH per gli utenti sulla VM. Il file authorized_keys in SSH specifica le chiavi SSH che possono essere utilizzate per accedere all'account utente per il quale è configurato il file. ci-info: ++++++++++++++++++++++++++Authorized keys from /home/azureuser/.ssh/authorized_keys for user azureuser+++++++++++++++++++++++++++
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
ci-info: | Keytype | Fingerprint (sha256) | Options | Comment |
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
ci-info: | ssh-rsa | 88:b0:2a:ce:f5:91:49:a2:01:07:a4:e5:db:b3:8c:3e:7e:1f:52:83:53:3c:83:4f:a3:a7:17:13:65:a3:47:e2 | - | - |
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+---------+
Cercare Authorized keys.
Generazione della chiave dell'host SSH. Una chiave host è una chiave crittografica utilizzata per autenticare i computer nel protocollo SSH. Le chiavi host sono coppie di chiavi, che in genere utilizzano gli algoritmi RSA, DSA o ECDSA. Le chiavi dell'host pubblico vengono archiviate e/o distribuite ai client SSH e le chiavi private vengono archiviate sui server SSH. Starting OpenSSH Server Key Generation...
[ [32m OK [0m] Started OpenSSH Server Key Generation.
[ 40.437735] cloud-init[837]: Generating public/private rsa key pair.
[ 40.451048] cloud-init[837]: Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
[ 40.473777] cloud-init[837]: Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
[ 40.489730] cloud-init[837]: The key fingerprint is:
[ 40.501705] cloud-init[837]: SHA256:NGxA6sf9EAMtczaFSBSJqiGkafEZuPUykNLxefbXofM root@myVmName
[ 40.686610] cloud-init[837]: Generating public/private dsa key pair.
[ 40.712350] cloud-init[837]: Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
[ 40.721901] cloud-init[837]: Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
[ 40.721966] cloud-init[837]: The key fingerprint is:
[ 40.722011] cloud-init[837]: SHA256:QjoxEw9PNOg0P3LW6wnSZzjsfQQ4vhW8S0dAuNWkWHM root@myVmName
[ 40.722606] cloud-init[837]: Generating public/private ecdsa key pair.
[ 40.722650] cloud-init[837]: Your identification has been saved in /etc/ssh/ssh_host_ecdsa_key.
[ 40.722690] cloud-init[837]: Your public key has been saved in /etc/ssh/ssh_host_ecdsa_key.pub.
[ 40.722734] cloud-init[837]: The key fingerprint is:
[ 40.722774] cloud-init[837]: SHA256:BaFqan71k4blzY8TQrLQOavMWoKHgUDgxEAuB0ouJCo root@myVmName
[ 41.063239] cloud-init[837]: Generating public/private ed25519 key pair.
[ 41.091125] cloud-init[837]: Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
[ 41.120794] cloud-init[837]: Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
[ 41.154126] cloud-init[837]: The key fingerprint is:
[ 41.157135] cloud-init[837]: SHA256:KsKfIKjwGpMgbYYved5v5oNE6v6eeUwI4AxeeigXk14 root@myVmName
Cercare Generating public/private, Your identification has been saved in, The key fingerprint is: o SHA.
Dump delle impronte digitali della chiave dell'host ssh. <14>Oct 28 17:47:00 ec2: #############################################################
<14>Oct 28 17:47:00 ec2: -----BEGIN SSH HOST KEY FINGERPRINTS-----
<14>Oct 28 17:47:00 ec2: 1024 SHA256:QjoxEw9PNOg0P3LW6wnSZzjsfQQ4vhW8S0dAuNWkWHM root@myVmName (DSA)
<14>Oct 28 17:47:00 ec2: 256 SHA256:BaFqan71k4blzY8TQrLQOavMWoKHgUDgxEAuB0ouJCo root@myVmName (ECDSA)
<14>Oct 28 17:47:00 ec2: 256 SHA256:KsKfIKjwGpMgbYYved5v5oNE6v6eeUwI4AxeeigXk14 root@myVmName (ED25519)
<14>Oct 28 17:47:00 ec2: 2048 SHA256:NGxA6sf9EAMtczaFSBSJqiGkafEZuPUykNLxefbXofM root@myVmName (RSA)
<14>Oct 28 17:47:00 ec2: -----END SSH HOST KEY FINGERPRINTS-----
<14>Oct 28 17:47:00 ec2: #############################################################
Cercare BEGIN SSH HOST KEY FINGERPRINTS e END SSH HOST KEY FINGERPRINTS.
Dump delle chiavi dell'host ssh. -----BEGIN SSH HOST KEY KEYS-----
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFzu1pBMlq3g/8ztkQo+ZukigmLzQ02/ogL7Xe8aKjbuM8q4ibo1kWnXB0UuGkGE0DotVyBQsoyUNorTj96G2Xo= root@myVmName
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIbGOVk/IMfL+RZBDo6YlfbKncVTIBy7wSrqL5ixX6yZ root@myVmName
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnH5sIIEFi2ne6CMk1jscVQ289i4idOMJt3WwzHR1lOgJf9kPY+WzmFw71Ai9ZEpqSTpYWxgt+z26ujxAE3R1LvOn1QKetlsPLT5FH8oIZESXmYDb/KL/4k81aDelzko1Xipk5SSai8LeX1qglKUEyGevht9S+QQTHK8Ed++UDzNidCk02iAdhpX/0E5d09NE4r+v5wAojOazLnq6JaESYV07SI7rBOGO7hCdSrQwWodYnhyTQRP3FbqjUeNRqBl3uqlH3+rgMAAPsCpToFTCperTRmyBrCbspzpxIpQSEFbf639EL/7Cst/Ff2ND0D0zVAaSdrmFZisYUcO+VRanZ root@myVmName
-----END SSH HOST KEY KEYS-----
Cercare BEGIN SSH HOST KEY KEYS e END SSH HOST KEY KEYS.
Il server SSH è stato avviato? Starting OpenBSD Secure Shell server...
[ [0;32m OK [0m] Started OpenBSD Secure Shell server.
Starting OpenSSH server daemon...
[ [32m OK [0m] Started OpenSSH server daemon.
Starting OpenSSH Daemon...
[ [0;32m OK [0m] Started OpenSSH Daemon.
Cercare Secure Shell server, OpenSSH server daemon o OpenSSH Daemon.
Le sessioni utente e gli accessi utente sono consentiti? La VM mostra una richiesta di accesso utente? Starting Accounts Service...
Starting Permit User Sessions...
Starting Login Service...
[ [0;32m OK [0m] Started Permit User Sessions.
[ [0;32m OK [0m] Started Login Service.
[ [0;32m OK [0m] Reached target Login Prompts.
[ [0;32m OK [0m] Started Accounts Service.
Ubuntu 18.04.5 LTS myVmName ttyS0
myVmName login:
Cercare Accounts Service, Permit User Sessions, Login Service, Login Prompts e login:.
L'agente Linux di Azure è stato avviato correttamente? [ [0;32m OK [0m] Started Azure Linux Agent.
2020/10/28 17:46:52.082569 INFO Daemon Azure Linux Agent Version:2.2.45
Cercare Azure Linux Agent.
Dal punto di vista dell'agente Linux di Azure, la VM ha completato correttamente il provisioning? Il gestore dell'estensione della macchina virtuale è stato avviato dall'Agente Linux di Azure dopo che il provisioning è riuscito? L'Agente Linux di Azure avvia il gestore dell'estensione della macchina solo se rileva che il provisioning della macchina è riuscito. 2020/10/28 17:46:52.586765 INFO Daemon Finished provisioning Cercare INFO Daemon Finished provisioning.
Si sono verificati errori, errori o eccezioni nel registro seriale? Cercare fail, error, warn e exception nei registri seriali.

Errori comuni

Driver UDF bloccato

Errore: nel registro seriale:

[   10.855501] cloud-init[732]: Cloud-init v. 20.4.1-0ubuntu1~18.04.1 running 'init-local' at Thu, 28 Jan 2021 23:43:02 +0000. Up 10.68 seconds.
[   10.869581] cloud-init[732]: 2021-01-28 23:43:03,097 - azure.py[WARNING]: /dev/sr0 was not mountable
[   10.875608] cloud-init[732]: 2021-01-28 23:43:03,106 - azure.py[ERROR]: No Azure metadata found
[   10.885776] cloud-init[732]: 2021-01-28 23:43:03,107 - azure.py[ERROR]: Could not crawl Azure metadata: No Azure metadata found
[   14.634117] cloud-init[732]: 2021-01-28 23:43:06,876 - azure.py[WARNING]: Reported failure to Azure fabric.

In waagent.log:

"UDF driver Blocklisted 2020/09/11 19:16:40.240016 ERROR Daemon Provisioning failed: [ProtocolError] [CopyOvfEnv] Error mounting dvd: [OSUtilError] Failed to mount dvd deviceInner error: [mount -o ro -t udf,iso9660 /dev/sr0 /mnt/cdrom/secure] returned 32: mount: /mnt/cdrom/secure: wrong fs type, bad option, bad superblock on /dev/sr0, missing codepage or helper program, or other error."

Causa: il driver UDF non è caricato nel kernel, questo è necessario per il provisioning della VM, vedi requisiti immagine.

Quando viene eseguito per la prima volta il provisioning di una macchina virtuale in Azure, l'host di Azure presenta un "disco iso cdrom di provisioning" alla macchina virtuale. Questo disco di provisioning viene in genere presentato alla VM tramite /dev/sr0. All'interno del disco di provisioning, è presente un manifesto di provisioning che contiene le informazioni di provisioning di una macchina virtuale. L'agente di provisioning all'interno della macchina virtuale deve montare il disco di provisioning, leggere il manifesto di provisioning ed eseguire il provisioning della macchina virtuale di conseguenza

Poiché il disco di provisioning è uncdrom iso disk, il driver Linux UDF è richiesto dal kernel per montare correttamente questo disco. Questo è indicato nella documentazione Microsoft sulle immagini Linux. Per questa VM, i log indicano che il montaggio del disco di provisioning non è riuscito, il che ha causato l'esito negativo del provisioning della VM. Il motivo più probabile è dovuto a driver UDF mancanti o bloccati.

Soluzione: assicurarsi che il driver UDF sia configurato per essere caricato nel kernel.

Un modo comune per bloccare i driver UDF è tramite le configurazioni all'interno di /etc/modprobe.d/. Collaborare con il cliente/proprietario dell'immagine per assicurarsi che i driver UDF di Linux siano presenti e non bloccati. Consultare questo articolo sul blocco/sblocco dei driver del kernel.

Problema dei caratteri Unicode nei tag della macchina virtuale

Errore: in cloud-init.log:

  File "/usr/lib/python2.7/site-packages/cloudinit/sources/DataSourceAzure.py", line 1316, in _get_metadata_from_imds
    except json.decoder.JSONDecodeError:
AttributeError: 'module' object has no attribute 'JSONDecodeError'

Causa: questo accade perché i tag VM hanno caratteri non ascii e la versione di cloud-init è precedente alla 20.3.

Soluzione: utilizza o assicurati che l'immagine supporti cloud-init 20.3 o versioni successive oppure rimuovi i caratteri non ascii dai tag VM.

Password con caratteri unicode

Errore: in cloud-init.log:

File "/usr/lib/python2.7/site-packages/cloudinit/sources/DataSourceAzure.py", line 1153, in encrypt_pass
    return crypt.crypt(password, salt_id + util.rand_str(strlen=16))
  File "/usr/lib64/python2.7/crypt.py", line 55, in crypt
    return _crypt.crypt(word, salt)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-11: ordinal not in range(128)

Causa: questo accade perché la password fornita contiene caratteri non supportati (non ascii).

Soluzione: fornire una password che contenga solo caratteri ASCII.

Autorizzazione dhclient

Errore: in cloud-init.log:

Command: ['/var/tmp/cloud-init/cloud-init-dhcp-yd8mvxud/dhclient', '-1', '-v', '-lf', '/var/tmp/cloud-init/cloud-init-dhcp-yd8mvxud/dhcp.leases', '-pf', '/var/tmp/cloud-init/cloud-init-dhcp-yd8mvxud/dhclient.pid', 'eth0', '-sf', '/bin/true']
Exit code: -
Reason: [Errno 13] Permission denied: b'/var/tmp/cloud-init/cloud-init-dhcp-yd8mvxud/dhclient'

Causa: le versioni precedenti di cloud-init (precedenti alla versione 20.3) eseguono DHCP copiando ed eseguendo dhclient all'interno di /var/tmp. Se /var/tmp è montato come noexec (senza esecuzione) dalla macchina virtuale, il DHCP fallirà perché dhclient non dispone delle autorizzazioni di esecuzione all'interno di /var/tmp.

Le versioni di cloud-init >= 20.3 contengono una correzione che fa retrocedere l'esecuzione di dhclient "as-is" (non copiandola ed eseguendola in /var/tmp in caso di problemi di autorizzazione).

Soluzione: per le macchine virtuali che eseguono cloud-init precedente alla versione 20.3, configurare la macchina virtuale in modo che /var/tmp non sia montato come noexec. In alternativa, aggiornare il pacchetto cloud-init della macchina virtuale alla versione >= 20.3.

Ottenere più registri

Se ritieni di aver bisogno di più log dalla VM per comprendere i problemi, forse puoi accedere tramite SSH alla VM utilizzando la console seriale utilizzando un utente inserito nell'immagine. Se non si dispone di un utente integrato, è possibile ricreare l'immagine con un utente oppure utilizzare lo strumento di riparazione VM AZ che monterà il disco del sistema operativo della VM di cui non è stato possibile effettuare il provisioning, per un'altra VM.

az vm repair create  \
    --resource-group $resourceGroup \
    --name $vmName \
    --repair-username repairadm \
    --repair-password AnotherPassword123! \
    --repair-vm-name repairVM \
    --verbose

Informazioni su cloud-init.log

Quando hai accesso ai log di cloud-init, consulta la documentazione sulla risoluzione dei problemi di cloud-init.

Ottenere supporto

Se hai fatto riferimento alla guida e non riesci ancora a risolvere il problema, puoi aprire una richiesta di assistenza. Quando lo fai, seleziona il prodotto giusto e l'argomento di supporto, in questo modo coinvolgerai il team di supporto corretto.

Selezionare il prodotto caso:

Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: <COMPLETE>
Support Subtopic: <COMPLETE>

Raccogli i registri delle attività

Per avviare la risoluzione dei problemi, raccogli i registri delle attività per identificare l'errore associato al problema. I seguenti collegamenti contengono informazioni dettagliate sul processo da seguire.

Visualizzare le operazioni di distribuzione

Visualizzare i log delle attività per gestire le risorse di Azure

Problema: immagine personalizzata; errori di provisioning

Gli errori di provisioning si verificano se carichi o acquisisci un'immagine VM generalizzata come immagine VM specializzata o viceversa. Il primo causerà un errore di timeout del provisioning e il secondo causerà un errore di provisioning. Per distribuire la tua immagine personalizzata senza errori, devi assicurarti che il tipo di immagine non cambi durante il processo di acquisizione.

La tabella seguente elenca le possibili combinazioni di immagini generalizzate e specializzate, il tipo di errore che incontrerai e cosa devi fare per correggere gli errori.

La tabella seguente elenca le possibili combinazioni di caricamento e acquisizione di immagini del sistema operativo Linux generalizzate e specializzate. Le combinazioni che elaboreranno senza errori sono indicate da una Y, e quelle che genereranno errori sono indicate da una N. Le cause e le soluzioni per i diversi errori che incontrerai sono riportate sotto la tabella.

Sistema operativo Carica spec. Carica gen. Cattura spec. Cattura gen.
Linux gen. N1 Y N3 Y
Specifiche Linux. Y N2 Y N4

Y: se il sistema operativo è Linux generalizzato e viene caricato e/o acquisito con l'impostazione generalizzata, non si verificheranno errori. Allo stesso modo, se il sistema operativo è Linux specializzato e viene caricato e/o acquisito con l'impostazione specializzata, non si verificheranno errori.

Errori di caricamento

              N1: se il sistema operativo è Linux generalizzato e viene caricato come specializzato, si verificherà un errore di timeout del provisioning perché la macchina virtuale è bloccata nella fase di provisioning.

              N2: se il sistema operativo è Linux specializzato e viene caricato come generalizzato, si verificherà un errore di provisioning perché la nuova macchina virtuale è in esecuzione con il nome del computer, il nome utente e la password originali.

Risoluzione: errore di caricamento

Per risolvere entrambi questi errori, caricare il VHD originale, disponibile in locale, con la stessa impostazione del sistema operativo (generalizzato/specializzato). Per caricare come generalizzato, ricordarsi di eseguire prima -deprovision.

Errori di acquisizione

              N3: se il sistema operativo è Linux generalizzato e viene acquisito come specializzato, si verificherà un errore di timeout del provisioning perché la macchina virtuale originale non è utilizzabile in quanto è contrassegnata come generalizzata.

              N4: se il sistema operativo è Linux specializzato e viene acquisito come generalizzato, si verificherà un errore di provisioning non riuscito perché la nuova macchina virtuale è in esecuzione con il nome del computer, il nome utente e la password originali. Inoltre, la VM originale non è utilizzabile perché è contrassegnata come specializzata.

Risoluzione: errore di acquisizione

Per risolvere entrambi questi errori, eliminare l'immagine corrente dal portale e acquisirla di nuovo dai VHD correnti con la stessa impostazione del sistema operativo (generalizzato/specializzato).

Questo errore si verifica in situazioni in cui la nuova richiesta di macchina virtuale viene aggiunta a un cluster che non può supportare la dimensione della macchina virtuale richiesta o non dispone di spazio libero disponibile per soddisfare la richiesta.

Causa 1

Il cluster non può supportare la dimensione della macchina virtuale richiesta.

Risoluzione 1

  • Riprovare la richiesta utilizzando una dimensione della macchina virtuale più piccola.

  • Se la dimensione della VM richiesta non può essere modificata:

    • Arrestare tutte le macchine virtuali nel set di disponibilità. Fai clic su Gruppi di risorse>il tuo gruppo di risorse>Risorse>il tuo set di disponibilità>Macchine virtuali>la tua macchina virtuale>Arresta.
    • Dopo l'arresto di tutte le macchine virtuali, creare una nuova macchina virtuale della dimensione desiderata.
    • Avviare prima la nuova macchina virtuale, quindi selezionare ciascuna delle macchine virtuali fermate e fare clic su Avvia.

Causa 2

Il cluster non ha risorse libere.

Risoluzione 2

  • Riprovare la richiesta in un secondo momento.
  • Se la nuova macchina virtuale può far parte di un set di disponibilità differente
    • Creare una nuova macchina virtuale in un set di disponibilità diverso (nella stessa area).
    • Aggiungere la nuova macchina virtuale alla stessa rete virtuale.

Principali problemi

I seguenti problemi principali possono aiutarti a risolvere il tuo problema. Per iniziare la risoluzione dei problemi, rivedi questi passaggi:

Il cluster non può supportare la dimensione della macchina virtuale richiesta

  • Riprovare la richiesta utilizzando una dimensione della macchina virtuale più piccola.
  • Se la dimensione della macchina virtuale richiesta non può essere modificata:
    • Arrestare tutte le macchine virtuali nel set di disponibilità. Fare clic su Gruppi di risorse> selezionare il gruppo di risorse >Risorse> selezionare il set di disponibilità >Macchine virtuali> selezionare la macchina virtuale >Arresta.
    • Dopo l'arresto di tutte le macchine virtuali, creare la macchina virtuale della dimensione desiderata.
    • Avviare prima la nuova macchina virtuale, quindi selezionare ciascuna delle macchine virtuali arrestate e fare clic su Avvia.

Il cluster non ha risorse libere

  • Riprova la richiesta più tardi.
  • Se la nuova macchina virtuale può far parte di un set di disponibilità differente
    • Creare una macchina virtuale in un set di disponibilità diverso (nella stessa area).
    • Aggiungere la nuova macchina virtuale alla stessa rete virtuale.

Domande frequenti

Come posso attivare il mio credito mensile per Visual Studio Enterprise (BizSpark)

Per attivare il tuo credito mensile, consulta questo articolo.

Perché non riesco a installare il driver GPU per una VM Ubuntu NV?

Attualmente, il supporto per le GPU Linux è disponibile solo sulle macchine virtuali Azure NC che eseguono Ubuntu Server 16.04 LTS. Per ulteriori informazioni, vedere Configurare i driver GPU per le VM serie N che eseguono Linux.

Assenza di driver per la macchina virtuale Linux serie N

Le istruzioni per installare i driver per le VM basate su Linux si trovano qui.

Non riesco a trovare un'istanza GPU nella mia VM serie N

Per sfruttare le funzionalità della GPU delle macchine virtuali di Azure serie N, è necessario installare i driver di grafica in ogni macchina virtuale dopo la distribuzione. Le informazioni sulla configurazione del driver sono disponibili qui.

Le VM serie N sono disponibili nella mia regione?

Puoi controllare la disponibilità dalla Tabella dei prodotti disponibili per regione e i prezzi qui.

Non riesco a vedere la famiglia di dimensioni della macchina virtuale che desidero durante il ridimensionamento della mia macchina virtuale

Quando una VM è in esecuzione, viene distribuita su un server fisico. I server fisici nelle aree di Azure sono raggruppati in cluster di hardware fisico comune. Il ridimensionamento di una macchina virtuale che richiede lo spostamento della macchina virtuale in cluster hardware diversi è diverso a seconda del modello di distribuzione utilizzato per distribuire la macchina virtuale.

  • Per le macchine virtuali distribuite con il modello di distribuzione classico, è necessario rimuovere e distribuire nuovamente il servizio cloud per cambiare la dimensione delle macchine virtuali in un'altra famiglia di dimensioni.

  • Per le macchine virtuali distribuite nel modello di distribuzione di Resource Manager, è necessario arrestare tutte le macchine virtuali nel set di disponibilità prima di modificare le dimensioni di qualsiasi macchina virtuale nel set di disponibilità.

Le dimensioni della macchina virtuale elencate non sono supportate durante la distribuzione nel set di disponibilità

Scegli una dimensione supportata nel cluster del set di disponibilità. Quando si crea un set di disponibilità, è consigliabile scegliere la dimensione della macchina virtuale più grande di cui si ritiene necessaria e fare in modo che sia la prima distribuzione al set di disponibilità.

Quali distribuzioni/versioni di Linux sono supportate in Azure?

È possibile trovare l'elenco in Linux in Distribuzioni approvate da Azure.

Posso aggiungere una macchina virtuale classica esistente a un set di disponibilità?

Sì. È possibile aggiungere una macchina virtuale classica esistente a un set di disponibilità nuovo o esistente. Per ulteriori informazioni, vedere Aggiunta di una macchina virtuale esistente a un set di disponibilità.

Importante

Le VM classiche verranno ritirate il 1° marzo 2023.

Se utilizzi le risorse IaaS di ASM, completa la migrazione entro il 1° marzo 2023. Ti invitiamo a effettuare il passaggio prima per sfruttare i numerosi miglioramenti delle funzionalità in Azure Resource Manager.

Per ulteriori informazioni, vedere Migrazione delle risorse IaaS in Azure Resource Manager entro il 1° marzo 2023.

Passaggi successivi

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. Puoi anche inviare feedback sul prodotto al supporto della community di Azure.