Перейти к основному контенту

О бэкапах на сервере 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

image.png

Информация о размерах и файлах бекапов актуальна на момент написания статьи. В настоящее время список файлов для бекапа может измениться, при этом технология резервного копирования остается без изменений