Главная

8 мин

Бэкап restic и borg в S3: настройка, шифрование, тесты

Бэкап restic и borg в S3: настройка шифрования, расписание, контроль окна, регулярные тесты восстановления и типичные ошибки.

Бэкап restic и borg в S3: настройка, шифрование, тесты

Что значит «без коммерческих агентов» и зачем это нужно

«Без коммерческих агентов» обычно означает, что вы не ставите на каждый сервер или рабочую станцию проприетарный агент от вендора бэкапа и не завязываетесь на его лицензии, закрытый формат и отдельную консоль. Вместо этого используются простые инструменты вроде restic или borg, а данные отправляются в S3-совместимое хранилище.

На практике такой подход часто проще и надежнее. Меньше движущихся частей: один бинарник, понятные команды, шифрование на стороне клиента, обычные логи. Если завтра нужно восстановиться на другом железе, вам не нужен «тот самый» агент и сервер управления. Достаточно ключей и доступа к репозиторию.

Минусы тоже есть. Без единого GUI сложнее видеть картину по всем узлам и быстро понимать, кто давно не бэкапился. Обычно это компенсируют дисциплиной и простыми заменами: единый шаблон конфигов и именования репозиториев, централизованный сбор логов с уведомлениями о провалах, регулярные тесты восстановления по расписанию, короткие отчеты (что копировали, сколько заняло, сколько данных добавилось).

Важно понимать границы. Restic и borg в S3 отлично закрывают файловые данные: каталоги, конфиги, дампы баз данных, снимки важных папок на серверах и виртуалках. А вот консистентные бэкапы сложных приложений все равно требуют сценариев: корректно остановить сервис или сделать дамп, проверить восстановление, убедиться, что приложение действительно стартует.

Подход хорошо подходит, если у вас один сервер в офисе, несколько филиалов, небольшая виртуальная среда или парк рабочих станций и серверов (например, на типовых ПК и стойках), где важны прозрачность, контроль и независимость от конкретного вендора.

Базовая схема: что копируем, куда и как защищаем

Минимальная рабочая схема для бэкапа restic и borg в S3 состоит из трех частей: источник данных (сервер или рабочая станция), репозиторий бэкапа (куда пишутся снапшоты) и S3-совместимое хранилище как удаленная цель. Поверх этого всегда есть еще два слоя: ключи шифрования и правила доступа.

Обычно копируют не весь диск, а конкретные каталоги и данные, которые реально нужно вернуть: базы, файлы пользователей, конфиги, ключевые папки приложений. Систему целиком часто проще восстановить из образа или через автоматизацию, а данные вернуть из бэкапа.

Шифрование в restic включено по смыслу всегда: репозиторий шифруется паролем, а на стороне S3 лежат только зашифрованные блоки. У Borg шифрование зависит от режима при инициализации репозитория, поэтому важно один раз осознанно выбрать вариант с шифрованием и не держать репозиторий в открытом виде.

Ключевой вопрос: где хранить пароль и ключи. Самые практичные варианты:

  • переменные окружения и файл с правами только для root
  • системное хранилище секретов (если уже используете)
  • отдельный офлайн-носитель для аварийного доступа (на случай, если сервер потерян)

Доступ к S3 лучше сужать по двум осям: сеть и права. По сети разрешайте подключение только с тех машин, которые реально делают бэкап, и по возможности закрывайте остальное на уровне фаервола или политики доступа. По правам заведите отдельные учетные данные для бэкапа и разделите операции:

  • запись (append) для ежедневной работы
  • только чтение для проверок и тестов восстановления
  • отдельный админ-доступ, который не используется в расписании

Пример: в офисе госоргана в Казахстане можно настроить так, что файловый сервер пишет в S3-репозиторий ночью, а днем отдельная учетная запись только читает и раз в неделю делает тестовое восстановление во временную папку. Даже если ключ записи утечет, злоумышленнику будет сложнее незаметно удалить историю, если удаление и управление бакетом доступны только админ-ключом.

Restic или Borg: как выбрать без лишней теории

