Если у вас дома отключилось электричество, скорее всего, с вашим компьютером ничего серьезного не произойдет. Конечно, может перегореть блок питания или накрыться диск – это для вас неприятно, но не смертельно.
Но что произойдет, если в крупном дата-центре, обслуживающем сотни тысяч пользователей, отключится электричество? 24 февраля в дата-центре, где он работал Google App Engine , электричество пропало.
App Engine был недоступен более двух часов.
Полный отчет об этом происшествии можно найти читать в списке рассылки , а перевод хронологии провала и некоторых выводов читайте ниже.
Раннее утро.
7:48 .
Графики мониторинга начинают показывать, что в основном дата-центре есть некоторые проблемы и количество ошибок неуклонно растет. Примерно в то же время в списке рассылки появились сообщения от пользователей о проблемах с доступом к App Engine. 7:53 .
Инженеры по надежности объекта отправляют сообщение большому количеству дежурных инженеров о том, что в главном центре обработки данных отключено питание.
В дата-центрах на такой случай есть резервные генераторы, но в этом случае примерно 25% машин в дата-центре не получили вовремя резервное питание и вышли из строя.
В это время наш дежурный инженер получил сигнал на пейджер.
8:01 .
К этому времени дежурный инженер определил масштаб неисправности и установил, что App Engine не работает. Согласно процедуре, он предупредил менеджеров по продуктам и технических руководителей, чтобы они проинформировали пользователей о сбое.
Через несколько минут в списке рассылки появляется первое сообщение от команды App Engine («Мы изучаем эту проблему»).
8:22 .
После анализа мы устанавливаем, что хотя электроснабжение дата-центра было восстановлено, многие машины не пережили отключение и не способны обслуживать трафик.
В частности, было установлено, что кластеры GFS и Bigtable находятся в неисправном состоянии из-за потери большого количества машин и поэтому Datastore не может использоваться в основном дата-центре.
Команда дежурных инженеров обсуждает экстренный переезд в альтернативный центр обработки данных.
Принимается решение о проведении аварийных работ по порядку действий при внезапном отключении электроэнергии.
8:36 .
Команда App Engine отправляет команде дополнительные сообщения о сбоях.
appengine-downtime-уведомить и дальше Сайт статуса App Engine .
8:40 .
Главный дежурный инженер обнаруживает два противоречивых набора процедур.
Это стало результатом недавнего изменения операционных процессов в связи с переездом хранилища данных.
Обсуждение с другими дежурными инженерами не привело к единому мнению, и инженеры пытаются установить контакт с теми, кто отвечал за изменение процедур для разрешения ситуации.
8:44 .
Пока все пытаются разобраться, какой аварийный порядок действий правильный, дежурный инженер пытается перевести трафик только для чтения в альтернативный дата-центр.
Трафик был передан, но из-за непредвиденной проблемы с настройкой этой процедуры она работает неправильно.
9:08 .
Различные инженеры диагностируют проблемы с трафиком только для чтения в альтернативном дата-центре.
Однако тем временем главный дежурный инженер получает данные, которые заставляют его полагать, что главный дата-центр восстановился и может продолжать работать.
Однако у инженера не было четких инструкций по принятию этого решения, которые могли бы подсказать ему, что восстановление на данный момент маловероятно.
В попытке восстановить обслуживание трафик перенаправляется обратно в основной центр обработки данных, в то время как другие инженеры продолжают исследовать проблему трафика только для чтения в альтернативном центре обработки данных.
9:18 .
Главный дежурный инженер определяет, что основной дата-центр не восстановился и не может обслуживать трафик.
В этот момент дежурным инженерам ясно, что сигнал был ложным, основной дата-центр все еще неработоспособен и им нужно сосредоточиться на альтернативном и аварийном порядке.
9:35 .
Устанавливается контакт с инженером, знакомым с порядком действий в аварийной ситуации, и он начинает управлять процессом.
Трафик передается на альтернативный DC сначала в режиме только для чтения.
9:48 .
Обслуживание внешних пользователей с альтернативного ДЦ начинается в режиме «только чтение».
Приложения, которые корректно работают с периодами только для чтения, на этом этапе должны работать корректно, хотя и с ограниченной функциональностью.
9:53 .
После консультации, которая теперь онлайн, с соответствующим инженером, правильная документация аварийной процедуры уточняется и подтверждается и готова к использованию дежурным инженером.
Начинается фактическая процедура экстренной передачи чтения/записи.
10:09 .
Экстренная процедура завершается без каких-либо проблем.
Служба трафика восстанавливается в нормальном режиме чтения и записи.
На этом этапе App Engine считается работающим.
10:19 .
В список уведомлений appengine-downtime-notify отправляется сообщение, указывающее, что AppEngine работает в обычном режиме.
Вы можете выдохнуть.
Как завещал великий Иоиль, хватит говорить о резервных копиях , поговорим о восстановлениях.
Когда случается беда, вам нужно, чтобы множество шестерен работали вместе.
Во-первых, ваша система мониторинга (Что? Вы не знаете, что такое система мониторинга? Тогда вам, вероятно, не придется думать об остальных передачах) должна уведомить вас через несколько минут после начала неисправности, а не через две недели в виде удивленных писем пользователей.
Во-вторых, у вас должны быть свободные мощности.
В-третьих, вы должны точно знать или иметь точные инструкции, как использовать эти резервные мощности.
Если бы у команды App Engine был один (правильный) комплект документации, сбой продлился бы всего 20 минут вместо двух часов.
Однако, на мой взгляд, App Engine хорошо справился с проблемой.
Представьте себя на месте инженера, сообщение которого появляется на пейджере на рассвете.
«Доброе утро, друг! Сейчас ваша компания теряет сотни долларов в деньгах и бог знает сколько в репутации.
И знаете, это ваша проблема.
Удачи!» Теги: #Google #Google App Engine #центр обработки данных #appengine #Google App Engine
-
Раздел Обзора
19 Oct, 24 -
Не Все Камеры Одинаковы
19 Oct, 24 -
Windows Mobile 6.5 — Виджеты Windows Mobile
19 Oct, 24