Короткий ответ
Однозначного решения без дополнительного контекста нет: можно либо пересмотреть целевое RTO как нереалистичное для текущей архитектуры (бизнес может быть не готов платить за его достижение), либо инвестировать в архитектурные изменения (горячая/тёплая реплика, партиционирование, параллельное восстановление, более быстрое хранилище для бэкапов) — выбор зависит от бизнес-стоимости простоя, бюджета на резервирование и темпов роста объёма данных.
Как это работает подробнее
время восстановления холодного бэкапа такого объёма определяется пропускной способностью хранилища бэкапов, сети между хранилищем и местом восстановления, и тем, восстанавливается ли база последовательно или параллельно (по партициям/шардам); простое "подождать дольше" не решает проблему, если RTO = 2 часа задано бизнесом как реальное ограничение (например, из-за SLA с клиентами или регуляторных требований).
Компромисс: нужно представить бизнесу явный выбор с цифрами: (а) принять текущее RTO ~10 часов и переоценить, действительно ли 2 часа необходимы для всех сценариев отказа (возможно, для частичного отказа, а не полной потери 40 ТБ, более быстрые пути восстановления уже существуют), (б) инвестировать в тёплый резерв с постоянной стоимостью инфраструктуры, (в) партиционировать критичные данные и восстанавливать их в первую очередь, принимая более долгое восстановление некритичной части — выбор зависит от того, насколько бизнес готов платить (деньгами или инженерным временем) за каждый сокращённый час RTO.
Пример / кейс
Ожидаемое поведение: решение должно быть принято совместно с бизнес-владельцами на основе представленных цифр стоимости и времени для каждого варианта, а не инженерами в одностороннем порядке и не оставлено как нерешённый технический риск без явного решения.
Пример кода
Текущее: холодный бэкап 40 ТБ, восстановление ~10 часов (ограничено пропускной способностью сети 1 Гбит/с).
Вариант А: тёплая реплика в другом регионе — RTO ~10 минут, доп. стоимость: постоянный standby-инстанс + репликация.
Вариант B: партиционирование — критичные 5 ТБ (активные клиенты) восстанавливаются первыми за ~1.5 часа,
остальные 35 ТБ (архивные данные) — в фоне за дополнительные 8 часов, сервис частично работает раньше.Что использовать на практике
- Практический подход. Варианты сокращения RTO включают: переход на тёплый/горячий резерв (постоянно работающая реплика, готовая принять трафик, что сокращает RTO до минут, но стоит постоянных ресурсов), партиционирование данных так, чтобы восстанавливать/переключать только критичную для первого часа часть данных (остальное восстанавливается параллельно в фоне), или ускорение самого процесса восстановления (более быстрое хранилище, параллельное восстановление по шардам, предварительно прогретые реплики бэкапа). У каждого варианта разная стоимость и сложность эксплуатации.
Подводные камни
- Частые ошибки. Пытаться "ускорить" холодное восстановление косметическими средствами (чуть более быстрый диск) без фундаментального пересмотра архитектуры, когда разрыв в разы (10 часов vs 2 часа) требует именно архитектурного решения; соглашаться на бизнес-требование RTO без того, чтобы явно показать стоимость его достижения, из-за чего бизнес не может принять информированное решение; закладывать решение (например, горячую реплику) без оценки его постоянной стоимости и операционной сложности поддержания consistency.