Skip to main content

О бэкапах на сервере GMGame

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

На нашем сервере используется резервное копирование с дедупликацией. Резервное копирование реализовано на borg backup

image.png

Плюсы такого подхода:

— быстрое создание резервной копии

— занимает меньший объем

— возможность чаще создавать копии

К минусом можно отнести:

— меньшую надежность (конфликты в хэш-таблицах, хранение только одной полной копии)

У нас резервное копирование выполняется, каждые 10 минут, а копии хранятся по следующим правилам:

— все копии за 48 часов

— по одной копии за каждый день последние 30 дней

— по одной копии за последние 3 месяца

— по одной копии за последние 3 года

Такой подход мы стали использовать c июля 2021 года и сейчас самый ранний бэкап, на который мы можем откатиться — 2021-06-30, если это потребуется.

Разумеется бэкапы за 3 года и даже за 3 месяца скорее для истории, чем для практического применения.

По цифрам сейчас у нас суммарный размер бэкапов 133.01 GB, если бы все эти бэкапы просто хранились целиком в сжатом виде, то они занимали бы 4.06 TB, а оригинальный размер, без сжатия, составил бы 5.67 TB

image.png

В бэкапах хранятся следующие данные:

— cами миры (основной, фермерский, креатив)

— конфиги серверов

— плагины и их настройки

— базы данных (зарегистрированных игроков, пермишены, баны, инвентари игроков)

Для повышения надежности мы используем несколько репозиториев борга для хранения бэкапов и делаем периодически отдельные копии данных.

save-off save-all save-on

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

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

Но так как майнкрафт сохраняет на диск данные периодически, по умолчанию каждые 5 минут, то мы просто делаем резервную копию в промежутках между сохранениями, по сути читая статичные даные.

Мониторинг

Для мониторинга используем просто healthchecks.io

image.png