Поделиться через


Виртуальная машина с поддержкой cloud-init занимает много времени для запуска

Область применения: ✔️ виртуальные машины Linux

В этой статье описывается, как устранить непредвиденные задержки запуска на виртуальной машине Azure, которая использует функцию cloud-init. Эта задержка может привести к тому, что развертывание виртуальной машины Azure с поддержкой облака может потребовать более двух минут (120 секунд) для запуска.

Симптомы

Запуск виртуальной машины Azure занимает более двух минут, чтобы завершить работу с продуктами виртуальных машин, которые не предоставляют локальные временные диски, такие как следующие продукты:

Если вы проверяете файлы журнала, такие как /var/log/cloud-init.log и /var/log/waagent.log (этап инициализации), вы увидите выходные данные, похожие на следующий пример:

# 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 

Причина

Во время запуска виртуальной машины cloud-init запускает файл DataSourceAzure.py в Python, а затем ожидает, пока локальные временные диски (/mnt/azure_resource) становятся доступными. Так как вы используете виртуальную машину Azure, которая не имеет локальных временных дисков, cloud-init должна ожидать истечения времени ожидания процесса. Интервал времени ожидания для временных дисков составляет 120 секунд до продолжения процесса запуска.

Решение

Обновите копию cloud-init до версии 21.2 или более поздней версии.

Обходное решение

Если вы не можете обновить cloud-init до версии 21.2 или более поздней версии, можно изменить файл DataSourceAzure.py , чтобы сократить значение времени ожидания. В следующем примере изменяется значение времени ожидания от 120 секунд до двух секунд:

sudo sed -i 's/maxwait=120/maxwait=2/g' $(locate DataSourceAzure.py)

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.