ACLClouds
ACLClouds

Резервные копии VPS: простая стратегия

Правило 3-2-1, restic или borg для шифрования и дедупликации и проверка восстановления, которая показывает, что копия работает.

Копия, которую ни разу не восстанавливали, — это только предположение. Копия существует, только если вы её делаете: одного VPS для защиты данных недостаточно. Простая стратегия состоит из трёх идей: правило для копий, инструмент с шифрованием и регулярная проверка восстановления.

  • Правило 3-2-1: три копии, два носителя, одна копия вне VPS.
  • restic и borg шифруют и дедуплицируют: пароль репозитория должен храниться вне сервера.
  • Копия, которую не восстанавливали, не проверена: проверяйте восстановление раз в месяц.

Правило 3-2-1

Три копии данных, как минимум на двух разных носителях, одна из них — вне VPS. Это правило не даёт одному сбою, ошибке или атаке стереть всё.

  • Копия 1: рабочие данные на VPS.
  • Копия 2: резервная копия на другом носителе, например удалённое хранилище по SFTP или диск вашего компьютера.
  • Копия 3: вторая резервная копия вне VPS, желательно у другого провайдера или в другом месте.

Выбрать инструмент: restic или borg

restic и borg создают зашифрованные, дедуплицированные и инкрементальные копии: передаются только изменённые блоки. Они умеют писать в SFTP, S3 или на локальный диск. Оба инструмента свободны и легко ставятся на Debian или Ubuntu.

  • sudo apt install -y restic
  • export RESTIC_REPOSITORY=sftp:[email protected]:/srv/restic: адрес репозитория, подставьте свой.
  • restic init создаёт репозиторий один раз. Пароль шифрования нужно хранить вне VPS.

Планировать, очищать и проверять

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

  • mysqldump wp_exemple > /root/base.sql, затем restic backup /root/base.sql /var/www: скрипт, который каждую ночь запускает cron или таймер systemd.
  • restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune: хранит 7 ежедневных, 4 еженедельных и 6 ежемесячных версий.
  • restic restore latest --target /root/proverka-vosstanovleniya, затем сравните файлы. Одной проверки в месяц достаточно, чтобы заметить пробелы.

Часто задаваемые вопросы

Достаточно ли снимка от провайдера?

Снимок удобен перед рискованным обновлением, но он привязан к тому же аккаунту и той же платформе. Внешнюю копию он не заменяет.

Как часто делать копии?

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

Что будет, если я потеряю пароль restic?

Репозиторий станет нечитаемым, и восстановить его будет невозможно. Храните пароль в менеджере паролей или на бумаге, вне VPS.