Коротко. В аварии важнее не скорость, а порядок: сначала читаем факты, потом меняем. Большинство «катастроф» — это незапущенные службы, уехавшие часы, потерянный маршрут или порт не в той VLAN, а не потеря данных. Мы начинаем с read-only проверок и не переустанавливаем систему, пока не понятна причина.
1. Типовые картины
| Что видит заказчик | Что это может быть | Первое действие |
|---|---|---|
Узел красный / NOTCONFIGURED |
Неприменённое изменение, падение configure, остаток ручного процесса |
Проверить задачи и журнал службы |
| GUI «не принимает пароль» | Модель ждёт mongod (латентность ~30 с), а не пароль | Замерить curl модели с mTLS и время |
S3 403 всем клиентам, GUI зелёный |
Часы ноды уехали (SigV4 ±15 мин) | date -u, ntpq -p, сверка с соседями |
S3 507 Storage is full при свободных дисках |
Политика DSS не влезает в N |
w+s ≤ N, барометр, выбранная политика |
S3 AccessDenied при валидных ключах |
Нет resource policy | Проверить IAM/resource policy |
MACHINE_DOWN при живой ноде |
Разорвано storage-кольцо (VLAN/порт) | Ping по storage-сети со всех нод |
| После пропадания питания «всё встало» | mongod не поднялись, нет маршрута, NTP | BMC → mongod → модель → сеть → NTP |
Лента UNAVAILABLE / SAFETY=0 |
Адрес коннектора, кассеты, штрихкоды | Проверить коннектор и каталог кассет |
2. Порядок работы
2.1 Сначала чтение (без изменений)
- Модель: статус машин/приложений, неприменённые изменения, латентность API.
- События: severity,
LIVE,occurrences,details. - Задачи:
FAILURE,REVOKED, залипшие. - Журналы служб (не общий журнал):
scalerd,haproxy,samurai,nginx,mongod. - Железо: SMART,
mdstat,ipmitool,psпо RSS. - Сеть: ping по storage-сети, маршруты, VLAN на свиче по MAC.
2.2 Гипотеза → проверка
Каждая версия проверяется отдельно; совпадение по времени — не доказательство причины. Если причина не доказана — так и пишем в отчёте.
2.3 Штатное решение
- Через GUI/CLI/Model API/плейбук продукта.
- Файлы продукта — только значениями из модели, с бэкапом вне каталога продукта.
- Деструктивные шаги — с бэкапом и отмашкой.
2.4 Проверка и наблюдение
- Конкретные коды/значения (
200,307,ONLINE,barometer: ok). - Наблюдение 1–24 часа: не вернулось ли событие.
3. Чего не делать
- Не переустанавливать систему до диагностики.
- Не менять пароли/учётки, когда модель просто медленная.
- Не форматировать диски «чтобы пересоздать».
- Не править
iptables/конфиги руками «навсегда» — продукт перерисует. - Не удалять события/кассеты, чтобы «стало зелёным».
- Не запускать
bash -lcв скриптах на нодах (login-shell ждёт stdin).
4. После аварии питания: порядок
- BMC: проверить доступ; при необходимости сбросить пароль штатной IPMI-командой.
- mongod: проверить, что на каждой ноде три процесса (27017/27018/27019); поднять из конфига продукта, если не поднялись.
- Модель: замерить латентность; дождаться
PRIMARY + 2×SECONDARY. - Сеть: default route на всех нодах, storage-кольцо.
- NTP: синхронизация и расхождение часов.
- Приложения:
marvinservices, приложенияONLINE. - S3:
307на фронте, round-trip.
5. Что получает заказчик
- Восстановленная работоспособность.
- Разбор: что было, почему, что сделано, чем подтверждено.
- Что осталось (временные меры/наблюдение).
- Профилактика: что настроить, чтобы не повторилось.
6. Срочность
- Удалённая диагностика — в рабочий день; аварийные окна — по согласованию.
- Для продуктивных систем — только с согласованным доступом и окном.
- Если нужен вендор — помогаем собрать факты и эскалировать.
Частые вопросы
Узел красный или NOTCONFIGURED — что делать?
Сначала прочитать, а не перезагружать: посмотреть задачи и журнал службы, неприменённые изменения, не
остался ли висеть ручной процесс, который держит блокировку. Причина часто в неприменённом изменении
или упавшем configure, а не в железе. Переустановка до диагностики стирает следы причины — поэтому
она последняя, а не первая.
Можно ли обойтись без переустановки? В большинстве картин, которые мы разбирали, — да. Уехавшие часы, потерянный default route, разорванное storage-кольцо, не поднявшиеся mongod, политика DSS, не влезающая в число блоксторов, лечатся штатным путём. Переустановка — крайняя мера, когда причина доказана и других вариантов не осталось.
Сколько занимает восстановление? Зависит от причины, поэтому сроков «за N минут» не обещаем. Чтение фактов и постановка гипотезы — быстрые; дальше проверка каждой версии и штатное решение. После аварии питания порядок фиксированный: BMC, mongod, модель, сеть, NTP, приложения, S3. После исправления наблюдаем от часа до суток: не вернулось ли событие.
Что если нет бэкапа модели? Работаем от фактов: состояние железа, диски, сеть, конфигурация служб, то, что сохранилось в самой модели продукта. Это дольше и не всё гарантирует — политики, IAM и реестр кассет придётся сверять вручную. Поэтому снимок конфигурации и модели — обязательный пункт регламента, а не «когда дойдут руки».
Как не повторить аварию? Профилактика входит в отчёт: выровнять время и NTP, зафиксировать default route, проверить резервирование питания и storage-кольцо по VLAN, привести политику DSS в соответствие числу блоксторов, поставить мониторинг на события и задачи, а не на «зелёный GUI». Плюс регламент и инструкция, что делать первым.