Резервная копия узла и восстановление

Backup and recovery
Пять каталогов — и остановка на время восстановления

Руководство перечисляет пять каталогов, которые составляют восстановимое состояние узла: конфигурация, внутреннее состояние, журналы, спул и дампы аварий. Пути даны как умолчания и в конкретной установке могут отличаться.

Восстановление устроено просто и грубо: остановить MTA, вернуть каталоги на место, запустить. Способа восстановиться на ходу руководство не предлагает.

Что стоит за каждым каталогом. Конфигурация — это настройка и секреты, её потеря обратима, если файл собирается заново. Спул — письма, ещё не отправленные: его потеря означает потерю писем. Внутреннее состояние — то, что MTA помнит между запусками. Журналы и дампы нужны для разбора, а не для работы.

Порядок каталогов в списке — не порядок важности. Конфигурацию можно собрать заново, спул — нет.

Главная ловушка — копировать спул на ходу. Это каталог, куда MTA пишет прямо сейчас: копия, снятая с работающего узла, почти наверняка захватит письмо в середине записи. При восстановлении такая копия даст либо повреждённые письма, либо отказ MTA на них. Копия спула имеет смысл только со остановленного узла или через мгновенный снимок тома.
Что делает Хаб. 🔴 Резервных копий узлов не делает вовсе — модуля бэкапов нет, он в планах.

Что есть: конфигурацию Хаб собирает сам, хранит её версии и умеет откатить на предыдущую. То есть конфигурация восстановима — из Хаба, а не из копии узла.

А вот спул не восстановим ничем. Письма, стоящие в очереди на узле, при потере машины теряются вместе с ней: у Хаба их нет, он знает только, что они были отданы узлу.

До появления модуля это означает простое правило: никаких разрушающих действий на боевом узле без проверки на стенде. Вернуть будет неоткуда.

Рекомендуемые значения

Что в каком каталоге и чем грозит потеря:

Каталог Что внутри Если потерять
конфигурация настройка, пароли, ключи подписи восстановимо из Хаба; ключи — если сохранены
внутреннее состояние то, что MTA помнит между запусками восстановимо, но узел «забудет» накопленное
спул письма, ещё не отправленные письма потеряны безвозвратно
журналы следы для разбора разбор прошлого станет невозможен
дампы аварий материал для вендора ничего для работы

Снимать копию с работающего узла можно только со снимка тома. Обычное копирование спула на ходу даёт негодную копию — MTA пишет в него в этот самый момент.

Ключи подписи стоит хранить отдельно от узла. Их потеря означает смену селектора и запись в DNS, а не восстановление; это самая дорогая часть конфигурации.

Разбор «чем грозит потеря» и правило про снимок тома наши. Из руководства здесь список пяти каталогов с путями для обеих платформ, порядок восстановления и оговорка, что пути даны как умолчания.
Пример в конфигурации
# снятие копии: конфигурация и состояние можно на ходу
tar czf /backup/pmta-etc.tgz /etc/pmta/
tar czf /backup/pmta-state.tgz /var/lib/pmta/
# спул — только со снимка тома или с остановленного узла# tar czf /backup/pmta-spool.tgz /var/spool/pmta
Выделенная строка закомментирована намеренно. Копия спула, снятая с работающего узла, захватит письмо в середине записи, и при восстановлении MTA на нём споткнётся.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается3 ошибки▶

Копируют спул на работающем узле

§ 1.8

Чем чреватоMTA пишет в спул прямо в момент копирования. Копия почти наверняка захватит письмо в середине записи, и при восстановлении даст либо повреждённые письма, либо отказ.
Как заметитьВосстановленный узел стартует, но часть писем не разбирается, и в журнале ошибки чтения спула.
Как правильноСнимать спул с остановленного узла или мгновенным снимком тома. Конфигурацию и состояние можно копировать на ходу.

Берут пути из руководства, не сверив с установкой

§ 1.8

Чем чреватоПути даны как умолчания, и руководство прямо это оговаривает. Копия по чужим путям соберёт пустые каталоги, а обнаружится это в момент, когда восстанавливаться уже надо.
Как заметитьАрхив резервной копии подозрительно мал, а восстановление не даёт ничего.
Как правильноСверять пути с фактической установкой при настройке копирования и проверять размер архивов хотя бы раз.

Считают, что конфигурация в Хабе заменяет копию узла

§ 1.8

Чем чреватоЗаменяет только конфигурацию. Спул — письма, ещё не отправленные, — в Хабе не хранится: он знает лишь, что они были отданы узлу. Потеря машины означает потерю этих писем.
Как заметитьПосле замены узла часть кампании не ушла, и следов этих писем нет ни на узле, ни в Хабе.
Как правильноПомнить границу: конфигурация восстановима, письма в очереди — нет. До появления модуля бэкапов не делать на боевом узле ничего разрушающего без проверки на стенде.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
⇄

Связанные записи

3 связи

Как проверить на узле
После восстановления проверять надо не наличие файлов, а то, что узел ожил:
pmta test config
pmta show status
Первая проверит, что конфигурация разобралась. Вторая — что MTA работает: строка Queues покажет, вернулись ли получатели из спула, а Spool — сколько файлов в работе.
В Хабе
Цена ошибки
опасно: последствия переживут откат
Сценарии
Аварийная остановка · Подготовить узел к отправке