Простой в работе Azure корпорация Microsoft возместила клиентам дополнительным временем |
Поскольку некоторые сервисы Azure продолжали работать, за них дополнительное время не предоставляется, указали представители Microsoft в блоге Azure.
Проблема была вызвана стечением двух обстоятельств: первое, 29 февраля бывает раз в четыре года; второе, когда Azure инициализирует виртуальные машины для приложений клиентов, происходит замена цифрового сертификатов, и им назначается срок действия один год. При выдаче сертификатов, начиная с 16:00 28 февраля, им назначался срок действия до несуществующей даты 29 февраля 2013 года, в результате они оказались недействительными.
После ошибки произошла серия повторных попыток, которые тоже провалились. В итоге система пришла к выводу о сбое аппаратного обеспечения, на котором работают виртуальные машины. Начались попытки перенести машины с «неработоспособных» на другие серверы в том же кластере Azure, состоящем примерно из тысячи физических систем.
Перенесеные виртуальные машины не смогли инициализироваться по той же причине. Постепенно все больше оборудования оказывалось «неработоспособным», пока не был достигнут порог, после которого прекратились все попытки «оживить» виртуальные машины в пострадавшем кластере. Согласно блогу, благодаря этому кластеры смогли продолжить обслуживание, но со сниженным уровнем.
Кроме того, в облаке была отключена платформа управления обслуживанием клиентов, в результате чего у них пропала возможность добавления приложений и наращивания мощности для действующих. Если бы эти функции продолжали работать, проблема бы обострилась, так как это потребовало бы запуска новых виртуальных машин. «На отключение платформы управления обслуживанием мы пошли впервые», — говорится в блоге. Работающие приложения решено было оставить.
На устранение ошибки во всех, кроме семи, кластерах Azure ушло 13 часов 23 минут. Упомянутые семь находились в процессе обновления программного обеспечения, поэтому ими пришлось заниматься отдельно. Админы оказались перед выбором, что делать с хостовыми и гостевыми агентскими программами, которые обменивались недействительными сертификатами — обновлять до новых исправленных версий или откатить на старые версии, а затем исправить?
Решено было пойти по последнему пути, но это не сработало, так как не была возвращена предыдущая версия плагина, отвечающего за сетевую настройку виртуальных машин. Новая версия оказалась несовместимой со старым агентским ПО. В результате все виртуальные машины в этих семи кластерах оказались отрезанными от сети.
В них работали серверы контроля доступа и сервисной шины Azure. Полностью восстановить их работу удалось лишь к 2:15 1 марта, говорится в блоге.
Microsoft принимает ряд мер для предотвращения аналогичных сбоев в будущем. Во-первых, будет проведена проверка всего программного обеспечения на ошибки, связанные с учетом времени. Во-вторых, будет изменен механизм изоляции сбоев, чтобы в подобной ситуации система не считала, что произошел аппаратный сбой. В-третьих, уровень обслуживания клиентов отныне будет уменьшаться постепенно вместо полного отключения платформы управления. Благодаря этому можно будет, например, блокировать создание новых виртуальных машин или расширение действующих, но при этом можно будет продолжать управлять имеющимися.
Проводится обновление систем распознавания проблем, направленное на ускорение их обнаружения и устранения. Модернизируется информационная панель клиента, чтобы при кризисах она сохраняла работоспособность.
Поскольку телефонные линии поддержки в период сбоя были перегружены, и клиентам приходилось подолгу ждать ответа, в корпорации также доукомплектовывают штат службы поддержки и собираются расширить использование блогов, Twitter и Facebook для уведомления о возникающих проблемах. Помимо этого, разрабатываются программные инструменты, которые позволят улучшить информирование клиентов о ходе работ по восстановлению после аварий.