Restic и Borg решают одну и ту же задачу: делать «снимки» данных так, чтобы повторные бэкапы занимали меньше места. Оба поддерживают дедупликацию, сжатие (в разных формах) и шифрование на стороне клиента, то есть в хранилище уезжает уже зашифрованный набор блоков.

Разница обычно не в том, «кто лучше», а в том, как вы будете жить с этим каждый день: где лежит репозиторий, как запускать задания, как проверять состояние и как быстро восстанавливать.

Когда проще выбрать restic

Restic часто выигрывает там, где нужен бэкап в S3 без лишних промежуточных слоев. Он говорит с S3-совместимым хранилищем «из коробки», поэтому схема обычно прямолинейная: машина -> S3.

Restic подходит, если у вас:

  • S3-репозиторий как основной вариант (облако или S3 в своем ЦОД)
  • много одинаковых узлов и хочется одинаковых команд и одинаковых логов
  • минимум зависимостей в окружении и простая установка
  • важна понятная автоматизация через cron/systemd без сложной обвязки
  • нужно быстро подключать новые серверы по шаблону

Когда логичнее выбрать borg

Borg часто удобнее, если репозиторий вы держите на выделенном сервере и забираете данные по SSH. Это хороший вариант для сценария «центральный бэкап-сервер + много источников», особенно если S3 у вас только как внешняя копия через дополнительную синхронизацию.

Borg подходит, если вам ближе:

  • репозитории на файловой системе и доступ по SSH
  • строго контролируемая сеть без прямого выхода на S3 с рабочих серверов
  • модель «один бэкап-хост обслуживает всех»

Если команда небольшая, обычно выгоднее стандартизировать один инструмент. Так проще обучать дежурных, писать единые инструкции по восстановлению и не путаться в форматах репозиториев, ключах и командах проверок.

Подготовка S3-совместимого хранилища и доступов

Перед тем как настраивать бэкап restic и borg в S3, убедитесь, что выбранное хранилище действительно подходит. Термин «S3-совместимое» иногда означает «похоже на S3», но с нюансами, которые всплывают ночью, когда окно бэкапа уже закрывается.

Проверьте у провайдера вещи, которые чаще всего влияют на работу: поддержка AWS Signature v4, корректная работа больших объектов (multipart upload), лимиты на число запросов и размер объекта, а также формат адресации бакета (virtual-hosted или path-style). Если есть отдельный endpoint для региона, уточните его заранее и зафиксируйте в настройках.

Дальше разделите ресурсы. Делайте отдельный бакет под бэкапы и отдельного пользователя (или ключ) только для бэкапа. Это снижает риск случайного удаления и упрощает аудит.

Короткий чек-лист прав для пользователя бэкапа:

  • доступ только к одному бакету
  • чтение, запись, список объектов (без админских операций по аккаунту)
  • запрет на удаление, если это возможно в вашей модели доступа
  • отдельные ключи для тестовой и боевой среды

Если в хранилище доступно версионирование, включите его для бакета с бэкапами. Оно спасает, когда кто-то удалил или перезаписал объекты. Добавьте правила удаления (lifecycle), чтобы версии не росли бесконечно: например, хранить частые точки восстановления коротко, а редкие - дольше.

Секреты доступа храните так, будто это пароль от всего: не в общем чате и не в «заметках». Минимум - файл с правами 600 и доступом только сервисному пользователю. Лучше - системное хранилище секретов или механизмы systemd credentials.

В конце проверьте сеть: загрузите и скачайте тестовый файл на 1-5 ГБ с сервера, где будет идти бэкап (например, с вашей стойки или с сервера уровня GSE S200). Зафиксируйте реальную скорость и задержку, чтобы оценить, поместится ли копирование в доступное окно.

Настройка restic: пошаговый минимум для старта

Чтобы бэкап restic и borg в S3 был предсказуемым, начните не с команд, а со списка данных. Отметьте, что реально нужно восстанавливать (базы, документы, конфиги), и что можно пересобрать (кэши, временные файлы). Это сразу сокращает время копирования и уменьшает окно бэкапа.

