1

Я управляю выделенным сервером, на котором размещена многопользовательская игра.

Эта игра использует карту, которая сейчас составляет 1,5 ГБ, но скоро будет 2,3 ГБ. У нас только один SATA HD.

Мы хотели бы сохранять карту каждый час на одном и том же HD-диске, чтобы иметь возможность новых откатов.

Если я использую rdiff-backup, игроки испытывают некоторое "отставание" (среднее значение составляет 15 секунд при 50% тактов в секунду) из-за (я думаю) бизнеса HD. Я знаю, что некоторая задержка необходима, но что может быть лучшим решением?

Файлы карт изменяются очень часто, но в теории, если существует процесс, который медленно создает резервную копию, но "потребляет меньше HD", я думаю, что это будет лучшим вариантом. Или это глупая идея?

Карта хранится во многих файлах, например, 2500, но количество изменяемых файлов меньше 500.

Я очень новичок в администрировании сервера и не знаю многих вещей (в том числе и на английском), поэтому будьте добры.

1 ответ1

1

Я предполагаю, что вы говорите о Minecraft (хотя общая идея должна быть применима и к другим играм).

Я понимаю, что крупные крупные серверы используют оперативные диски для живой карты. Затем они периодически копируют это. Я бы предположил, что вы можете использовать 2 отдельных RAM-диска, скопировать оперативную во временную резервную копию, а затем скопировать временную резервную копию в долговременное хранилище. Если ваш сервер выходит из строя и вы теряете оперативную память, вы можете потерять некоторые обновления.

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

Если вы хотите заархивировать снимки, а дисковое пространство является проблемой, возможно, стоит поискать какой-нибудь способ, чтобы просто сохранить как можно больше изменений. Очевидным способом было бы сравнение времени хеширования файла / изменения (что, вероятно, и делает) но вы также можете взглянуть на выполнение двоичных различий / исправлений, чтобы сохранить только те изменения, которые действительно происходят (я не знаю, насколько хорошо это будет работать для Minecraft, так как он сжимает данные Chunk с помощью алгоритма gzip).

Вы также можете посмотреть на использование Btrfs, так как оно имеет встроенную функцию снимка. На самом деле это может позволить вам «сохранить» текущее состояние карты, а не копировать всю информацию, тогда вы можете смонтировать версию моментального снимка и скопировать ее, когда захотите. Конечно, если вы предоставляете загружаемые файлы, вам нужно, чтобы все они были доступны и сжаты.

Для ограничения скорости копирования я знаю, что rsync имеет команду --bwlimit = KBPS для ограничения пропускной способности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .