Molnaktiverad virtuell dator tar lång tid att starta
Den här artikeln beskriver hur du felsöker en oväntad startfördröjning på en virtuell Azure-dator (VM) som använder funktionen cloud-init. Den här fördröjningen kan göra att en molninit-aktiverad distribution av virtuella Azure-datorer kräver mer än två minuter (120 sekunder) för att starta.
Symptom
Det tar mer än två minuter att starta en virtuell Azure-dator på VM-produkter som inte tillhandahåller lokala tillfälliga diskar, till exempel följande produkter:
- Ev4- och Esv4-serien
- Dv5- och Dsv5-serien
- Dasv5- och Dadsv5-serien
- DCasv5- och DCadsv5-serien konfidentiellt
Om du kontrollerar loggfiler som /var/log/cloud-init.log och /var/log/waagent.log (init-fas) ser du utdata som liknar följande exempel:
# grep "did not appear after 120 seconds" *
cloud-init.log:2021-12-01 19:35:50,455 - DataSourceAzure.py[WARNING]: ephemeral device '/dev/disk/cloud/azure_resource' did not appear after 120 seconds.
cloud-init.log:2021-12-01 21:19:58,531 - DataSourceAzure.py[WARNING]: ephemeral device '/dev/disk/cloud/azure_resource' did not appear after 120 seconds.
cloud-init-output.log:2021-12-01 19:35:50,455 - DataSourceAzure.py[WARNING]: ephemeral device '/dev/disk/cloud/azure_resource' did not appear after 120 seconds.
cloud-init-output.log:2021-12-01 21:19:58,531 - DataSourceAzure.py[WARNING]: ephemeral device '/dev/disk/cloud/azure_resource' did not appear after 120 seconds.
messages:Dec 1 19:35:50 redhat84noephstor01 cloud-init[1065]: 2021-12-01 19:35:50,455 - DataSourceAzure.py[WARNING]: ephemeral device '/dev/disk/cloud/azure_resource' did not appear after 120 seconds.
messages:Dec 1 21:19:58 redhat84noephstor01 cloud-init[931]: 2021-12-01 21:19:58,531 - DataSourceAzure.py[WARNING]: ephemeral device '/dev/disk/cloud/azure_resource' did not appear after 120 seconds.
# /var/log/cloud-init.log
2021-12-01 19:35:50,481 - util.py[WARNING]: Failed partitioning operation
Device /dev/disk/cloud/azure_resource did not exist and was not created with a udevadm settle.
2021-12-01 19:35:50,481 - util.py[DEBUG]: Failed partitioning operation
Device /dev/disk/cloud/azure_resource did not exist and was not created with a udevadm settle.
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/cloudinit/config/cc_disk_setup.py", line 141, in handle
func=mkpart, args=(disk, definition))
File "/usr/lib/python3.6/site-packages/cloudinit/util.py", line 2292, in log_time
ret = func(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/cloudinit/config/cc_disk_setup.py", line 780, in mkpart
assert_and_settle_device(device)
File "/usr/lib/python3.6/site-packages/cloudinit/config/cc_disk_setup.py", line
Orsak
Under starten av den virtuella datorn kör cloud-initDataSourceAzure.py-filen i Python och väntar sedan på att de lokala tillfälliga diskarna (/mnt/azure_resource) ska bli tillgängliga. Eftersom du använder en virtuell Azure-dator som inte har lokala tillfälliga diskar måste cloud-init vänta tills processen överskrider tidsgränsen. Tidsgränsen för tillfälliga diskar är 120 sekunder innan startprocessen fortsätter.
Lösning
Uppgradera din kopia av cloud-init till version 21.2 eller en senare version.
Lösning
Om du inte kan uppgradera cloud-init till version 21.2 eller en senare version kan du redigera DataSourceAzure.py-filen för att förkorta tidsgränsvärdet. I följande exempel ändras tidsgränsvärdet från 120 sekunder till två sekunder:
sudo sed -i 's/maxwait=120/maxwait=2/g' $(locate DataSourceAzure.py)
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Support för Azure-communityn.