Дальше подготовьте доступы к S3-совместимому хранилищу (ключ/секрет, имя бакета, путь) и выберите место, где будет храниться пароль репозитория. Пароль нужен всегда: restic шифрует данные на стороне клиента, и без пароля бэкап превращается в «невосстановимый архив».

Инициализация репозитория и первая проверка выглядят так (подставьте свои значения):

export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export RESTIC_REPOSITORY="s3:s3.example.local/backup-prod"
export RESTIC_PASSWORD="сильный_пароль"

restic -o s3.endpoint=s3.example.local init
restic snapshots

После init сделайте первый полный бэкап. На этом шаге важнее получить рабочий снимок, чем «идеальный» набор исключений:

restic -o s3.endpoint=s3.example.local backup /etc /home /var/lib/app
restic snapshots

Теперь добавьте исключения, чтобы не гонять лишнее. Обычно исключают:

  • каталоги кэшей (например, */cache*)
  • временные файлы (/tmp, */tmp*)
  • большие каталоги сборки и загрузок, если они не нужны для восстановления
  • логи, если у вас есть отдельная политика хранения логов

И последний обязательный шаг - «восстановление на пробу» в отдельную папку. Это занимает минуты, но сразу показывает, что пароль, доступ к S3 и структура данных в порядке.

mkdir -p /restore-test
restic restore latest --target /restore-test
ls -la /restore-test

Если тестовое восстановление прошло, у вас уже есть минимальная рабочая схема. Дальше имеет смысл закрепить исключения в файле, убрать пароль из переменных окружения и перейти к расписанию и контролю окна бэкапа.

Настройка borg: рабочая схема без сюрпризов

Borg хорош там, где нужен быстрый инкрементальный бэкап на уровне файлов и удобное восстановление. Важно помнить: Borg пишет в репозиторий как в обычную файловую систему, поэтому до S3-совместимого хранилища он обычно добирается через промежуточный слой.

Самые надежные варианты два. Первый - репозиторий на отдельном SSH-шлюзе (или бэкап-сервере) с обычным диском, а уже потом каталог репозитория копируется в S3 отдельной задачей. Второй - промежуточное хранилище, где S3 смонтирован как файловая система. Он удобнее, но чаще дает проблемы из-за задержек, блокировок и неполной POSIX-совместимости. Для Borg обычно безопаснее «сначала локально, потом выгрузить».

Инициализация и шифрование

Выберите режим ключей: проще всего repokey (ключ хранится в репозитории, доступ защищен паролем) или keyfile (ключ отдельным файлом, его тоже надо резервировать). Пример инициализации:

export BORG_REPO=ssh://backup@backup-gw/./repos/app1
export BORG_PASSPHRASE='СильныйПароль'

borg init --encryption=repokey-blake2 "$BORG_REPO"

Дальше договоритесь о понятных именах архивов. Практика: имя хоста + роль + дата, чтобы быстро искать и сравнивать:

borg create --stats --compression lz4 \
  "$BORG_REPO"::"srv1-app-{now:%Y-%m-%d_%H%M}" \
  /etc /var/lib/app

Запуск по расписанию делайте через cron или systemd timer. В схеме «restic/borg + S3» Borg часто отвечает за локальные инкременты, а выгрузка в S3 идет отдельной задачей после успешного создания архива.

Проверка и тестовое восстановление

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

borg check --verify-data "$BORG_REPO"

Тест восстановления делайте не «когда-нибудь», а регулярно. Минимум: восстановить один файл и целый каталог в отдельную папку.

mkdir -p /tmp/restore-test
borg extract "$BORG_REPO"::srv1-app-2026-01-11_0200 etc/app.conf
borg extract "$BORG_REPO"::srv1-app-2026-01-11_0200 --target /tmp/restore-test var/lib/app

Расписание и контроль окна бэкапа

Хороший бэкап живет по расписанию и не мешает рабочим сервисам. Для restic/borg чаще всего хватает cron или systemd-timer. Важнее не чем вы запускаете задания, а что и как проверяете после запуска.

Как сделать расписание

