GameAP Respawn — мощная и надёжная система инкрементальных бекапов с шифрованием данных и дедупликацией для экономии места.

Особенность инкрементальных бекапов в том, что сохраняются только изменившиеся данные, — это позволяет эффективно использовать дисковое пространство и быстро создавать бекапы: долгим будет только первый бекап, остальные будут выполняться за считанные секунды.

Функционал #

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

Создание снапшотов и восстановление #

Снапшот можно создавать в любой момент, желательно на выключенном сервере. Плагин позволяет делать снапшоты и на работающем сервере, но без дополнительной настройки это нежелательно: данные в снапшоте могут оказаться несогласованными. Для целостного снимка предусмотрены pre/post-хуки — например, можно делать бекап с LVM, а не с живого каталога.

Создание снапшота из панели

Восстановление возможно в двух режимах: слияние с текущими файлами или точная копия снапшота. Перед восстановлением доступен предпросмотр (dry-run), а восстановить снапшот можно и в отдельный подкаталог. Все длительные операции выполняются в фоновом режиме, их прогресс отображается в панели.

Автоматические бекапы по расписанию #

Для каждого сервера можно настроить расписание: по интервалу, ежедневно или еженедельно. Планировщик запускает бекапы без участия пользователя, а история запусков с выводом задач доступна в панели.

Настройка расписания бекапов

Просмотр файлов и изменений в снапшотах #

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

Просмотр файлов и изменений в снапшотах

Скачивание снапшота архивом #

Плагин позволяет создать архив снапшота и скачать его на компьютер. Архив собирается на выделенном сервере в фоновом режиме; доступны форматы tar.gz, zip и tar.

Восстановление определённых файлов из снапшотов #

Плагин позволяет восстанавливать не только бекап целиком, но и отдельный файл или каталог из выбранного снапшота.

Сравнение конфигов и текстовых файлов #

Встроенный diff-инструмент позволяет сравнивать разные версии конфигурационных файлов игрового сервера и восстанавливать отдельные строки в них.

Сравнение конфигов и текстовых файлов

Настраиваемые сроки хранения #

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

Права доступа #

Доступ к бекапам настраивается гранулярно для каждого сервера: просмотр снапшотов, создание, управление (расписание, сроки хранения, удаление) и восстановление — это отдельные права (backup-view, backup-create, backup-manage, backup-restore).

Настройка прав доступа к бекапам

Снапшоты удалённых серверов и восстановление на другой сервер #

Администратору доступен список снапшотов всех серверов. Резервные копии удалённого из панели сервера не пропадают. Снапшот одного сервера можно восстановить на другой — это доступно только администраторам.

Установка #

Плагин доступен в каталоге плагинов GameAP: GameAP Respawn.

Устанавливается он прямо из панели управления: откройте раздел «Плагины» в левом меню, перейдите во вкладку «Магазин», найдите Respawn в списке плагинов и нажмите «Установить». После этого на выделенные серверы можно в один клик установить утилиту gameap-respawn — об этом ниже.

Как это устроено #

Система состоит из двух компонентов: плагина для панели GameAP и утилиты gameap-respawn, которая работает на каждом выделенном сервере. Утилита устанавливается в один клик из панели и уже содержит движок бекапов — ничего дополнительно устанавливать не нужно.

Пароли и токены хранятся в зашифрованном хранилище панели (AES-256-GCM). На выделенные серверы они передаются только на время выполнения операции и нигде не сохраняются.

Хранилище бекапов #

В качестве хранилища бекапов используется GameAP Cloud с бесплатным объёмом дискового пространства. Подключение выполняется через диалог в административной панели: достаточно указать email и подтвердить его. Для панели автоматически создаётся отдельный доступ к хранилищу, который можно перевыпустить в любой момент.