Вице-президент по инфраструктуре Facebook Сантош Жанардан (Santosh Janardhan) в официальном блоге компании опубликовал подробный отчёт о причинах глобального сбоя, случившегося 4 октября, парализовавшего на 6 часов работу сразу трёх платформ: Facebook, Instagram, WhatsApp.
По его словам, сбой был вызван системой, которая управляет пропускной способностью глобальной магистральной сети компании. Магистраль - это сеть, построенная Facebook для соединения всех вычислительных мощностей, состоящая из десятков тысяч миль оптоволоконных кабелей, пересекающих земной шар и связывающих все центры обработки данных Facebook.
“Эти центры обработки данных бывают разных форм. Некоторые из них представляют собой массивные здания, в которых размещаются миллионы машин, хранящих данные и выполняющих тяжелые вычисления, которые поддерживают работу наших платформ, а другие представляют собой небольшие объекты, которые соединяют нашу магистральную сеть с более мировой сетью и людьми, использующими наши платформы.
Когда вы открываете одно из наших приложений и публикуете свой пост или пишите комментарии, приложение отправляет запрос с вашего устройства на ближайший объект, который затем напрямую передается по нашей магистральной сети в более крупный центр обработки данных. Здесь информация, необходимая вашему приложению, извлекается, обрабатывается и отправляется обратно по сети на ваш телефон.
Трафик данных между всеми этими вычислительными средствами управляется маршрутизаторами, которые определяют, куда отправлять все входящие и исходящие данные. И в ходе обширной повседневной работы по обслуживанию этой инфраструктуры нашим инженерам часто приходится отключать часть магистрали для обслуживания - например, ремонта оптоволоконной линии, увеличения пропускной способности или обновления программного обеспечения на самом маршрутизаторе» - поясняет Жанардан.
Это и стало причиной недавнего сбоя. Во время одной из плановых работ по техническому обслуживанию была дана команда с намерением оценить доступность глобальной магистральной пропускной способности, которая непреднамеренно отключила все соединения в магистральной сети компании, фактически отключив центры обработки данных Facebook во всем мире. Системы компании предназначены для аудита таких команд, чтобы предотвратить подобные ошибки, но ошибка в этом инструменте аудита помешала ему правильно остановить команду. Это изменение привело к полному отключению серверных подключений между центрами обработки данных Facebook и мировым Интернетом.
И эта полная потеря связи вызвала вторую проблему, которая только усугубила ситуацию. Одна из задач инфраструктуры сервиса Facebook - это отвечать на запросы DNS. DNS - это адресная книга в Интернете, позволяющая преобразовывать простые веб-имена, которые пользователи вводят в браузеры, в определенные IP-адреса серверов. На эти запросы отвечают серверы Facebook, которые сами занимают хорошо известные IP-адреса, которые, в свою очередь, объявляются остальной части Интернета через другой протокол, называемый протоколом пограничного шлюза (BGP).
“Чтобы обеспечить надежную работу, наши DNS-серверы отключают обращения от BGP, если они сами не могут связаться с нашими центрами обработки данных, поскольку это указывает на нездоровое сетевое соединение. В результате недавнего сбоя вся магистраль была отключена, в результате чего эти местоположения объявили себя нездоровыми и отозвали эти обращения BGP. В результате наши DNS-серверы стали недоступны, хотя они все еще работали. В результате остальной Интернет не мог найти наши серверы. Все это произошло очень быстро.
И пока наши инженеры работали над выяснением того, что происходит и почему, они столкнулись с двумя большими препятствиями: во-первых, невозможно было получить доступ к нашим центрам обработки данных с помощью наших обычных средств, потому что их сети вышли из строя, а во-вторых, полная потеря DNS сделала недоступными многие внутренние инструменты, которые мы обычно используем для расследования и устранения подобных сбоев.
Наш основной и внеполосный доступ к сети был отключен, поэтому мы отправили инженеров в центры обработки данных, чтобы они отладили проблему и перезапустили системы. Но на это потребовалось время, потому что эти объекты спроектированы с учетом высоких уровней физической и системной безопасности. В них сложно попасть, а как только вы окажетесь внутри, оборудование и маршрутизаторы будет сложно модифицировать, даже если у вас есть физический доступ к ним. Таким образом, потребовалось дополнительное время для активации протоколов безопасного доступа, необходимых для привлечения людей к работе на серверах. Только тогда мы смогли определить проблему и включить нашу магистраль» - продолжает описание ситуации спикер.
В конце концов, работа сервисов восстановилась относительно быстро, без каких-либо дальнейших сбоев в масштабах всей системы. В компании проделали большую работу по усилению защиты систем для предотвращения несанкционированного доступа.