Minecraft Руководство

Как сделать резервную копию мира в Minecraft: архивация, hot backup и восстановление

Создание резервной копии мира Minecraft без остановки сервера: горячий бэкап через save-off и save-all flush, сжатие архива с помощью Zstandard и безопасное восстановление.

Как сделать резервную копию мира в Minecraft: архивация, hot backup и восстановление

Регулярное создание резервных копий мира Minecraft — единственный надёжный способ защитить сервер от повреждения регионов из-за аварийного отключения питания, разрушительных действий гриферов или программных сбоев после установки непроверенных плагинов. Однако прямое копирование файлов мира во время работы сервера без соблюдения специального протокола приводит к «битым» чанкам, поскольку сервер непрерывно сбрасывает данные из оперативной памяти на накопитель в асинхронном режиме.

В этом практическом руководстве мы разберём структуру папок миров Minecraft на сервере, надёжный алгоритм создания «горячего» бэкапа (hot backup) без отключения игроков с помощью консольных команд и эффективное сжатие данных современным алгоритмом Zstandard.

Анатомия директорий мира в Minecraft#

Структура сохранения зависит от типа используемого ядра. В ванильном сервере и Fabric измерения вложены в основную директорию:

  • world/ — основной мир (Overworld), включающий файлы level.dat, session.lock, папки region/, entities/ и poi/.
  • world/DIM-1/ — Нижний мир (Nether).
  • world/DIM1/ — Край (The End).

В оптимизированных серверных ядрах Spigot, Paper и Purpur измерения вынесены в отдельные независимые папки на верхнем уровне директории сервера для повышения скорости параллельной обработки:

bash
ls -la /opt/minecraft/

При резервном копировании миров Paper необходимо обязательно захватывать все три директории: world, world_nether и world_the_end, иначе сервер сгенерирует заново случайный ад и край при следующем входе игроков в порталы.

Алгоритм горячего бэкапа без отключения сервера#

Для создания точной копии мира без остановки игрового процесса используется трёхэтапный протокол синхронизации через консоль сервера или RCON:

  1. Заморозка автосохранения: команда save-off запрещает серверу производить фоновую запись чанков на диск во время копирования.
  2. Синхронизация буферов RAM: команда save-all flush принудительно записывает все накопленные в оперативной памяти изменения чанков, состояния игроков и сущностей на диск до полного завершения операции.

Отправьте команды в консоль сервера (или через screen/tmux сессию):

bash
/save-off
/save-all flush

После появления в логе подтверждения вида Saved the game можно безопасно архивировать директории мира.

Сжатие мира современным алгоритмом Zstandard#

Традиционный gzip тратит много процессорного времени на сжатие сотен мегабайт регионных файлов .mca. Использование утилиты tar с алгоритмом zstd позволяет упаковать серверный мир за считанные секунды с минимальной нагрузкой на процессор:

bash
tar --zstd -cvf /opt/minecraft-backups/world-$(date +%F_%H%M).tar.zst -C /opt/minecraft world world_nether world_the_end

Сразу после завершения архивации верните стандартный режим работы сервера, чтобы возобновить регулярное автосохранение:

bash
/save-on

Для администраторов, ценящих отказоустойчивость инфраструктуры, выделенный хостинг серверов Minecraft предоставляет автоматические снепшоты с изоляцией дисковых операций и расписанием создания резервных копий в облачное объектное хранилище.

Процедура безопасного восстановления мира из бэкапа#

Если мир был повреждён или вам необходимо вернуть состояние карты на дату создания снимка, восстанавливать файлы следует строго при выключенном процессе сервера:

bash
sudo systemctl stop minecraft && tar -xvf /opt/minecraft-backups/world-backup.tar.zst -C /opt/minecraft/ && sudo chown -R minecraft:minecraft /opt/minecraft/world* && sudo systemctl start minecraft

Команда chown критически важна: если распакованные файлы останутся принадлежать пользователю root, серверный процесс Minecraft не сможет получить права на запись в файлы .mca и завершится с ошибкой прав доступа.

Источники#