Начните с простого набора точек восстановления и усложняйте только если есть реальная потребность. Базовая схема обычно такая:

  • каждый день ночью: инкрементальный бэкап данных и конфигов
  • раз в неделю: «контрольная» копия + проверка целостности репозитория
  • раз в месяц: отдельная точка, которую вы точно не удалите раньше срока
  • после изменений: внеплановый бэкап перед обновлением или миграцией

Так вы покрываете и повседневные ошибки (удалили файл), и редкие проблемы (сбой после обновления).

Как держать окно под контролем

Окно бэкапа - это время, когда копирование влияет на диски, сеть и S3. Оцените его один раз и пересматривайте после роста данных: возьмите размер изменяемых данных за сутки, умножьте на 2 (запас), и сравните с реальной скоростью выгрузки и временем дедупликации.

Если бэкап мешает, ограничивайте нагрузку, а не «сдвигайте на потом». Рабочие приемы:

  • ограничить скорость: у restic есть лимиты на upload/download, у borg - remote-ratelimit
  • уменьшить параллелизм: меньше потоков часто дает более предсказуемую нагрузку
  • разделить задачи: базы и большие каталоги копировать в разное время
  • исключить лишнее: кэши, временные файлы и логи, которые можно восстановить иначе

Успех - это не «процесс что-то написал в лог». Считайте успешным только то, что завершилось корректным кодом: restic - 0, borg - 0 (код 1 у borg обычно означает «есть предупреждения», его стоит разбирать).

Сигнал о сбое должен приходить сам. Минимальный набор: письмо на дежурную почту, сообщение в рабочий мессенджер или автоматический тикет. Например, если ночной бэкап бухгалтерского сервера не уложился в окно, уведомление должно прийти утром до начала рабочего дня, а не в момент, когда срочно понадобится восстановление.

Хранение, ротация и проверки целостности

Хранилище бэкапов быстро превращается в свалку, если не договориться о простых правилах: сколько копий держим, когда удаляем и как убеждаемся, что архивы читаются. Для «бэкап restic и borg в S3» это особенно важно, потому что S3 обычно оплачивается по объему и операциям.

Правила хранения: сколько держать и почему

Начните с требований бизнеса и регуляторов, а потом сведите все к понятной схеме. Часто хватает сочетания «частые короткие» и «редкие длинные» копии.

  • Ежедневные: 7-14 дней, чтобы закрывать случайные удаления и быстрые откаты.
  • Еженедельные: 4-8 недель, чтобы пережить поздно замеченные проблемы.
  • Ежемесячные: 6-12 месяцев, если нужны отчеты, аудит или сезонные данные.
  • «Перед изменениями»: отдельный снимок перед обновлениями, миграциями и патчами.

У restic и borg есть встроенные механизмы retention (политики сохранения). Важно одно: правила должны быть одинаковыми для всех серверов одного типа, иначе сложно прогнозировать объем.

Политика удаления и защита от ошибок

Удаление делайте только через безопасные команды самого инструмента, а не руками в бакете. Перед тем как включать автоматическое prune/compact, проведите 1-2 недели в режиме «только отчет»: пусть задача пишет, что именно будет удалено.

Проверка целостности нужна по расписанию. Обычно достаточно:

  • быстрая проверка метаданных раз в неделю ночью или в выходные
  • полная проверка (глубже и дольше) раз в месяц в отдельное окно, когда нагрузка минимальна

Стоимость S3 и роль дедупликации

Дедупликация у restic и borg снижает рост хранилища, если в данных много повторов (например, файловые шары, профили, почтовые базы). Но первый полный бэкап все равно будет большим, а затем рост зависит от ежедневных изменений. Следите за двумя метриками: общий размер репозитория и «сколько добавилось за сутки». Так вы быстро заметите, что кто-то начал бэкапить временные файлы или логи без ротации.

Простой журнал изменений настроек

Даже без сложных систем полезно вести короткий лог изменений:

  • дата и причина (например, добавили исключение каталога)
  • кто согласовал
  • что поменяли в расписании/retention
  • ожидаемый эффект на окно бэкапа и объем

