Резервные копии 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.