Backup de um mapa de jogo

1

Eu administro um servidor dedicado que hospeda um jogo multiplayer.

Este jogo usa um mapa que agora é de 1,5 GB, mas em breve será de 2,3 GB. Temos apenas um SATA HD.

Gostaríamos de salvar o mapa a cada hora no mesmo HD para ter a possibilidade de novos rollbacks.

Se eu usar o rdiff-backup, os jogadores experimentam um certo "atraso" (a média é de 15 segundos de 50% de ticks por segundo) devido a (eu acho) negócio HD. Eu sei que algum atraso é necessário, mas qual poderia ser a melhor solução?

Os arquivos de mapa são modificados com muita frequência, mas, em teoria, se existe um processo que faz lentamente um backup, mas "consome menos HD", acho que seria a melhor opção. Ou é uma ideia estúpida?

O mapa é armazenado em muitos arquivos, como 2500, mas os arquivos alterados são menores que 500.

Sou muito novo em administrar um servidor e não sei tantas coisas (inglês também), então seja gentil.

    
por Fabio F. 08.01.2012 / 23:39

1 resposta

1

Eu assumo que você esteja falando sobre o Minecraft (embora a idéia geral também seja aplicável a outros jogos).

Eu entendo que os grandes servidores principais usam discos RAM para o mapa ao vivo . Eles então periodicamente copiam isso. Eu diria que você poderia usar 2 discos RAM separados, copiar o live para o backup temporário e depois copiar o backup temporário para o armazenamento de longo prazo. Se o seu servidor falhar e você perder a memória RAM, você poderá perder algumas atualizações.

A principal desvantagem é que você precisa de um servidor com muita memória RAM. Pelo menos o suficiente para hospedar o servidor do jogo e o ramdisk do mapa com o segundo disco, se possível.

Se você deseja arquivar instantâneos e espaço em disco é um problema, talvez valha a pena procurar uma maneira de armazenar as alterações o máximo possível. A maneira óbvia seria comparar hashes de arquivos / tempos de modificação (que provavelmente mas você também pode olhar para fazer diffs / patches binários, então apenas as mudanças que realmente acontecem são armazenadas (não sei quão bem isso funcionaria para o Minecraft, pois ele comprime os dados do Chunk com o algoritmo gzip).

Você também pode procurar usar o Btrfs , já que ele foi criado na funcionalidade de instantâneo. Isso pode realmente permitir que você 'salve' o estado atual do mapa, em vez de ter que copiar tudo, então você pode montar a versão do snapshot e copiá-la quando quiser. É claro que, se você fornecer downloads, precisará que todos sejam acessíveis e compactados.

Para limitar a velocidade de cópia, sei que o rsync tem um comando '--bwlimit = KBPS' para limitar a largura de banda.

    
por 08.01.2012 / 23:48