Так проще разбирать инциденты: «почему удалились старые копии» или «почему проверка целостности стала идти вдвое дольше».

Регулярные тесты восстановления: как делать системно

Бэкап без восстановления не считается бэкапом. Пока вы не попробовали вернуть данные и запустить сервис, вы проверили только то, что «что-то куда-то записалось». Ошибка ключа шифрования, неверные права, битая цепочка инкрементов или забытый пароль репозитория часто всплывают именно в день аварии.

Чтобы тесты не превращались в разовую проверку «для галочки», сделайте простой календарь: раз в месяц проверяйте восстановление одного файла или небольшой папки, а раз в квартал прогоняйте полный сценарий. Это одинаково важно и для restic, и для borg, и для варианта с S3, где добавляется риск с доступами и политиками хранения.

Где и как восстанавливать

Лучше восстанавливать не поверх живых данных. Подойдет отдельная VM, отдельный каталог на тестовом диске или небольшой стенд. В офисной инфраструктуре это может быть тестовая виртуалка на сервере (например, на rack-сервере класса S200) с отключенным доступом пользователей, чтобы не было случайной порчи.

Один рабочий цикл теста может выглядеть так:

  • выбрать «эталон» (файл, папку проекта, дамп базы) и дату восстановления
  • восстановить в тестовую локацию и сверить размер, количество файлов, выборочно хэши
  • проверить права (владельцы, группы, режимы), чтобы приложения могли читать данные
  • запустить приложение или сервис в тестовом режиме и проверить ключевой сценарий (логин, отчет, поиск)
  • удалить тестовые данные или заархивировать результат проверки

После каждого теста фиксируйте минимум: сколько заняло времени, какой объем восстановили, точные команды и шаги, итог (успех/частичный успех/провал) и причину, если что-то сломалось. Отдельно отмечайте, уложились ли в допустимое окно восстановления и не уперлись ли в пропускную способность сети или лимиты хранилища.

Если тест провалился, не откладывайте: исправление стоит вносить в тот же день, иначе к следующей аварии «временное» станет постоянным.

Частые ошибки и ловушки в настройке

Самая болезненная ошибка при работе с шифрованием - потерять пароль или ключ и понять это только в момент аварии. Для restic и borg это означает одно: данные в репозитории есть, но прочитать их нельзя. Минимум, который спасает: хранить секреты в менеджере паролей, иметь запасной способ доступа (например, запечатанный офлайн-контейнер) и заранее назначить ответственного, кто знает, где лежит план восстановления.

Вторая ловушка выглядит логично, но опасна: делать бэкап «рядом», то есть на тот же сервер, в тот же RAID или в то же облако под одной учетной записью. При взломе, ошибке администратора или сбое хранилища часто исчезает и рабочая копия, и резервная. Если вы делаете бэкап restic и borg в S3, разделяйте хотя бы уровни доступа и, по возможности, учетные записи.

Очень частая проблема - слишком широкие права к S3. Когда ключ может удалять бакеты и версии объектов, один неверный скрипт или компрометация ключа превращают резерв в пустоту. Давайте ключу только то, что нужно: запись в конкретный бакет, чтение для проверки и минимум прав на удаление, если ротация делается на стороне клиента.

Отдельный класс ошибок - исключения по маскам. Кажется, что вы аккуратно исключили временные файлы, а на деле не копируете базу, папку с вложениями или каталог с ключами приложения. Это часто происходит после изменений путей или переноса данных. Простое правило: после каждого изменения исключений делайте пробный прогон и смотрите, что именно попало в снимок.

Наконец, бэкапы часто «ломаются тихо»: ночь за ночью задания падают, а никто не замечает. Проверьте себя по короткому списку:

  • есть оповещение о неуспешном запуске и о превышении времени выполнения
  • виден последний успешный бэкап и его размер (чтобы заметить внезапное «0 МБ»)
  • ключи доступа к S3 имеют срок и понятную процедуру ротации
  • по расписанию делается проверка целостности репозитория
  • раз в месяц выполняется тестовое восстановление в отдельную папку или VM

