Инцидент с блочным хранилищем на AMS-1
8 декабря в 09:45 компания Scaleway столкнулась с инцидентом в зоне доступности NL-AMS-1, который повлиял на клиентов, использующих продукты в этой зоне доступности. Проблема была решена к 14:10 того же дня. Вот важная информация о том, что произошло.
Продукт Block Storage столкнулся с проблемой, и в результате другие продукты на его основе (например, Instances, Kapsule, Load Balancer, Managed Databases и т. д.) столкнулись либо с высокой задержкой, либо с недоступностью.
Глобальная недоступность: 2 часа 40 минут.
Влияние на платформу (задержка, недоступность и т. д.): 5 часов 20 минут.
Контекст
Наш продукт блочного хранилища основан на программно определяемом хранилище Ceph, смешанном с нашими собственными API для управления всеми запросами продуктов.
Эти API выполняют две основные роли: управление нашей собственной инфраструктурой и повышение ее безопасности.
Мы выполняли критическое обновление безопасности нашего кластера блочного хранилища NL-AMS-1, чтобы укрепить его перед периодом «заморозки».
Эти обновления уже были выполнены на нескольких наших кластерах Ceph (а также на предварительном и рабочем) без какого-либо воздействия, что побудило нас выполнить это обновление в кластере NL-AMS-1. Это обновление оказалось корнем проблемы.
Хронология инцидента
Мы запланировали вмешательство в нашу платформу блочного хранилища в NL-AMS-1 в четверг, 7 декабря, в 15:00. Это вмешательство было предназначено для обновления нашей версии Ceph с использованием более свежих обновлений безопасности.
Мы начали с обновления первого сервера, который контролировали в течение 2 часов и не обнаружили ошибок. Затем мы начали обновлять все остальные серверы, на что у нас ушла целая ночь. Мы продолжали следить за ним рано утром, без каких-либо проблем.
В пятницу, 8 декабря, в 9:40 утра мы начали наблюдать увеличение нагрузки на кластер с незначительным влиянием на время отклика, с нашей точки зрения. Ситуация была стабильной, и, с нашей точки зрения, воздействие становилось меньше.
В 11 утра мы были предупреждены о высоких задержках в нашем блочном хранилище и немедленно создали серьезный инцидент. Публичный статус был создан в 11:36 из-за некоторой задержки внутренней связи.
С тех пор мы столкнулись с несколькими сбоями на наших серверах. У всех них заканчивалась память, хотя глобальная нагрузка на платформу была такой же, как и в последние несколько дней.
Наши специалисты выявили проблему в 11:45. В нашем кластере были установлены параметры настройки, отличные от настроек по умолчанию.
Применение исправлений требовало времени и требовало постепенного их применения на всех серверах.
В 13:40 блочное хранилище было восстановлено и работало стабильно. Произошло незначительное влияние на производительность из-за балансировки нагрузки из-за применения обновленных настроек.
После этого все наши команды (Instance, DB, K8S и т. д.) работали над тем, чтобы вернуть свои услуги.
Они также до конца дня продолжали следить за нашей инфраструктурой, выполняя действия, обеспечивающие ее правильное функционирование.
В течение всех выходных мы внимательно следили за нашей инфраструктурой блочного хранилища, чтобы убедиться в отсутствии дальнейших проблем.
Основная причина и решение проблемы
В ходе расследования мы быстро пришли к выводу, что проблема не связана с обновлением. Процедура уже применялась на нашем промежуточном кластере и других производствах АЗ без каких-либо побочных эффектов.
Мы обнаружили, что в нашем кластере Ceph была неверная конфигурация, которая не применялась ни в одной другой зоне доступности.
Команды, ответственные за эту операцию, также не знали об этих изменениях (это нужно сделать с помощью нашего инструмента автоматической настройки). Эта тема все еще находится в стадии изучения и приведет к многочисленным улучшениям наших процессов управления.
Кроме того, во время проблем с этим поколением блочного хранилища возникли некоторые проблемы, связанные с аппаратным обеспечением, которые замедлили время разрешения.
Наши новые предложения с низкой задержкой, основанные на оборудовании нового поколения, не пострадали во время этого инцидента и не показали простоев.
Заключение
Блочное хранилище является ключевым продуктом нашей экосистемы и должно быть устойчивым. Мы все работаем над повышением его отказоустойчивости и будем продолжать это делать (процессы автоматизации управления нашими платформами, поддержание нашей инфраструктуры в актуальном состоянии), а также наши процессы связи в случае инцидента. Этот инцидент поможет нам улучшить это.
Также обратите внимание, что у нас есть новые предложения (с низкой задержкой), разработанные с использованием нового оборудования и еще более высокой отказоустойчивости. В настоящее время они находятся в публичной бета-версии.
Эти предложения с низкой задержкой обеспечивают два уровня производительности (IOPS 5K и 15K) и улучшенное время отклика.
Они доступны через наш новый API/путешествие пользователя/инструменты разработки и уже совместимы с Instance, Kapsule (только в новых кластерах, с определенной версией CSI — ссылка на документ?) и DBaaS (предложения с оптимизированной стоимостью). Доступные AZ на данный момент ограничены, но в ближайшие месяцы появятся новые: FR-PAR-1, FR-PAR-2, NL-AMS-1, NL-AMS-3, PL-WAW-3.
Вы уже можете попробовать их и воспользоваться скидкой 50% во время публичного бета-тестирования (уже действует до 1 февраля).