Неожиданное завершение работы виртуальных машин Azure во время автоматического масштабирования
Сегодня у нас возникла проблема с виртуальными машинами Azure, когда одна виртуальная машина из набора доступности 2 просто перестала отвечать. Через несколько минут мы заметили, что машина была выключена, а другая виртуальная машина в комплекте не была включена (что должно быть в порядке, поскольку это не отказоустойчивость). Мы взглянули на мониторинг виртуальной машины, и не было ни одного журнала, сообщающего нам, что было какое-то время простоя. Единственное, что мы нашли - это 2 странных журнала в Management Services - журналы операций.
- 12.11.2013 22:12:02 Действие AutoscaleAction успешно завершено VirtualMachinesAvailabilitySet:xyz Autoscale
- 12.11.2013 21:36:56 Действие AutoscaleAction успешно завершено VirtualMachinesAvailabilitySet:xyz Autoscale
Первый был со следующими деталями:
Описание: механизм автоматического масштабирования, пытающийся масштабировать ресурс 'xyz' с 0 экземпляров до 1 экземпляра.
LastScaleActionTime: 20131106T173020Z
NewInstancesCount: 1
OldInstancesCount: 0
Второй:
Механизм автоматического масштабирования пытается масштабировать ресурс 'xyz' с количества экземпляров до количества экземпляров.
LastScaleActionTime: 20131112T203656Z
NewInstancesCount: 1
OldInstancesCount: 2
Кто-нибудь знает, что могло случиться?
ОБНОВИТЬ
Служба поддержки Azure предоставила мне отзыв, и они объяснили, что машины не работают из-за обновления хоста.
С уважением
2 ответа
Обе мои машины вышли из строя из-за обновления хоста и автоматического масштабирования, установленного от 1 до 2 машин в зависимости от загрузки процессора. Итак, я обнаружил, что AutoScaling не будет включать вторую машину при обновлении хоста (что может быть очень полезно и сделать мои приложения онлайн).
Я думаю, что это объяснит проблему экземпляров 0 из 1, поэтому не используйте AutoScaling с вышеуказанными настройками, чтобы получить HA.
С уважением
Всякий раз, когда вы используете автомасштабирование, вы устанавливаете диапазон экземпляров, который сообщает Azure минимальное и максимальное количество виртуальных машин, которые вы хотите запустить в данный момент времени. В этом случае, похоже, вы установили минимум равным 1. Это объясняет, почему, когда обе виртуальные машины были остановлены, он включал одну из них.
Кроме того, масштаб от 2 до 1 был вероятен, потому что нагрузка на вашу виртуальную машину была низкой (при условии, что вы масштабируете по ЦП). Если средний ЦП останется ниже установленной вами цели (по умолчанию 60%), он будет уменьшаться, пока не достигнет минимума (в данном случае 1).