Простой пример: после обновления приложения каталог с данными переехал с /var/lib на /srv, а исключения остались прежними. Бэкап продолжает «успешно» проходить, но восстановить нечего. Такие вещи ловятся только мониторингом размеров и регулярными тестами восстановления.

Пример сценария: офисная инфраструктура и S3 как внешняя копия

Представим обычный офис на 15-30 пользователей. Есть файловый сервер с общими папками (договоры, сканы, проекты), отдельная машина под 1С и база данных, плюс несколько важных каталогов на сервере приложений (конфиги, отчеты). Задача простая: если сломается диск, сервер или кто-то удалит папку, данные должны вернуться быстро и без «охоты» по ноутбукам.

RPO и RTO лучше формулировать по-человечески. RPO - сколько данных вы готовы потерять: например, максимум 1 час работы бухгалтерии и 4 часа по общим папкам. RTO - как быстро нужно восстановиться: например, доступ к файлам за 2 часа, 1С за 4-6 часов (хотя бы на временный стенд).

Для такого кейса хорошо подходит бэкап restic и borg в S3: локальные снимки на быстрый диск для быстрых возвратов и внешняя копия в S3-совместимое хранилище на случай пожара, кражи или шифровальщика.

По расписанию это обычно выглядит так:

  • ночью: полный прогон (или «полный по логике», с дедупликацией), когда нагрузка минимальна
  • днем: короткие дельты каждые 1-2 часа только по самым важным данным
  • перед закрытием дня: отдельный бэкап базы 1С (дамп или штатный механизм) и сразу отправка во внешний репозиторий

Тест восстановления стоит сделать частью рутины. Раз в неделю восстановите выборку: пару папок с документами и один случайный файл «из глубины». Раз в месяц поднимите полный стенд: разверните сервер (можно на отдельной машине или виртуалке), восстановите базу и проверьте, что 1С реально открывается.

Понять, что «все в норме», помогают простые метрики:

  • возраст последнего успешного бэкапа (в часах) по файлам и по базе
  • длительность бэкапа и укладывается ли он в окно ночью
  • процент успешных задач за 7 дней (без ручных «перезапусков»)
  • время реального тестового восстановления (сколько минут до открытия нужного файла/базы)

Следующие шаги: закрепить результат и масштабироваться

Перед тем как выпускать бэкап restic и borg в S3 в прод, полезно навести порядок в мелочах. Именно они чаще всего ломают восстановление в самый нужный момент.

Чеклист перед запуском

Проверьте базу по короткому списку, и только потом ставьте расписание «как у взрослых»:

  • доступы: отдельные ключи для бэкапов, минимум прав, понятное имя репозитория
  • шифрование: пароль/ключи хранятся отдельно от сервера, есть резервная копия ключевого материала
  • тест восстановления: хотя бы один раз развернули файлы в пустую папку и проверили, что они открываются
  • окно бэкапа: вы знаете, сколько занимает полный и инкрементальный прогон, и это укладывается в ночь/выходные
  • логи и уведомления: видно, когда был последний успешный прогон и сколько данных ушло

Если тест восстановления проходит только «на словах», это не бэкап, а надежда.

Как масштабировать без хаоса

Когда бэкап охватывает не один сервер, а несколько ролей (БД, файлы, виртуалки), заранее решите, как разделяете ответственность и репозитории. Часто работает одна из простых моделей:

  • один репозиторий на сервер (проще искать и восстанавливать точечно)
  • один репозиторий на роль (например, отдельно базы, отдельно файловые данные)
  • разные репозитории по уровню доступа (чтобы админы приложений не имели доступа к критичным копиям)

Дальше все упирается в ресурсы. Отдельный сервер под бэкапы стоит добавить, если ночные окна не укладываются, растет нагрузка на прод или нужно хранить локальный буфер перед выгрузкой в S3. Обновление железа оправдано, когда компрессия/дедупликация «съедает» CPU, а проверка целостности начинает мешать работе.

Чтобы бэкап стал процедурой, внесите его в регламент изменений (что и как защищаем перед релизом), в работу с инцидентами (когда и кто запускает восстановление) и в аудит (периодичность тестов, хранение журналов, контроль доступа к ключам).

