Неожиданный перезапуск виртуальной машины Windows Azure (Iaas)

У меня есть несколько виртуальных машин в Windows Azure (Iaas), на которых размещен веб-сайт. Существует несколько интерфейсных виртуальных машин с балансировкой нагрузки, которые подключаются к одной виртуальной машине с помощью SQL Express. Это работает хорошо.

Тем не мение!

Я получаю случайные перезапуски на всех виртуальных машинах. Что касается интерфейсных виртуальных машин (с IIS), поскольку они сбалансированы по нагрузке, сайт не затрагивается, и балансировщик нагрузки настраивается соответствующим образом. Но когда виртуальная машина, на которой размещена база данных, перезапускается, сайт не работает до тех пор, пока БД снова не будет работать. Загрузка занимает <3 минут, но это все равно недопустимо, если это происходит достаточно часто. Хотя перезапуски происходят относительно редко (2 перезапуска в месяц на виртуальную машину), иногда мы получаем неделю с 4 перезапусками на виртуальную машину, что сильно раздражает. Не все виртуальные машины перезагружаются так часто, и я не могу понять закономерность. Перезапуски также бывают неожиданными (перезапуски типа «потяните за кабель питания», а не выключения). Датацентр находится в Западной Европе.

Microsoft подчеркивает, что SLA распространяется только на 2 виртуальных машины в наборе доступности, чего я не могу иметь для виртуальной машины базы данных (а корпоративная версия SQL стоит руки и три ноги). Кроме того, SQL Azure не подходит, поскольку приложение очень болтливое, а база данных SQL Azure регулировалась в часы пик (хотя она работает очень плавно с SQL Express на средней виртуальной машине!).

Мой вопрос (ы): нормально ли иметь такое количество перезапусков? Есть ли у других людей такая же проблема? Каков ваш опыт работы с такой средой в Azure? Что я могу сделать, чтобы минимизировать время простоя?

Спасибо всем!


person Gareth 'Kranzorg' Gauci    schedule 09.05.2013    source источник
comment
Я считаю, что этот вопрос по теме. Azure немного отличается, потому что конфигурация системы - это тип программирования в широком смысле, потому что Azure необходимо правильно настроить, чтобы любой код работал в нем.   -  person Jarvis    schedule 26.06.2013
comment
Определенно связано с программированием, поскольку большая часть этого зависит от кода!   -  person Andrew Harry    schedule 18.11.2013


Ответы (2)


Так много перезапусков - это нормально?

Да, это может произойти в конкретный месяц, вам нужно перевести SQL Server в режим высокой доступности, чтобы это действительно заработало.

Да, это стоит руки и ноги. ; (

Каков ваш опыт работы с такой средой в Azure? Некоторые месяцы действительно хороши, некоторые месяцы плохи, это зависит от вашего кластера и от того, в каком центре обработки данных вы находитесь. MS смешала диапазон нашего оборудования в этих центрах обработки данных. Это не означает, что они работают на старых ноутбуках в некоторых центрах обработки данных, но это означает, что, по моему опыту, новые центры обработки данных, как правило, имеют лучший комплект и, следовательно, меньше перезапускаются. То есть мы используем Восток США.

Что я могу сделать, чтобы минимизировать время простоя?

Высокая доступность со свидетелем - единственный способ предоставить вам доступность в виртуальной машине, и да, это стоит и рука, и ноги.

Другие серьезные варианты. Кэш-кеш. Вы должны использовать компьютерный кеш, лазурный кеш и попытаться минимизировать количество обращений к базе данных. Это может уменьшить количество болтливых приложений и позволить вам вернуться в SQL Azure, но может дать вам достаточно для восстановления после отказа.

Очереди Очереди помогут вам восстановить приложение и сообщат пользователю о том, что мы над этим работаем.

Используйте SQL Azure в качестве отработки отказа. Синхронизируйте данные с помощью SQL Azure Sync from Premise (не уверен, что это работает с Express) в SQL Azure и напишите в ваше приложение код, чтобы выявить ошибку подключения и переключиться при отказе.

Посмотрите на использование других частей Azure для частей вашего приложения, чтобы уменьшить количество вызовов, поступающих в SQL, т.е. можете ли вы перемещать данные в хранилище таблиц?

HTHS подскажет вам несколько идей.

person JamesKn    schedule 09.05.2013
comment
Хотя это подтверждает мои теории, это отстой. Виртуальные машины других провайдеров намного стабильнее. Однако я согласен с тем, что кэширование и возврат к SQL Azure кажется единственным способом! Спасибо! - person Gareth 'Kranzorg' Gauci; 10.05.2013

Службы инфраструктуры Windows Azure (IaaS) находятся в общедоступной версии (GA или production) всего около 3 недель, начиная с 16 апреля (см. Объявление здесь). До GA не существовало SLA, и вы могли бы увидеть более частые перезагрузки ОС, поскольку к ОС хоста все еще применялись различные исправления. Вы хотите сказать, что эта модель продолжалась с той же скоростью с 16 апреля?

Теперь, когда IaaS является общедоступной, я бы не ожидал 4 перезапуска за неделю. Тем не менее: есть несколько причин, по которым вы увидите перезагрузку:

  • Сбой оборудования хоста (это приводит к отключению всех гостевых ОС, работающих на этом хосте)
  • Обновление программного обеспечения хоста (и только если требуется перезапуск ОС хоста). Перезагрузки ОС хоста не должны происходить с той частотой, которую вы видите.
  • Проблемы с гостевой ОС. Вот где вещи отходят от PaaS (облачные службы веб-ролей / рабочих ролей). В IaaS обслуживание гостевых ОС со стороны Azure не выполняется; это все в ваших руках. Возможна перезагрузка при автоматической установке обновлений Windows. Возможно, вы столкнулись с проблемой на уровне приложения, из-за которой устройство перестало отвечать на запросы в течение длительного периода времени, в результате чего контроллер фабрики Azure перезагружал ваш ящик, считая его неисправным. И ... ваше приложение могло каким-то образом вывести из строя коробку.

Если вы исключили ошибку приложения и уверены, что виртуальные машины находятся в хорошем состоянии на момент перезагрузки, вам может потребоваться открыть заявку в службу поддержки Microsoft, чтобы помочь в дальнейшей диагностике проблемы.

person David Makogon    schedule 09.05.2013
comment
Я создал заявку в службу поддержки MS, и они подтвердили, что у Azure был отказавший узел. К сожалению, они исследовали только один перезапуск, но я подозреваю, что это применимо ко всем. - person Gareth 'Kranzorg' Gauci; 10.05.2013
comment
И автоматическое обновление windows отключено;) - person Gareth 'Kranzorg' Gauci; 10.05.2013