О бэкапах на сервере GMGame
Думаю нет необходимости говорить о важности резервного копирования или о подходах к этому процессу, поэтому мы поделимся нашим опытом.
На нашем сервере используется резервное копирование с дедупликацией. Резервное копирование реализовано на borg backup
Плюсы такого подхода:
- быстрое создание резервной копии
- занимает меньший объем
- возможность чаще создавать копии
К минусам можно отнести:
- меньшую надежность (конфликты в хэш-таблицах, хранение только одной полной копии)
У нас резервное копирование выполняется, каждые 10 минут, а копии хранятся по следующим правилам:
- все копии за 48 часов
- по одной копии за каждый день последние 30 дней
- по одной копии за последние 3 месяца
- по одной копии за последние 3 года
Такой подход мы стали использовать c июля 2021 года и сейчас самый ранний бэкап, на который мы можем откатиться — 2021-06-30, если это потребуется.
Разумеется бэкапы за 3 года и даже за 3 месяца скорее для истории, чем для практического применения.
По цифрам сейчас у нас суммарный размер бэкапов 133.01 GB, если бы все эти бэкапы просто хранились целиком в сжатом виде, то они занимали бы 4.06 TB, а оригинальный размер, без сжатия, составил бы 5.67 TB
В бэкапах хранятся следующие данные:
- cами миры (основной, фермерский, ..)
- конфиги серверов
- плагины и их настройки
- базы данных (зарегистрированных игроков, разрешения, баны, инвентари игроков)
Для повышения надежности мы используем несколько репозиториев борга для хранения бэкапов и делаем периодически отдельные копии данных.
save-off save-all save-on
К сожалению, нет достоверной информации и достаточных исследований о необходимости останавливать сохранения мира на время создания резервной копии.
Дело в том, что если попытаться создавать копию во время сохранения мира на диск, то в бэкап могут попасть частично сохраненные блоки. Но в то же время ручное прерывания сохранения вызывает всплеск задержки на сервере, что может негативно влиять на игровой процесс.
Но так как майнкрафт сохраняет на диск данные периодически, по умолчанию каждые 5 минут, то мы просто делаем резервную копию в промежутках между сохранениями, по сути читая статичные даные.
Мониторинг
Для мониторинга используем просто Healthchecks
Информация о размерах и файлах бекапов актуальна на момент написания статьи. В настоящее время список файлов для бекапа может измениться, при этом технология резервного копирования остается без изменений