Если нужна помощь с инфраструктурой, у GSE.kz есть опыт системной интеграции. Для задач бэкап-сервера или узла под хранение могут подойти стойчные серверы GSE S200, а дальше важнее всего договориться о понятном SLO по восстановлению и регулярных проверках.

Частые вопросы

Что конкретно значит «бэкап без коммерческих агентов»?

Это подход, когда на серверах и рабочих станциях не ставят проприетарные агенты конкретного вендора бэкапа и не завязываются на его лицензии и формат. Вместо этого используют инструменты вроде restic или borg и хранят резервные копии в S3-совместимом хранилище, сохраняя контроль над ключами и процессом восстановления.

Нужно ли бэкапить весь диск целиком или достаточно папок?

Обычно копируют данные, которые действительно нужно вернуть: каталоги приложений, конфиги, пользовательские документы и дампы баз данных. Операционную систему и окружение часто быстрее восстановить автоматизацией или образом, а данные — вернуть из бэкапа.

Как быстро выбрать между restic и borg под S3?

Restic чаще выбирают, когда хотите напрямую писать в S3 «из коробки» и быстро масштабировать одинаковую схему на много узлов. Borg удобен, когда есть центральный бэкап-сервер и вы забираете данные по SSH, а в S3 отправляете уже вторым шагом как внешнюю копию.

Что проверить в S3-совместимом хранилище до запуска бэкапов?

Сначала проверьте совместимость по критичным вещам: подпись запросов, работу с большими объектами и multipart upload, а также корректный endpoint и режим адресации бакета. Затем сделайте практический тест с той машины, где будет бэкап: загрузите и скачайте файл на несколько гигабайт и оцените реальную скорость, чтобы понять, уложитесь ли в окно.

Какие права выдавать S3-ключам, чтобы не потерять бэкапы?

Базовое правило — отдельный пользователь и отдельные ключи только для бэкапа, с правами только на нужный бакет. По возможности разделяйте ключи для записи, для чтения (тесты восстановления) и для администрирования, чтобы утечка одного ключа не дала возможность тихо удалить историю.

Шифрование в restic и borg включается автоматически или его нужно настраивать?

У restic шифрование по смыслу всегда включено, и без пароля репозиторий не восстановить. У Borg шифрование выбирается при инициализации репозитория, поэтому важно сразу включить режим с шифрованием и отдельно продумать, где хранится пароль и ключевой материал для аварийного восстановления.

Где хранить пароль репозитория и ключи, чтобы потом восстановиться?

Самый безопасный минимум — хранить секреты вне «обычных» файлов пользователя и вне общих чатов: либо в системном хранилище секретов, либо в файле с жесткими правами доступа для сервисного пользователя, плюс резервный офлайн-вариант на случай потери сервера. Важно заранее проверить, что по этому плану реально можно восстановиться, а не просто «лежит где-то пароль».

Какие первые шаги после `init`, чтобы бэкап стал надежным?

Сделайте первый рабочий снимок без попытки довести исключения до идеала, затем добавьте исключения и сразу повторите бэкап. Обязательно выполните тестовое восстановление в отдельную папку или тестовую VM, чтобы убедиться, что доступы к S3 и пароль правильные, а данные реально читаются.

Как понять, что бэкап укладывается в «окно», и что делать если нет?

Ориентируйтесь на скорость изменения данных и доступное время ночью: оцените суточный прирост, добавьте запас и сравните с реальной пропускной способностью до S3. Если не укладываетесь, сначала сокращайте объем (исключения, разделение задач по времени), затем ограничивайте нагрузку, и только потом усложняйте схему.

Как часто нужно делать тесты восстановления и что именно проверять?

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

Запрос

Пришлите спецификацию. Остальное сделаем мы

Одна позиция или объект под ключ, любое направление. Вашу поставку от первого звонка до акта ввода ведёт один менеджер.

Расчёт бесплатноДокументы для госзакупок и тендеровОдин договор и одна гарантия